关于进程间通信:共享内存和消息传递的优缺点

15次阅读

共计 736 个字符,预计需要花费 2 分钟才能阅读完成。

过程间通信(InterProcess Communication,IPC)

  1. 低级过程通信:互斥和同步(替换的信息量较少且效率较低)
  2. 高级过程通信,

    • 共享存储器零碎(通过 Kernel 间接在物理空间上开拓的一块物理内存)
    • 管道通信零碎(能够浏览:https://www.usna.edu/Users/cs…)。管道其实就是一个文件,分为有名管道(个别的文件都有名字)和无名管道(为了解决过程之间拜访文件带来的烦扰 [比方文件的权限],以及通过文件名检索文件也须要大量工夫,所以发明了无名管道)。但管道与一般的文件不同,1. 由 kernel 进行治理管道的读写并发问题 2. 通信过程中的数据不会被写入 disk,而是缓存在内存中,从而提高效率。管道是半双工的,单向的,写方永远是写方,读方永远是读方。写过程会将缓冲区写满,读过程能力从缓冲区中读数据。
    • 消息传递零碎(间接通信:将信息交到对方手中,间接通信:借助 Kernel 将信息进行替换,如电子邮件)

    Shared Memory and Message passing 优缺点:

    参考 https://www.tutorialspoint.co…

    Shared Memory

    • 长处

      通信速度比拟快。因为 * 间接拜访内存,那么内存的访问速度是很快的、* 不须要借助第三方的帮忙

    • 毛病

      实现比较复杂,并行率低。因为须要人为的去管制并发带来的问题。

    Message passing

    • 长处

      与下面相同,实现简略,可能实现多个过程的并发。因为这种模式下只须要将信息传递给对方过程的音讯队列中即可。(其中一种就是借助 kernel 当做信使,传递到对方的队列中)

    • 毛病

      通信速率较低。正如下面所说,须要零碎调用来使 kernel 帮本人工作,以及 kernel 连贯音讯队列时都须要比拟多的工夫。所以速率较低。

正文完
 0