Linux进程通信之信号量
虽然本文是记录使用信号量保证进程的同步与互斥的,但是其实也可以看做是进程之间的通信问题,为了与前面的保持一致,所以还是叫做 Linux进程间通信了!
信号量
基本概念
进程间通信的方式有管道、消息队列、共享内存这些都是进程间的信息通信,而信号量可以理解为进程使用的临界资源的状态说明,信号量主要用于保证同步与互斥
- 临界资源:两个进程看到的一份公共资源称之为临界资源
- 临界区:各个进程中访问临界资源的代码叫做临界区
- 互斥:每个进程访问临界资源的时候必须是独占式的(排他式的),只能自己一个人访问
- 同步:防止不间断的占有资源和释放资源,这样的话其他进程就会长时间得不到资源,这样会造成进程的饥饿问题
由此可见我们之前用于进程间通信的管道,消息队列,共享内存都是临界资源,管道是内核已经提供了同步与互斥,但是消息队列和共享内存都是不保证同步与互斥的