在本文中,您将了解共享内存和内存传递的区别。但在讨论差异之前,需要了解共享内存和消息传递。

共享内存是什么?

进程间通信的基本模型是共享内存系统。在共享内存系统中,协作者通过在地址空间区域中建立共享内存区域来相互通信。如果进程希望启动通信并且有数据要共享,请在其地址空间中创建一个共享内存区域。之后,如果另一个进程希望通信并尝试读取共享数据,它必须附加到启动进程的共享地址空间。

消息传递是什么?

在这个消息传递过程模型中,进程通过交换消息与其他进程进行通信。为此需要进程之间的通信链路,并且它必须提供至少两种操作:发送(消息)和接收(消息)。消息大小可能是灵活的或固定的。

共享内存和消息传递的区别

在这里,您将了解共享内存和消息传递之间的各种关键区别。共享内存和消息传递之间的各种区别如下:

  • 共享内存用于在单处理器和多处理器系统之间进行通信。通信进程在同一台机器上并共享相同的地址空间。当通信进程分布在由网络链接的多个设备上时,消息传递最常用于分布式设置。
  • 共享内存提供了最大的计算速度,因为通信是通过共享内存完成的,因此只需要系统调用来建立共享内存。消息传递需要时间,因为它是通过内核(系统调用)执行的。
  • 共享内存区域主要用于数据通信。消息传递主要用于通信。
  • 确保共享内存中的进程不会同时写入同一地址。消息传递对于共享少量数据而不引起争议很有用。
  • 从共享内存读取和写入数据的代码应该由开发人员明确编写。在这种情况下不需要这样的代码,因为消息传递特性提供了一种通信和同步由通信进程执行的活动的方法。

共享内存和消息传递的比较区别

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:操作系统中共享内存和消息传递的区别
本文链接:https://www.vsdiffer.com/vs/shared-memory-vs-message-passing-in-operating-system.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。