164

问答题 164 /170

某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
(1)用P、V操作管理这些并发进程时,应怎样定义信号量?写出信号量的初值以及信号量各种取值的含义。
(2)根据所定义的信号量,把应执行的P、V操作填入下述程序中,以保证进程能够正确地并发执行。
   Cobegin PROCESS Pi(i=1,2,…)
       Begin
       进入售票厅;
        购票;
        退出;
    End;
   Coend
(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。

参考答案

售票厅问题解答如下:
(1)定义一信号量S,初始值为20。
    S>0  S的值表示可继续进入售票厅的人数;
    S=0  表示售票厅中已有20名购票者;
    S<0  |S|的值为等待进入售票厅中的人数。
(2)上框为P(S),下框为V(S)。
(3)S的最大值为20,S的最小值为20-N,N为某一时刻需要进入售票厅的最多人数。