问答题 消息缓冲通信技术是一种高级通信机制,由Hansen首先提出。请回答下列问题: (1)试叙述高级通信机制与低级通信机制P、V原语操作的主要区别。 (2)给出消息缓冲机制(有限缓冲)的基本工作原理。 (3)消息缓冲通信机制(有限缓冲)中提供发送原语Send(Receiver a),调用参数a表示发送消息的内存区首地址。试设计相应的数据结构,并用P、V操作实现Send原语。
【正确答案】(1)P、V操作是指进程之间通过共享变量实现信息传递;而高级通信机制是由系统提供发送(Send)与接收(Receive)两个操作,进程间通过这两个操作进行通信,无须共享任何变量。 (2)基本原理:操作系统管理一个用于进程通信的缓冲池,其中的每个缓冲区单元可存放一条消息。发送消息时,发送者从中申请一个可用缓冲区,接收者取出一条消息时再释放该缓冲区,每个进程均设置一条消息队列,任何发送给该进程的消息均暂存在其消息队列中。 (3)缓冲区的格式说明:Sptr指示该消息的发送者,Nptr指向消息队列中下一缓冲区的指针,Text为消息正文。设置互斥信号量mutex(初值为1)与一个同步通信信号量Sm(初值为0),Sm也用于记录消息队列中现存消息的数目。 Send(a)操作如下: Send(a) { New(P); P.Sptr=address of the sender; Move message to buffer P; Find the receiver; P(mutex); Add buffer P to the message queue; V(Sm); V(mutex); }
【答案解析】