操作系统(2.6.2)--消息传递通信的实现方式
  S8Dvk8luQCCm 2023年11月02日 47 0

操作系统(2.6.2)--消息传递通信的实现方式_链路

1.直接消息传递系统

这是指发送进程利用OS所提供的发送命令,直接把消息发送给目标进程。

1.1直接通信原语

(1)对称寻址方式。

系统提供下述两条通信命令(原语)

Send(Receiver,message); 发送一个消息给接收进程;
Receive(Sender,message); 接收Sender发 来的消息;

例如,原语Send(P2, m)表示将消息m1发送给接收进程P2;而原语Receive(P1,my)则 表示接收由P1发来的消息m1。

(2)非对称寻址方式

通常,系统提供下述两条通信命令(原语):

Send(P,message);发送 一个消息给进程P;
Receive(id,Imessage);接收来自任何进程的消息,id变量可设置为进行通信的发送方进程id或名字。

1.2消息的格式

在消息传递系统中所传递的消息,必须具有一定的消息格式。

通常,可把一个消息分成消息头和消息正文两部分

消息头包括消息在传输时所需的控制信息,如源进程名、目标进程名、消息长度、消息类型、消息编号及发送的日期和时间;

消息正文则是发送进程实际上所发送的数据。在某些0S中,消息采用比较短的定长消息格式,在有的0S中,采用变长的消息格式,即进程所发送消息的长度是可变的。

1.3进程同步方式

在进程之间进行通信时,同样需要有进程同步机制,以使诸进程间能协调通信。我们可得到以下三种情况:

(1)发送进程阻塞,接收进程阻塞。这种情况主要用于进程之间紧密同步,发送进程和接收进程之间无缓冲时。这两个进程平时都处于阻塞状态,直到有消息传递时。

(2)发送进程不阻塞,接收进程阻塞。这是一种应用最广的进程同步方式。平时,发送进程不阻塞,因而它可以尽快地把一一个或多个消息发送给多个目标;而接收进程平时则处于阻塞状态,直到发送进程发来消息时才被唤醒。

(3)发送进程和接收进程均不阻塞。这也是一.种较常见的进程同步形式。平时,发送进程和接收进程都在忙于自己的事情,仅当发生某事件使它无法继续运行时,才把自己阻塞起来等待。

1.4通信链路

为使在发送进程和接收进程之间能进行通信,必须在两者之间建立一条通信链路。有两种方式建立通信链路:

第一种方式是由发送进程在通信之前用显式的“建立连接”命令(原语)请求系统为之建立一条通信链路;在链路使用完后,也用显式方式拆除链路。这种方式主要用于计算机网络中。

第二种方式是发送进程无须明确提出建立链路的请求,只须利用系统提供的发送命令(原语),系统会自动地为之建立一条链路。这种方式主要用于单机系统中。

而根据通信方式的不同,则又可把链路分成两种:

①单向通信链路,只允许发送进程向接收进程发送消息,或者相反;

②双向链路;即允许由进程A向进程B发送信息,也允许进程B同时向进程A发送消息。

2.信箱通信

信箱通信属于间接通信方式,即进程之间的通信需要 通过某种中间实体来完成。该实体用来暂存发送进程发送给目标进程的消息;接收进程则从该实体中取出对方 发送给自己的消息。 通常把这种中间实体称为信箱。信箱可分为信箱头和 信箱体两部分。利用信箱通信方式,既可实现实时通信, 又可实现非实时通信。 系统为信箱通信提供了若干条原语,分别用于信箱的创建、撤消和消息的发送、接收等。

2.1信箱的结构

信箱定义为一种数据结构。在逻辑上,可以将其分为两个部分:

(1)信箱头,用以存放有关信箱的描述信息,如信箱标识符、信箱的拥有者、信箱口令、信箱的空格数等;

(2)信箱体,由若千个可以存放消息(或消息头)的信箱格组成,信箱格的数目以及每格的大小是在创建信箱时确定的。

2.2心想通信原语

(1)信箱的创建和撤消。进程利用信箱创建原语来建立一个新信箱。当进程不再需要读信箱时,可用信箱撤消原语将之撤消。

(2)消息的发送和接收。当进程之间要利用信箱进行通信时,必须使用共享信箱,并利用系统提供的通信原语进行:

Send(mailbox,message);将一个消息发送到指定信箱;
Receive(mailbox,message); 从 指定信箱中接收一一个消息;

操作系统(2.6.2)--消息传递通信的实现方式_原语_02

2.3信箱的类型

信箱分为以下三类:

1)私用信箱:由用户进程创建,并作为该进程的- -部分。信箱的拥有者有权从信箱中读取消息,其他用户则只能将自己构成的消息发送到该信箱中。-- 单向通信链路

2)公用信箱:由操作系统创建,并提供给系统中的所有核准进程使用。--双向通信链路核准进程既可把消息发送到该信箱中,也可从信箱中读取发送给自己的消息。

3)共享信箱:由某进程创建,需指出共享进程的名字。

发送进程与接收进程间的关系包括四种

操作系统(2.6.2)--消息传递通信的实现方式_链路_03

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: envFrom 下一篇: VLAN常用命令
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
S8Dvk8luQCCm