哲学家就餐问题.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哲学家就餐问题.doc

哲学家就餐问题   发布日期:2004-8-25 浏览次数: 20745  出处:/bbs 有五个哲学家围坐在一圆桌旁,桌中央有一盘通心粉,每人面前有一只空盘子,每两人之间放一只筷子每个哲学家的行为是思考,感到饥饿,然后吃通心粉.为了吃通心粉,每个哲学家必须拿到两只筷子,并且每个人只能直接从自己的左边或右边去取筷子 #define??N??5 ?void?philosopher?(int?i)?? { ????while?(true)?? ???{ ????思考; ????取fork[i];?取fork[(i+1)?%?5]; ????进食; ????放fork[i];?放fork[(i+1)?%?5]; ????} } 为防止死锁发生可采取的措施: 最多允许4个哲学家同时坐在桌子周围仅当一个哲学家左右两边的筷子都可用时,才允许他拿筷子(#61654;)给所有哲学家编号,奇数号的哲学家必须首先拿左边的筷子,偶数号的哲学家则反之?为了避免死锁,把哲学家分为三种状态,思考,饥饿,进食,并且一次拿到两只筷子,否则不拿.   哲学家就餐问题解法(1) #define??N??5 ?void?philosopher?(int?i)?? { ????while?(true)?? ???{ ????思考; ????取fork[i];?取fork[(i+1)?%?5]; ????进食; ????放fork[i];?放fork[(i+1)?%?5]; ????} } 哲学家就餐问题解法(2) #define??N??5 #define??THINKING??0 #define??HUNGRY????1 #define??EATING????2 #typedef??int?semaphore; int?state[N]; semaphore?mutex=1; semaphore?s[N]; void?test(int?i) { ??????if?(state[?i?]?==?HUNGRY)? ???????????(state?[?(i-1)?%?5]?!=?EATING)? ???????????(state?[?(i+1)?%?5]?!=?EATING) ??????????{ ???????????????state[?i?]?=?EATING; ???????????????V(s[?i?]); ???????????} ?} void??philosopher?(int?i)? {???while?(true)?? ?????{ ??????思考; ???????P(mutex); ???????state[i]?=?HUNGRY; ???????test(i); ???????V(mutex); ???????P(s[i]); ??????拿左筷子; ??????拿右筷子; ???????进食; ??????放左筷子; ????n bsp;?放右筷子; ????????P(mutex) ????????state[?i?]?=?THINKING; ????????test([i-1]?%?5); ????????test([i+1]?%?5); ????????V(mutex); ????????} } state[?i?]?=?THINKING s[?i?]?=?0

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档