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