进程通信方式--消息传递系统

来自计算思维百科
跳转至: 导航搜索
进程通信方式--消息传递系统.jpg

计算机执行程序其实就是完成一种工作,如果为了完成一个任务需要做很多工作,那么这些工作之间需要进行沟通。完成工作就是执行进程,进行之间相互沟通,就是通信,进程之间如何进行通信的,这就进行通信方式要解决的问题。消息传递系统是当前计算机应用最广泛的一种进程的通信机制。在该机制中,进程间的数据交换是以格式化的消息为单位的,即利用操作系统的一组通信命令进行传递消息。不仅能实现大量数据的传递,还能隐藏通信实现细节,大大减少了通信程序编制的复杂性。

基本概念

消息传递系统分为直接通信和间接通信。直接通信:利用系统的发送命令,直接发送消息给目标进程;间接通信:进程通信需要一个实体,称为信箱,用来暂存发送进程给目标进程的消息,接收进程则从该实体中取出消息。通信前,需要创建信箱,给出信箱名字,信箱属性(私用、公用和共享)。对于共享信箱,还要给出共享者的名字。当进程不需要读信箱时,撤销信箱。进程之间利用信箱进行通信时,必须使用共享信箱。

创建者是信箱的拥有者,私用信箱由创建的用户拥有,只有创建者有读取权限;公用信箱是系统创建的,只有规定的进程可以读取权限;共享信箱可以由创建者或共享者读取。

应用范围

消息传递系统可应用于学习、生活和工作中需要进行通信并且可以进行格式化消息传递的双方消息传达,如手机短信传递、公告栏等

使用方法及步骤

直接通信:

  1. 用某种格式化消息方式将消息直接发送给目标接收者

间接通信:

  1. 创建信箱,填写信箱名字,根据需要设置信箱属性(若属性为共享,填写共享者的名字)
  2. 将消息发送到信箱中
  3. 如果信箱为私用信箱,则只能由创建者读取信息;如果为共享信箱,则由接收者从信箱读取信息
  4. 当不需要信箱的时候,撤销信箱

应用案例

应用1-手机短信传递(间接通信)

案例:现代手机的基本功能之一就是短信的管理。我们可以选择目标短信接收人,发送短信到对方的手机信箱中,也可以接收来自其他人的短信;可以写短信草稿存在草稿箱中,还可以删除短信。这些功能的设计实现都依赖于消息传递系统:草稿箱相当于私有信箱,选择目标短信接收人并发送短信,相当于创建共享信箱并发送消息到里面,对方接收短信,则相当于读取共享信箱。

在这个案例中,手机短信就是要传递的数据,发短信的人和收短信的人都是进程,他们之间通信是通过手机信箱,信箱也包括私有和共享等不同权限的信箱。

应用2- 学生宿舍公告栏(间接通信)

案例:学生宿舍管理里,有时候宿管需要向整栋楼的学生通知消息,宿管人数比较少,不可能逐个传达通知,这时候就可以需要公告栏发挥作用。宿管只需要把要传达的消息写(或贴)在公告栏上,将公告栏放在学生出入必须经过的地方或显眼的地方,每个学生再去读公告栏公布的通知或消息就好了。

在这个案例中,每个学生都是进程,他们之间互通信息是通过公告栏,公告栏就是通道。

可以体现的计算思维

消息传递系统通过格式化的消息传递单位(和信箱)进行消息互动,减少了操作者的操作步骤,减轻了消息互动者的负担,体现了计算思维的调度特点。