某超市有100个提篮,顾客进入超市只准取一个提篮,无提篮的顾客只能在入口等,进入超市的顾客购物后在出口交费,并交回提篮。如果把一名顾客看作一个进程时,怎样用PV操作来进行控制?请写出能进行正确管理的程序。
某超市有100个提篮,顾客进入超市只准取一个提篮,无提篮的顾客只能在入口等,进入超市的顾客购物后在出口交费,并交回提篮。如果把一名顾客看作一个进程时,怎样用PV操作来进行控制?请写出能进行正确管理的程序。
【正确答案】:定义一个信号量S,表示当前可供顾客使用的提篮的数量,S的初值取100。 程序如下: begin S:semaphore;/*信号量*/ S:=100;/*信号量初值取100*/ cobegin process guke i(i-1,2,3,……n) begin P(S);/*调用P(S),测试是否还有剩余提篮可供顾客使用*/, 进入超市购物并交费; 将提篮由超市出口移至超市入口; V(S);/*调用V(S),S的数值加1*/ end; coend; end:
Top