Linux 进程间通信一之概述

来源:互联网 发布:苹果系统开发linux 编辑:程序博客网 时间:2024/05/16 14:34

Linux 进程间通信一之概述


    进程是一个独立的资源管理单位,不同的进程之间资源是独立的,不能在一个进程中直接访问另一个进程的用户空间和内核空间资源。但是进程之间还需要信息的交互和状态的传递。因此需要进程间数据传递,同步及异步的机制。这些机制由操作系统来进行管理和维护。
      (1)进程间通信包括同一主机间进程通信及网络主机间进程通信;
    同主机进程间数据交换机制:无名管道,有名管道,信息队列和共享内存等。
    无名管道多用于亲缘关系进程间通信,无名管道可用于任何同主机进程间通信。但管道是单向的,多进程用同一管道通信会导致交叉读写的问题;
    消息队列可以实现同主机上任意多进程间通信,但消息队列存放的数据量有限,只用于少量的数据传递;
    共享内存可实现同主机任意进程间大量数据通信,但共享内存数据时存在竞争的问题;
   (2)同主机进程间同步机制:信号量。
   (3)同主机进程间异步机制:信号。
   (4)网络主机数据交互机制:套接字。