
概念:
1.前驱:某个进程前必须完成的进程称之为前驱
2.向弧:结点至结点直接称之为向弧
3.PV操作:
PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:
如果S>0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。
P(S): ①将信号量S的值减1,即S=S-1;
V(S): ①将信号量S的值加1,即S=S+1;
P是判断前面的进程是否完成,V是通知下一个进程
解析:
如图中P2的前驱是P1,P3的前驱是P1和P2,P4的前驱是P2,P5的前驱是P4和P3
信号量对应向弧
图中的向弧有P1->P2 对应S1,P1->P3 对应S2,P2->P3 对应S3,P2->P4 对应S4,P3->P5 对应S5,P4->P5 对应S6
第一个空:P1执行后,需要通知P2,P3可以执行了,所以是V(S1),V(S2)
第二个空:P2执行前,需要判断一下P1是否执行完毕了,所以是P(S1)
第三个空:P3执行前,需要判断一下P1和P2是否执行完毕了,所以是P(S2)和P(S3)
第四个空:P3执行后,需要通知P5可以执行了,所以是V(S5)
第五个空:P5执行前,需要判断P3和P4是否执行完毕,所以是P(S5)和P(S6)
文章介绍了进程间的前驱关系以及PV操作在进程同步中的应用。P操作用于判断前驱进程是否完成,而V操作用于通知后续进程可以开始执行。例如,P1执行后需通知P2和P3,因此执行V(S1),V(S2);P5执行前需确认P3和P4完成,执行P(S5),P(S6)。

被折叠的 条评论
为什么被折叠?



