![](https://lstatic.shangxueba.com/jiandati/pc/images/pc_jdt_tittleico.png)
在“哲学家就餐问题”中,如果所有的哲学家都同时拿起左手边的筷子,则所有的哲学家都将拿不到右手的筷子,从而都处于等待状态;该状态在程序并发执行过程中称为_______状态。
![](https://lstatic.shangxueba.com/jiandati/pc/images/jdt_panel_vip.png)
![](https://lstatic.shangxueba.com/jiandati/pc/images/no_answer.png)
A、最多允许4个哲学家同时坐在桌子周围。
B、仅当一个哲学家左右两边筷子都可用时,才允许他拿筷子。
C、这三个都正确
D、给所有哲学家编号,奇数号哲学家必须首先拿左边筷子,偶数号哲学家必须首先拿右边筷子。
A.最多允许4个哲学家同时坐在桌子周围
B.仅当一个哲学家左右两边筷子都可用时,才允许他拿筷子
C.增加一根额外的筷子
D.给所有哲学家编号,奇数号哲学家必须首先拿左边筷子,偶数号哲学家则反之
A.筷子必须互斥访问。
B.哲学家全部饥饿时同时拿起左筷子,此时系统死锁。
C.可以采用资源原子分配的策略来避免哲学家进餐问题发生死锁。
D.信号量数组筷子初始化为0。
【哲学家就餐问题-(A)】 对于哲学家就餐问题(五个哲学家与五只筷子,沿圆桌顺时针方向编号分别为0~4,且i号哲学家左手边均为i号筷子,0≤i≤4)如下不完整的解决方案,关于①②两处位置空格处的不会产生死锁的正确伪代码填法可以为___________。 Var chopstick: array[0..4] of semphore:=(1,1,1,1,1); begin parbegin philosophy0; …… philosophyi; …… philosophy4; parend end philosophyi : begin repeat Think; ① Eat; ② until false; end (A) 对于i为0、2、4的哲学家进程philosophyi,①处填上“wait(chopstick[i]); wait(chopstick[(i+1)mod 5]);”,②处填上“signal(chopstick[i]); signal(chopstick[(i+1)mod 5]);”;对于i为1、3的哲学家进程philosophyi,①处填上“wait(chopstick[(i+1)mod 5]); wait(chopstick[i]);”,②处填上“signal(chopstick[i]); signal(chopstick[(i+1)mod 5]);”
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!