linux进程通信

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 08:18 点击:

 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.具有独立的存储空间
进程往往和线程没有直接区分,而往往根据上下文进行分析。

作者“舞者博客”

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • /etc/fstab 详解
    • nginx主主集群
    •  LVS-NAT和LVS-DR模式的实现详解
    •  RHCE考试之磁盘配额
    • 学习笔记:ACL详解
    • suse linux双网卡双网关配置
    •  LVM逻辑卷管理器
    •  Nginx主主负载均衡架构
    • ubuntu学习Mysql

    快速直达

    操作系统导航

    LinuxWindows虚拟机
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1