Linux进程间通信之概述

     进程是一个独立的资源分配单元,不同进程间资源是独立的,是没有关联的,也就是不能直接在一个进程访问另一个进程的资源(如打开的文件描述符)。为此,Linux继承了UNIX和System V提供大量进程通信机制来实现统一主机两个进程间通信。此外,Linux还提供了网络主机间进程通信的机制。图示是Linux操作系统所支持的主要进程间的通信机制。 

    

    无名管道PIPE进程间通信方式,无名管道只能实现具有亲缘关系(父子进程)的进程间通信,并且无名管道在通信进程双方退出后自动消失。


    有名管道FIFO进程间通信方式,有名管道克服了无名管道瞬时性问题,采用管道文件来实现同一台主机任意两个进程间的通信。


    信号通信方式,信号实际上是一种中断处理方式,采用信号可以以异步的方式实现两个进程间的通信。


    消息队列通信机制,消息队列主要用来实现两个进程间的少量数据传输,并且,接收方可以根据消息队列中消息的类型选择性地接收消息。


   信号量通信机制,信号量主要用来实现两个进程间同步,最简单的信号量为二无信号量。例如对文件的写操作,因为任何时间段内只能有一个进程写文件内容,如果某进程已经占用该文件资源,此时就可以通过设置信号量为0,告诉其他进程该资源不能用,在写操作完成释放资源后,可以置该信号量值为1表示资源可用。广泛的信号量表示资源数量,例如一个buffer空间可用大小。


    共享内存,共享内容主要用来实现进程间大量数据传输。共享内容机制实际上开辟一段独立的内容空间,然后将其挂接到相互通信的两个进程中,从而实现数据传输。











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值