更新时间:2024-05-21 14:29
消息传递系统,应用于程序设计,有不必借助共享数据的优点。进程发送的消息可以是定长的也可以是变长的。如果只可以发送定长的消息,那么系统层的实现就很简单。然而,这种限制增加了程序设计的难度。另一方面,变长的消息需要更复杂的系统层实现,但是程序设计工作更简单。
消息系统的功能是允许进程与其它的进程进行通信。我们已经看到了消息传递在微内核中的应用。在这种方案下,服务作为普通的用户进程提供。更确切的说,服务在内核之外。用户进程之间的通信通过传递消息完成。IPC 至少提供了两种操作:send(message)和receive(message)。
进程发送的消息可以是定长的也可以是变长的。如果只可以发送定长的消息,那么系统层的实现就很简单。然而,这种限制增加了程序设计的难度。另一方面,变长的消息需要更复杂的系统层实现,但是程序设计工作更简单。
如果进程P 和Q 要进行通信,那么它们必须能够互相发送和接收消息;二者之间必须要建立一条通信链路。有多种方法可以实现这条链路。在这儿,我们并不关心链路的物理实现,而是要考虑它的逻辑实现。有如下几种用于逻辑实现send/receive 操作的方法:
l 直接或间接通信
l 对称或不对称通信
l 自动或手动缓冲(Automatic or explicit buffering)
l 发送拷贝或引用
l 定长消息或变长消息(Fixed-sized or variable-sized messages)