试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的解决算法。

大学 死锁,信号量,哲学家 已帮助 人

试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的解决算法。

请帮忙给出正确答案和分析,谢谢!

热搜:失代偿的代谢性酸中毒时不会出现

答案解析

难度★★☆ 搜索
  • 正确答案:设初始值为1的信号量c[I]表示I号筷子被拿(I=1234…2n)其中n为自然数. send(I): Begin if I mod 2==1 then { P(c[I]); P(e[I一1 mod 5]); Eat; V(C[I一1 rood 5]); V(C[I]); } else { P(C[I一1 mod 5]); P(C[I]); Eat; V(C[I]); V(c[I一1 mod 5]); } End
    设初始值为1的信号量c[I]表示I号筷子被拿(I=1,2,3,4,…,2n),其中n为自然数.send(I):BeginifImod2==1then{P(c[I]);P(e[I一1mod5]);Eat;V(C[I一1rood5]);V(C[I]);}else{P(C[I一1mod5]);P(C[I]);Eat;V(C[I]);V(c[I一1mod5]);}End