某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程, 请回答下列问题: a.用P、V操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。 b.根据所定义的信号量,把应执行的PV操作填入下述横线中,以保证进程能够正确地并发执行。 COBEGIN PROCESS PI(I=1,2……)begin;__________进入售票厅; __________购票: __________竭出;end; COEND c.若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。
参考答案:
解析:a.定义一信号量S,初始值为20。 意义: · S>0:S的值表示可继续进入售票厅的人数; · S=0:表示售票厅中已有20名顾客(购票者); · S<0:|S|印的值为等待进入售票厅的人数。 b.上框为P(S);下框为V(S) c.S的最大值为20;S的最小值为20-n 注意:信号量的符号可不同(如写成t),但使用时应一致(即上述的S全应改成t)。