process serversi(i=n) begin repeat p(customer_count); p(mutex); 从队列中取下一个号码 v(mutex); 为该号码持有者服务 end coend
思考 某车站售票厅任何时刻最多可容纳名购票者进入当售票厅中少于名购票者时则厅外的购票者可立即进入否则需在外面等待若把一个购票者看作一个进程请回答下列问题 ()用PV操作管理这些并发进程时应怎样定义信号量写出信号量的初值以及信号量各种取值的含义 ()若欲购票者最多为n个人写出信号量可能的变化范围(最大值和最小值) 定义信号量S初值为当s>时它表示可以继续进入购票厅的人数当s=时表示厅内已有人正在购票当s<时|S|表示正等待进入的人数
The PV code Using Pascal
var S:semaphore; S=; cobegin procedure P_i: begin p(s); · Enter and buy ticket; · v(s) end coend
最大值为最小值为N 返回《操作系统之PV金典》 [] [] |