1、如图,试用信号量实现这6个进程的同步:
P1P2 P4 P3 P5 P7 P6
2、用P.V操作解决下图之同步问题:get进程负责往单缓冲区S中输入数据, copy进程负责将单缓中区S中的数据复制到单缓冲区T, put进程负责从单缓中区T中取出数据用于处理。
get copy put s t 3、某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
(1)用P、V操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。
(2)根据所定义的信号量,把应执行的P、V操作填入下述程序中,以保证进程能够正确地并发执行。
COBEGIN PROCESS PI(I=1,2,……) Begin
进入售票厅; 购票; 退出; end; COEND
(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。
1、为进程P1和P2设置共享公用信号量S12, P1和P3设置共享公用信号量S13, P1和P4设置共享公用信号量S14, P2和P5设置共享公用信号量S25,
P2和P7设置共享公用信号量S27,
P3和P6设置共享公用信号量S36, P4和P5设置共享公用信号量S45, P5和P6设置共享公用信号量S56,
P7和P6设置共享公用信号量S76,
初值均为0 P1: P2:
P3:
P4:
P5: …
P(S12); P(S13); P(S14); P(S25);
V(S12); …. … … P(S45); V(S13); V(S25); V(S36); V(S45); … V(S14); V(S27); V(S56); P7:
P(S27); … V(S76); P6:
P(S36);
P(S56);
P(S76); …
因篇幅问题不能全部显示,请点此查看更多更全内容