进程通信方式--共享存储器系统

来自计算思维百科
跳转至: 导航搜索
进程通信方式--共享存储器系统.png

计算机执行程序其实就是完成一种工作,如果为了完成一个任务需要做很多工作,那么这些工作之间需要进行沟通。完成工作就是执行进程,进行之间相互沟通,就是通信,进程之间如何进行通信的,这就进行通信方式要解决的问题。共享存储器系统是计算机进程三大通信机制之一,能够在进程间传送大量数据。

基本概念

在共享存储器系统中,相互通信的进程是通过共享某些数据结构或共享存储区进行通信的,它分为两种类型:

1.基于共享数据结构的通信方式:在这种通信方式中,要求各进程公用某些数据结构,来实现各进程间的信息交换。这种方式需要程序员手动设置数据结构和对进程间同步的处理。

2.基于共享存储区的通信方式:在存储器中划出了一块共享存储区,各进程可通过对共享存储区中数据的读或写来实现通信。

应用范围

共享存储器系统的通信方式可应用于学习、生活、工作中可设置公共通信区域的消息传递,如申请活动场地举办活动、公共储物柜的设计等

使用方法及步骤

A. 基于共享数据结构的通信方式:

  1. 找到一块区域a存放公共存储对象
  2. 每当操作者需要对公共存储对象进行操作,则到区域a对存储对象进行操作,并把操作结果留在存储区域中
  3. 其他操作者操作流程和步骤2一样,但进行操作前接收到的存储对象信息是步骤2操作后的

B. 基于共享存储区的通信方式:

  1. 申请者先向存储区管理者申请用于某种用途的区域,如果已经有同队或同组的人申请了,那么存储区管理者只需要把该区域的编号告诉该申请者
  2. 申请者在存储区进行相应的活动

应用案例

应用1- 公共储物柜

案例:在大型的购物商场里,我们经常可以看到一种叫公共储物柜的东西。在购物前,顾客需要把包和其他与商场相关的东西放在储物柜再进去,储物柜有若干个储物箱,每个储物箱配有一把钥匙,如果钥匙没有插在钥匙孔中并且储物箱的门打不开,则表明该箱已经被人使用了,这时候顾客需要重新找一个空的储物箱,将东西放进去。购物结算完则需要取回东西,归还钥匙,这时候该箱子又变成空储物箱了。

在这个案例中,公共储物柜就是共享存储区,商场中的每个人就是一个进程,这些进程之间可以通过储物柜存放东西,或是传递东西。在这里,储物箱的编号就共享存储区的地址,便于取到进程自己想要的东西。

应用2- QQ留言板

案例:QQ空间中有留言板这项功能,访问主人空间的人可以在留言板上留言,主人可以查看留言。在这个过程中,留言板就相当于共享存储区,访问的人就是进程,他们通过留言板传递消息。

可以体现的计算思维

共享存储器系统通过设置共享对象或共享活动区域来实现不同操作后物资数量和状态的一致,保证了不同操作者之间能正常通信,体现了计算思维的规划特点。