基本概念
信号量
大于等于0:代表可供并发使用的资源实体数。
小于0:其绝对值标识正在等待使用的进程的数量。
PV操作
P操作: 作用是将信号量减1。当信号量变成负数时,则停止调用P操作的进程,直到另一个进程对同一信号量执行V操作。
V操作: 作用是将信号量加1。当信号量小于等于0时,从相应的队列中选择一个进程唤醒它。
互斥/同步
互斥: 一组并发的进程中一个或多个程序段,因共享某一个公有资源而导致他们必须以一个不允许交叉执行的单位执行,所以互斥信号量的取值只能是1或0。简而言之,互斥是要保证临界资源在某一时刻只能被一个进程访问。
同步: 异步环境下的一组并发进程因直接制约而互相发送消息,进程互相合作和等待,使得各个进程按一定的速度执行的过程。简而言之,进程之间是异步执行的,同步是说使各个进程按一定的制约顺序和速度执行。
例题详解
某企业的生产流水线上有2名工人P1 和P2,1名检验员P3。P1将初步加工的半成品放入半成品箱B1,P2从半成品箱B1取出继续加工,加工好的产品放入成品箱B2,P3从成品箱B2取出产品检验。假设B1可存放n件半成品,B2可存放m件产品,并设置6个信号量S1、S2、S3、S4、S5和S6,且S3和S6的初值都为0, |