首页 > 试题广场 >

某车站售票厅,任何时刻最多可容纳20 名购票者进入,当售票厅

[问答题]
某车站售票厅,任何时刻最多可容纳20 名购票者进入,当售票厅中少于20 名购票者时,
则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
(1)用wait 和signal 操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种
取值的含义。
(2)根据所定义的信号量,加上wait 和signal 原语,写出购票者进程的算法,以保证进程能够正确地并
发执行。
(3)若欲购票者最多为n 个人,写出信号量可能的变化范围(最大值和最小值)。
(1)定义一信号量S,初始值为20。
意义:
S>0 S 的值表示可继续进入售 票厅的人数
S=0 表示售票厅中已有20 名顾 客(购票者)
S<0 |S|的值为等待进入售票 厅的人数
(2) var S :semaphore =20;
COBEGIN PROCESS PI(I=1,2,……)
begin
进入售票厅;
wait(S);
购票;
signal(S);
退出;
end;
COEND
(3)S 的最大值为20
S 的最小值为20-n
发表于 2017-05-16 20:49:30 回复(0)