设有五个哲学家共享一张放有五把椅子的桌子每人分得一.pptVIP

  • 1057
  • 0
  • 约2.59千字
  • 约 11页
  • 2018-06-05 发布于贵州
  • 举报

设有五个哲学家共享一张放有五把椅子的桌子每人分得一.ppt

设有五个哲学家共享一张放有五把椅子的桌子每人分得一

答案要点: 设信号量c[0]~c[4],初始值为1,分别表示i号筷子被拿。 send(i) //第i个哲学家要吃饭 begin P(c[i]); P(c[i+1 mod 5]); eat; V(c[i+1 mod 5]); V (c[i]); end 上述过程可以保证两邻座不同时吃饭,但会出现5个哲学家每人一只筷子,谁也吃不上饭的死锁现象。 答案要点: 解决的思路如下:让奇数号的哲学家先取右手边的筷子,让偶数号的哲学家先取左手边的筷子。(为什么?) send(i) begin if i mod 2 ==0 then else { { P(c[i]); P(c[i+1 mod 5]); P(c[i+1 mod 5]); P(c[i]); eat; eat; V(c[i+1 mod 5]);

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档