linux什么是管道?-linux运维
管道是Linux由Unix那里继承过来的进程间的通讯机制,它是Unix早期的一个重要通讯机制。其思想是,在内存中新建一个同享文件,从而使通讯双方应用这个同享文件来通报信息。因为这种方式拥有单向通报数据的特色,所以这个作为通报新闻的同享文件就叫做“管道”。
在管道的概括实现中,依据通讯所运用的的文件可否拥有名称,有“匿名管道”和“命名管道”。
管道与同享内存的区别
乍一看,感觉管道和同享内存并不是区别很大,这里介绍一下两者之间的区别:
● 管道需要在内核和会员空间进行四次的数据拷贝:由会员空间的buf中将数据拷贝到内核中 -> 内核将数据拷贝到内存中 -> 内存到内核 -> 内核到会员空间的buf。而同享内存则只拷贝两次数据:会员空间到内存 -> 内存到会员空间。
● 管道用轮回队列实现,陆续传送数据可以不限大小。同享内存每次通报数据大小是牢固的;
● 同享内存可以随机拜访被映照文件的任意位置,管道只能次序读写;
● 管道可以独立完成数据的通报和通知机制,同享内存需要借助其他通信方式进行新闻通报。
也就是说,两者之间最大的区别就是: 同享内存区是最快的可用IPC情势,一旦这样的内存区映照到同享它的进程的地址空间,这些进程间数据的通报,就不再通过施行任何进入内核的系统调取来通报相互的数据,节俭了工夫。
相干文章教程举荐:linux教程
以上就是linux什么是管道?的细致内容,更多请关注 百分百源码网 其它相干文章!