linux 进程通信
linux 进程通信基本是从Unix继承过来的,而对这贡献大的两大机构是AT&T和bsd两大机构在进程方面的侧重点不同,前者则是是侧重于早期进程间通信的扩充,形成了"System v IPC ",通信进程局限于单个计算机内,而后者则是跳过了该限制,形成了基于套接口的进程间通信,Linux则是继承了两大方面. Linux通信方式有如下几种方式: 1.管道及有名管道:管道可用于具有亲缘关系之间的进程进行通信,有名管道客服了管道没有名字的限制,因此,除了具有管道的特性外,它还允许无亲缘关系的进程间进行通信 2.信号.信号是比较复杂的通信方式,用于通知进程有某种事情发生,除了通知进程间以外,还可以通知本身,linux除了支持signal外,还支持基于bsd的sigaction函数,该函数可以重新实现signal函数 3.消息队列.消息队列是消息的链接表,包括Posix的System V消息队列,有足够权限的进程可以向队列中添加信息,被赋予读写权限的进程可以从队列中取走消息,消息队列克服了信号承载信息比较少的缺点,管道只能承载无格式字节流以及缓冲区受限的的不足 4.共享内存.多个进程可以访问同一个内存区域,是最快的可用的IPC形式,一般与信号量结合使用,以达到进程间的同步与互斥 5.信号量.主要作为不同进程以及同一进程不同线程间的同步使用 6.套接口.更为一般的进程间通信.可用于不同机器间的进程通信. 一般Linux进程包括以下几个要素 1.含有一段可运行的代码 2.有专有的系统堆栈空间 3.内核中有系统控制块,描述系统的状态,时间,受内核可控制 4.具有独立的存储空间 进程往往和线程没有直接区分,而往往根据上下文进行分析.
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |