哲学家就餐问题--计算机操作系统.docVIP

  • 15
  • 0
  • 约3.76千字
  • 约 4页
  • 2015-09-21 发布于安徽
  • 举报
13、分析下面用信号量解决哲学家进餐问题的同步算法是否满足同步机制的准则。若不满足,说明为什么,并给出满足同步机制准则的同步算法。 Var chopstick : array[0,…,4] of semaphore ; Chopstick[0]:=chopstick[1]:=chopstick[2]:=chopstick[3]:=chopstick[4]:=1; Pi: repeat wait(chopstick[i]); wait(chopstick[(i+1)mod 5]); eat ; signal(chopstick[i]); signal(chopstick[(i+1)mod 5]); think; until false; 答:该算法不满足同步机制的“有限等待”原则,即每个哲学家都只拿一个筷子时就会产生死锁。下面给出三种解决办法。 1、互斥申请资源 设置信号量mutex初值为4,即最多可以有4个哲学家同时申请筷子。这样保证了4个哲学家中至少有1人可以拿到两个筷子就餐而不发生死锁。 mutex=4 Pi(i=0,1,…,4)

文档评论(0)

1亿VIP精品文档

相关文档