Linux进程间的管道通信.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
河南师范大学本科毕业论文(设计) PAGE PAGE 10 Linux进程间的管道通信 摘 要:进程间通信可以通过传送文件来实现,不同的进程通过一个或多个文件来传递信息,事实上,在很多应用系统里,都使用了这种方法。但一般说来,进程间通信不包括这种似乎比较低级的通信方法。Unix系统中实现进程间通信的方法很多,极少方法能在所有的Unix系统中进行移植。而Linux作为一种新兴的操作系统,几乎支持所有的Unix下常用的进程间通信方法:管道、消息队列、共享内存、信号量等等。管道通信最能体现Linux平台的特色,所以本文以Linux平台下的管道通信为重点进行讨论。 关键词:父进程; 子进程; 管道; 文件描述符 Abstract: the pipeline communication among the progress can be realized through conveying the file. Different progress conveys information through a file or several files. In fact, in a lot of application systems, all used this kind of method. But generally speaking, progress communication include this kind seems low-grade communication method. Unix system realizes many methods of process commu- nication, few methods can transplant in all Unix systems. As a kind of new developing operating system, Linux nearly supports the communication method among the commonly used process under all Unix systems. For example, the pipeline, news formation, shared drive, the signal amount. Pipeline communication best embodies the characteristic of Linux platform, so this text takes pipeline communication under Linux platform as the focal point and discusses. Keywords: father progress; sub-progress; piping; the file describes incantations 1引言 在进程之间进行通信的最简单的方法是通过一个文件,其中有一个进程写文件,而另外一个进程从文件中读出,其优点体现在:(1) 只要进程对该文件具有访问权限,那么,两个进程间就可以通信;(2) 进程之间的数据可以非常大。 尽管如此,使用文件进行进程间通信也有两大缺点:(1) 空间的浪费,写进程只有确保把数据加到文件的尾部才能使读进程读到数据, 对长时间存在的进程来说,这能使文件变的非常大;(2) 时间的浪费,如果读进程读数据的速度比写进程写数据快,那么,就可能出现读进程不断的读文件尾部,做很多无用功。 要克服以上缺点而又使进程间相对简单,管道是一种较好的选择。管道是Linux中最常用的进程间的通信IPC机制,当输出的数据量特别大时,这种IPC机制非常有用,可以想象没有管道机制,利用文件传递,会造成很大的时间和空间的浪费。 2管道的概念 所谓管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称pipe文件,向管道提供输入的发送进程,即写进程,以字符流形式将大量的数据送入管道;而接受管道输出的接受进程,即读进程,可从管道中接受数据。由于发送进程和接受进程是利用管道进行通信的,故又称管道通信[1]。 通信进程在使用管理时应该注意三个方面的问题,(a) 互斥,当某个进程对管道进行读\写操作时,其他的进程就不能使用它;(b) 感知对方的存在,只有感知对方存在才能发送出信息;(c) 同步,当发送进程把信息写满管道之后,自己便阻塞,等到接受进程取走信息后,唤醒它,当接受进程取到一个空管时,便阻塞自己,直到发送进程把信息写入管道,并把它唤醒为止[1]。管道通信机构必须提供以上三个方面的协调才能使通信正常进行。 3管道机制的分析 Linux外壳程序都允许重定

文档评论(0)

yurixiang1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档