消息传递系统中的IPC-直接通信

时间:2019-08-03 16:18:59

标签: operating-system ipc message-passing

根据《操作系统概念》一书,它说:

  

使用直接通信时,每个想要通信的过程都必须   明确命名通讯的收件人或发件人。这个   该方案在寻址方面表现出对称性。在此方案中,发送和   接收原语定义为:

     
      
  • 发送(P,消息):发送消息以处理P
  •   
  • 接收(Q,消息)-从进程Q接收消息。
  •   
     

在非对称情况下,只有发件人为收件人命名;收件人不是   要求命名发送者。在此方案中,发送和接收   原语定义如下:

     
      
  • 发送(P,消息):发送消息以处理P。
  •   
  • receive(id,message):从任何进程接收消息;变量id设置为与之通信的进程的名称   已经发生了。
  •   

我不明白有什么区别?在非对称方案中,receive()调用不需要指定发送者ID吗?

1 个答案:

答案 0 :(得分:0)

区别在于receive()调用未指定发送者ID。这意味着发件人:收件人关系是多对一(N:1),而对称情况是1:1。许多实现提供了辅助机制来模糊这种含义。

在N:1的情况下,需要对处理多个同时发送者的机制进行一些解释。解释涉及政策:先到先得;随机;优先级,容量:#线程,以及调度参数和约束的继承。

在1:1情况下,不需要策略或容量,可以安全地假定继承是先天的。因此,1:1案例更适合自动化分析。

允许对发件人:收件人对进行动态配置的1:1系统可能比这些已识别系统更加复杂。在这种系统中,发送者可以通过实例化该发送者的接收者的某个过程来发现接收者。在这种安排中,发现策略,容量,继承属性更加复杂。