某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
(1)用PV操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。
(2)根据所定义的信号量,把应执行的PV操作填人下述空格中,以保证进程能正确地并发执行。
cobegin    process(1=1,2,…)
                   
某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
(1)用PV操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。
(2)根据所定义的信号量,把应执行的PV操作填人下述空格中,以保证进程能正确地并发执行。
cobegin    process(1=1,2,…)
                      begin ____ ; 
                                  进入售票厅; 
                                  购票;       
                                 退出; 
                        ____; 
                         end; 
             coend;
(3)若预购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。
【正确答案】:(1)定义一个信号量S,初值为20。
含义:S>0   S的值表示可继续进入售票厅的人数
S=0  表示售票厅中已有20名顾客(购票者)
S<  ∣S∣的值为等待进入售票厅的人数
(2) cobegin    process(1=1,2,…)
                      begin  P(S)
                                  进入售票厅;
                                  购票;       
                                 退出;
                         V(S)
                         end;
             coend;
(3)S的最大值为20,最小值为20-n。
【题目解析】:考点:并发进程的PV操作
Top