进程通信

进程间通信就是在不同进程之间传播或交换信息

管道、消息队列、信号量、共享内存用于本地进程间通信

套接口用于远程进程间通信

信号是一种处理异步事件的方法,信号量是一种实现进程间同步、互斥的机制
信号由硬件或软件触发,再由操作系统内核发送给应用程序的中断形式
信号量是POSIX进程间通信的工具,在它上面定义了一系列操作源语,简单地讲它可以在进程间进行通信

管道实现了数据以一种数据流的形式在进程间流动,相当于文件系统中的一个文件,来缓存所要传输的数据,但是数据读出后,管道中就没有数据了。
匿名管道是进程中的一种资源,会随进程的结束而被系统清除。

管道的写入规则:向管道中写入数据时,管道缓冲区一旦有空闲域,写进程就会立即试图向管道写入数据。如果读进程未读取管道缓冲区的数据,那么写操作将一直阻塞。

命名管道(FIFO)与管道的区别:
1、命名管道可以用于任何两个进程间的通信,而不限制这两个进程同源,因此命名管道的使用比管道的使用灵活方便的多。
2、命名管道作为一种特殊的文件存放于文件系统中,而不是像管道那样存放于内存(使用完毕后消失)。当进程对命名管道的使用结束后,命名管道依然存在于文件系统中,除非对其进行删除操作,否则该命名管道不会消失。

FIFO遵循先进先出的规则。

消息队列是一种以链表式结构组织的一组数据,存放在内核中,是由各进程通过消息队列表示服引用的一种数据传送方式。

共享内存就是多个进程可以把一段内存映射到自己的进程空间,以此来实现数据的共享和传输。

信号量本身不具备数据交换的功能,而是通过控制其他的通信资源(如文件、外部设备等)来实现进程间通信。它是一种外部资源的标识。
信号量是多进程环境下使用的一种设施,他负责协调各个进程,以保证它们能够正确、合理地使用公共资源。
死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都无法向前推进,死锁是计算机系统和进程所处的一种状态。
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值