内核学习之进程间通信(五)

管道与命名管道(FIFO):

最适合在进程之间实现生产者/消费者的交互,有些进程从管道写数据,而另外一些进程在管道中读数据

管道是进程间的单向数据流,linux使用一个描述符时,不必把另外一个描述符关闭

管道确定:无法打开已经存在的管道,即任意两个进程不能共享同一个管道,除非两个管道有同一个祖先

命名管道:新写入的字节总是先读出的特殊文件类型

跟管道的不同点:

1.索引节点出现在系统目录树而不是pipefs特殊文件系统中

2.是一个双向的通信管道

信号量:

如果资源是可用的,那么信号量的值是正值,如果资源不可用,则信号量的值为0,要访问资源的进程试图将信号量减一,如果当前信号量为0时,则内核阻塞这个进程,知道进程释放受保护的资源后,该进程才能被唤醒

消息:

允许进程在预定义的消息队列中读和写消息来交互消息

共享内存:

允许进程通过共享内存块来交换信息,在共享大量数据的应用中,可能是最高效的进程通信方式

套接字:

允许不同计算机进程在网络中交换数据



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值