注册 登录
编程论坛 汇编论坛

[求助]计算机操作系统PV原语问题

sjbird331 发布于 2007-11-06 17:54, 1854 次点击

超市可以容纳500人同时购物,有6扇可供出入的门,即既可进又可出,每扇门只允许1个人通过。使用PV操作及信号量描述进入和离开该超市的算法,使得超市的购物容量得到最大发挥。

7 回复
#2
无理取闹2007-11-07 10:09
不是汇编问题吧
#3
爱以走远2007-11-07 12:40
这个是操作系统的
用信号量 ..
有6个门 . 每个门都可以进出. .
但是门与门之间没关系.
因为只能有一个人进与出,人用队列排列 ,
先定义6个信号量 semaphore a,b,c,d,e,f, 又因为一共有500人. . 则定义一个整形 int
大概就这样 . .
#4
sjbird3312007-11-07 18:27
楼上的,你看我这样写可行吗?谢谢

count:semaphore:=500;

door:semaphore:=6;

进入超市进程:

begin

p(count);

p(door);

进入超市;

v(door);

end

离开超市进程:

begin

p(door);

离开超市;

v(door);

v(count);

end

#5
dreamhunter2007-11-07 22:09
PV操作是成对出现的,这样好像有点问题额。
#6
sjbird3312007-11-08 17:43
请问具体应该怎么改呢?
#7
爱以走远2007-11-09 11:00

不对哈. .
因为进的时候还要判断有出的没有
如果在出 就不能进
所以在进入的时候 不但要判断有没有人在进 还要判断有出的没有,
还有就是PV操作是成对出现
所以我认为有三个判断 ,
如进入的时候 先判断超市人满没有, 在判断有没有人正在进,在判断有没有人在出,
出去也差不多.

#8
sjbird3312007-11-09 17:33
count可以判断超市是否人满
1