一、共享内存系统(Shared memory system)
共享内存是进程间通信的基本模型。在共享内存系统中,在地址空间区域中,协作者通过建立共享内存区域来相互通信。共享内存的概念是在最快的进程间通信上发挥作用。两个进程对于共享空间的访问必须是互斥的,包括基于数据结构的共享(低级通信)和基于存储区的共享(高级通信)。注意,OS只负责为通信进程提供可共享的存储空间和同步互斥工具(如P、V操作),而数据交换则是由用户自己安排读或写指令完成。
共享内存的过程:
如果进程想要发起通信并且它有一些数据要共享,那么在它的地址空间中建立共享内存区域。之后,另一个进程想要通信并尝试读取共享数据,并且必须将自己附加到启动进程的共享地址空间。
二、消息传递(message passing)
消息传递提供了一种机制,允许进程在不共享相同地址空间的情况下进行通信和同步它们的操作。e.g.网络聊天程序。
消息传递的过程:
发消息 → 接收消息
三、共享内存与消息传递的区别: