操作系统第3章处理方法机调度和死锁-习题.pptVIP

  • 4
  • 0
  • 约3.22千字
  • 约 16页
  • 2019-12-10 发布于广东
  • 举报

操作系统第3章处理方法机调度和死锁-习题.ppt

第三章 处理机调度与死锁 27. 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。 解决办法有三: ⑴ 至多允许四个哲学家同时进餐,来保证至少有一个哲学家能够进餐,最终总会放下他所用的筷子,从而更多的哲学家可以进餐; ⑵ 仅当哲学家的左、右两只筷子都可用时,才允许他进餐; ⑶ 规定奇数号哲学家先拿他左边的筷子,再拿右边的筷子;偶数号哲学家先拿他右边的筷子,再拿其左边的筷子。这样,1、2号哲学家竞争1号筷子,3、4号哲学家竞争3号筷子(哲学家顺时针就座,筷子也顺时针放置,且1号筷子在1号哲学家左边),这样他们总是先竞争奇数号筷子,获得后,再竞争偶数号筷子,最后总能保证一位哲学家能拿到两只筷子。 采用⑴方案,我们增加一位服务生(信号量room),让他只允许四位哲学家同时进入餐厅。 var chopstick: array[0, …, 4] of semaphore := (1, 1, 1, 1, 1); room: semaphore := 4; i:=integer; procedure philosopher (i: integer); begin repeat think; wait(room); wait(chopstick[i]) ; wait(chopstick[(i+1) mod 5]) ; ea

文档评论(0)

1亿VIP精品文档

相关文档