2022年哲学家就餐问题--计算机操作系统 .pdf
《2022年哲学家就餐问题--计算机操作系统 .pdf》由会员分享,可在线阅读,更多相关《2022年哲学家就餐问题--计算机操作系统 .pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、13、 分析下面用信号量解决哲学家进餐问题的同步算法是否满足同步机制的准则。若不满足,说明为什么,并给出满足同步机制准则的同步算法。Var chopstick : array0,.,4 of semaphore ; Chopstick0:=chopstick1:=chopstick2:=chopstick3:=chopstick4:=1; Pi: repeat wait(chopsticki); wait(chopstick(i+1)mod 5); eat ; signal(chopsticki); signal(chopstick(i+1)mod 5); think; until false
2、; 答:该算法不满足同步机制的有限等待 原则, 即每个哲学家都只拿一个筷子时就会产生死锁。下面给出三种解决办法。1、互斥申请资源设置信号量mutex 初值为 4,即最多可以有4 个哲学家同时申请筷子。这样保证了4 个哲学家中至少有1 人可以拿到两个筷子就餐而不发生死锁。mutex=4 Pi(i=0,1,.,4); Repeat wait(mutex); wait(chopsticki); wait(chopstick(i+1) mod 5); signal(mutex); Eat ; signal(chopsticki); signal(chopstick(i+1)mod 5); think;
3、 until false ; 2、改变申请资源次序规定奇数号哲学家先拿起左边的筷子,然后再去拿右边的筷子;偶数号哲学家正好相反。也即拿到一个筷子的哲学家才有权去拿下一个筷子,而没有拿到筷子的哲学家则退出竞争。这样就不会出现5 个哲学家都只拿一个筷子的情况。pi(i=0,1,.4) repeat if odd(i) then /* 如果 i 为奇数 */ begin wait(chopsticki); wait(chopstick(i+1)mod 5); end else begin 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
4、 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - wait(chopstick(i+1)mod 5); wait(chopsticki); end eat ; signal(chopsticki); signal(chopstick(i+1)mod 5); think; until false; 3、采用 AND 型信号量机制AND 型同步机制的思想是:将进程所需要的所有资源一次性全部分配给它,但只要有一个资源不能分配给该进程,则其它所有资源也不能分配给它。pi (i=0,1,.,4) repeat Swait(chopsticki, ch
5、opstick(i+1)mod 5); eat ; Ssignal(chopstick(i+1)mod 5, chopsticki); think; until false; 15、设有 5 位哲学家,共享一张放有5 把椅子的桌子,每人分得一把椅子。但是,桌上总共有 5 支筷子, 在每人两边分开各放一支。哲学家只有在饥饿时方可分两次从两边抢占筷子就餐。就餐的条件如下:哲学家想吃饭时,先提出吃饭请求。提出吃饭请求时,并拿到两支筷子后,方可吃饭。如筷子已被他人获得,则必须等待此人吃饭后才能获取筷子。任一哲学家在自己未拿到两支筷子吃饭之前,决不放下手中的筷子。刚开始就餐时,只允许两个哲学家吃饭。试问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年哲学家就餐问题-计算机操作系统 2022 哲学家 就餐 问题 计算机 操作系统
限制150内