- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
维普资讯
第31卷第 3期 上海师范大学学报 (自然科学版) Vo1.3l,NO.3
2002年 9月 JournalofShanghaiTeachersUniversity(NaturalSciences) Sep .2 0o 2
求解哲学家就餐 问题 的两个 Petri网模型
马德云 ,俞时权 ,胡浩民
(1.上海 电视大学 计算机系 ,上海 200092;2.上海师范大学 数理信 息学院,上海 200234)
摘 要 :哲学家就餐 问题是操作 系统 中描述 “并发操作”的一个经典例子 ,一般用管程 、
PV操作等方法来避免死锁 问题.Petri网是一个很好的描述和分析并发 问题 的工具 ,本文
提 出了用 Petri网避免死锁 的一种模 型 ,并进 一 步讨 论 了用另一种 扩充 了的 Petri网模 型
避免无限等待情况发生的方法.
关键词 :Petre网;哲学家就餐 问题 ;并发 ;死锁 ;操作 系统
中图分类 号 :TP311 文献标 识码 :A 文章编号 :1000.5137(2002)03—0037—04
哲学家就餐 问题是操作系统 中描述 “并发操作”的一个经典例子.这个 问题描述 的是这样 一个
情况 (图1):有5个哲学家 ,围坐在一张 圆桌前 ,每个哲学家或者就餐或者思考 .每个哲学家 的左右都
只有1只筷子 ,桌上总共 只有5只筷子 ;而哲学家就餐时需要两 只筷子 ,即其左右的筷子Ⅲ.
假如5个哲学家 同时拿起右边 的一只筷子 ,然
后等待那左边 的筷子 ,那么谁也等不到他左边 的筷
子 ,也就是就谁也不能吃饭.:童种情况称为死锁.
解决死锁 的途径可 以分为两种 :避免死锁和打
破死锁 ].在哲学家就餐 问题 中,每个哲学家一旦
结束思考状态准备进入就餐状态 ,他不会放下手 中
的筷子 ;我们也不能改变筷子的数量和排列方式.
所 以一旦死锁发生就不能解决 了,即我们不能打破
死锁 ,只能采用避免死锁 的途径来解决 .
1 避免死锁的解决方案
避免死锁 的方法有 多种 ,下面举几个例子.
方法一 :给5只筷子分别编号 ,J),,lN 5,并且规 图 哲学家就餐问题
定每个哲学家在就餐时必须先拿到编号小 的筷子 ,
然后再拿起编号大 的筷子.这样 ,在一开始哲学家 1和哲学家5都要拿 1号筷 ,如果哲学家 1拿到1号
筷 ,哲学家5将 只能等待 ,其他4个哲学家 中的1个或2个将有机会进入就餐 ;如果哲学家5拿到iN-筷 ,
哲学家1将 只能等待 ,其他4个哲学家 中的1个或2个将有机会进入就餐 ;因此 以上方法可 以避免5个
收稿 日期 :2002—06—28
作者简介 :马德云 (1964一),女 ,上海 电视大学讲师 ;俞时权 (1942一),男,上海师范大学数理信息学院教授
维普资讯
上海师范大学学报 (自然科学版)
哲学家每人拿一只筷子 ,而谁也拿不到两 只筷子 的情况
这种方法的优 点是简单 ,容易用信号量和管程
哲学家l(等待
等方式来实现.但也存在较大的缺 点 ,即降低 了并
发性.存在这样 的情况 :某个哲学家 的左 、右两个 哲
学家都没有就餐 ,但是该哲学家 只能拿到一 只筷子
而不 能就餐.图2描述 了这样 的一种情况 :哲学家5
在就餐 ,哲学家1~4都在等待 ;如果调动 良好的话 ,
此时 的哲学家2或哲学家3应该能 同时就餐 .
方法二 :要求哲学家在就餐时必须 同时拿起两
只筷子 ,如果这个哲学家两边 的筷子有一个没空 ,
那 么一 只筷子也不拿.这个方法 的优 点是可 以保证
最大 的并发性 ,不存在方法一 中一个哲学家就餐 ,4
个哲学家处于等待就餐 (饥饿)状态 的情况.方法二
的模 型可 以用 Petri网来描述.
文档评论(0)