进餐-哲学家进餐问题

进餐-哲学家进餐问题

ID:18763078

大小:47.00 KB

页数:6页

时间:2018-09-22

进餐-哲学家进餐问题_第1页
进餐-哲学家进餐问题_第2页
进餐-哲学家进餐问题_第3页
进餐-哲学家进餐问题_第4页
进餐-哲学家进餐问题_第5页
资源描述:

《进餐-哲学家进餐问题》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、-------------------------------------------------------精选财经经济类资料----------------------------------------------进餐-哲学家进餐问题-----------------------------------------------最新财经经济资料----------------感谢阅读-----------------------------------~6~-----------------------------------

2、--------------------精选财经经济类资料----------------------------------------------进餐-哲学家进餐问题-----------------------------------------------最新财经经济资料----------------感谢阅读-----------------------------------~6~-------------------------------------------------------精选财经经济类资料------

3、----------------------------------------  哲学家进餐问题。哲学家进餐问题是由荷兰学者Dijkstra提出的经典的同步问题之一。  中文名,哲学家进餐问题。进餐产生背景,一大类并发控制问题的典型例子。约束条件,只有拿到两只筷子哲学家才能吃饭。进餐信号量机制,筷子是临界资源。  产生背景。由荷兰学者Dijkstra提出的哲学家进餐问题是经典的同步问题之一。  哲学家进餐问题是一大类并发控制问题的典型例子。涉及信号量机制。管程机制以及死锁等操作系统中关键问题的应用。在操作系统文化史上具有非常重要

4、的地位。对该问题的剖析有助于深刻地理解计算机系统中的资源共享。进程同步机制。死锁等问题。并能熟练地将该问题的解决思想应用于生活中的控制流程。  问题描述。n哲学家进餐问题描述有五个哲学家。  他们的生活方式是交替地进行思考和进餐。n哲学家们共用一张圆桌。分别坐在周围的五张椅子上。在圆桌上有五个碗和五支筷子。n平时哲学家进行思考。饥饿时便试图取其左。右最靠近他的筷子。只有在他拿到两支筷子时才能进餐。n进餐完毕。放下筷子又继续思考。约束条件只有拿到两只筷子时。哲学家才能吃饭。如果筷子已被别人拿走。则必须等别人吃完之后才能拿到筷子。任一

5、哲学家在自己未拿到两只筷子吃饭前。  不会放下手中拿到的筷子。信号量机制筷子是临界资源。一段时间只允许一位哲学家使用。为了表示互斥。用一个信号量表示一只筷子。五个信号量构成信号量数组。本文中算法用类C语言描述伪码算法。算法描述如下:n用五支筷子的信号量构成信号量数组:Semaphorechopstick={1。l。1。l。1};p;p%5]);进餐;v;v%5]);思考;当哲学家饥饿时。总是先去拿他左边的筷子。执行wait。  成功后。再去拿他右边的筷子。执行wait;成功后便可进餐。进餐毕。先放下他左边的筷子。然后再放下右边的筷

6、子。当五个哲学家同时去取他左边的筷子。每人拿到一只筷子且不释放。即五个哲学家只得无限等待下去。引起死锁。  死锁问题。破坏请求保持条件利用原子思想完成。  即只有拿起两支筷子的哲学家才可以进餐。否则。一支筷子也不拿。解法一:利用AND机制实现第1位哲学家的活动描述为:philosopher-----------------------------------------------最新财经经济资料----------------感谢阅读-----------------------------------~6~----------

7、---------------------------------------------精选财经经济类资料----------------------------------------------{while{思考;swait]%5。chopstick);进餐;Ssignal%5]);}}解法二:利用记录型信号量机制实现在初始化中增加一个信号量定义:semaphoremutex=1:第1位哲学家的活动描述:philosopher{while{思考;wait;wait;wait%5]);Signal;进餐;signal;Sign

8、al%5]);}}该方法将拿两只筷子的过程作为临界资源。  一次只允许一个哲学家进入。破坏环路等待条件在上述死锁问题中。哲学家对筷子资源的申请构成了有向环路。如图2所示。图2环路等待解法一:奇数号哲学家先拿他左边的筷子。偶数号哲学家先拿他右边的筷子

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。