管道通信的概念
所谓管道,是指用于连接一个读进程和一个写进程以实现他们之间的通信的一个共享文件。
管道通信系统主要由区段通信、干线通信和移动通信三部分组成。
区段通信:主要指管道各区段内部的通信。每个区段的通信系统不仅要满足本区段的通信需要,而且也是干线通信网的组成部分。
干线通信:管道运输部门各级管理机构之间及其与调度中心之间的通信。干线通信网一般沟通总部、大区中心和调度中心。
移动通信:为满足收集和传递管道沿线的各种监视信号的需要,以及为满足管道维护工作的需要所使用的超短波或甚高频 (VHF)无线电通信系统。
管道通信作用:
1.它可以使互不相关的两个进程实现彼此通信。
2.该管道可以通过路径名来指出,并且在文件系统中是可见的。在建立了管道之后,两个进程就可以把它当作普通文件进行读写操作,使用非常方便。
3.FIFO 严格地遵循先进先出规则,对管道及 FIFO 的读总是从开始处返回数据,对它们的写则把数据添加到末尾。
管道特性:不能能在创建时就确定确定数据流向(操作系统无法确定谁读谁写),而是在使用的时候确定,因此操作系统会提供两个描述符供使用,一个读一个写,这样的确定方向就是将对应的一段关闭掉即可,这样方向的控制权就交给了用户。
管道通信和共享存储的区别
操作系统分为内核态和用户态,管道就是在内核中开辟一块缓冲区,不同的进程通过对这个缓冲取进行读写操作实现IPC。
共享内存的最大特性: 最快的进程间通信方式。
共享内存的本质是直接在物理空间上开辟的一块物理内存,而非pcb的虚拟内存,多个进程可以将自己的虚拟地址映射到这块内存上面从而达到通信的目的,相比于其他方式,很明显,这种方式有效的降低了输入输出数据的拷贝次数,从而降低了效率。
文章综合动植物百科、CSDN、Serendipity_00、code配上格子衫
全部0条评论
快来发表一下你的评论吧 !