超市可以容纳500人同时购物,有6扇可供出入的门,即既可进又可出,每扇门只允许1个人通过。使用PV操作及信号量描述进入和离开该超市的算法,使得超市的购物容量得到最大发挥。
count:semaphore:=500;
door:semaphore:=6;
进入超市进程:
begin
p(count);
p(door);
进入超市;
v(door);
end
离开超市进程:
离开超市;
v(count);
不对哈. . 因为进的时候还要判断有出的没有 如果在出 就不能进 所以在进入的时候 不但要判断有没有人在进 还要判断有出的没有, 还有就是PV操作是成对出现 所以我认为有三个判断 , 如进入的时候 先判断超市人满没有, 在判断有没有人正在进,在判断有没有人在出, 出去也差不多.