哲学家进餐问题.ppt

哲学家进餐问题.ppt

ID:57647235

大小:105.50 KB

页数:9页

时间:2020-08-30

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

《哲学家进餐问题.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、哲学家进餐哲学家供餐问题是计算机科学家递杰斯特拉提出的,问题是这样描述的:5位哲学家围坐在一张圆桌旁,每个人的面前有一碗面条,碗的两旁各有一只筷子.假设哲学家的生活除了吃饭就是思考问题,吃饭的时候需要左手拿一只筷子,右手拿一只筷子,然后开始进餐。吃完后将两只筷子放回原处,继续思考问题。哲学家的生活进程可以表示为:(1)思考问题;(2)饿了停止思考,左手拿起一只筷子(如果左侧哲学家已持有它,则等待);(3)右手拿起一只筷子(如果右侧哲学家已持有它,则等待);(4)进餐;(5)放下左手筷子;(6)放下右手筷子;(7)重新回到状态(1)。现

2、在的问题是:如何协调5位置学家的生活进程,使得每位哲学家最终都可以进餐?考虑下面的两种情况。(1)哲学家的生活进程,当所有的哲学家都同时拿起左手筷子时,则所有哲学家都将拿不到右手筷子,并处于等待状态,那么,哲学家都将无法进餐,最终饿死。(2)将哲学家的生活进程修改为当拿不到右手筷子时,就放下左手筷子。但是,可能在一个瞬间,所有的哲学家都同时拿起左手筷子,则自然拿不到右手筷子,于是同时放下左手筷子,等一会,又同时拿起左手筷子,如此重复下去,则所有的哲学家都将无法进餐。以上两个问题反映的是程序并发执行时进程同步的两个关键问题:饥饿和死锁。

3、为了提高系统的处理能力和机器的利用率,并发程序被广泛地使用,因此,必须彻底解决并发程序执行中的死锁和饥饿问题。于是,哲学家问题推广为更一般性的n个进程和m个共享资源的问题,并在研究过程中给出了解决这类的问题的不少方法和工具,如Pertri网、并发程序设计语言等。解决问题的办法A.原理:至多只允许四个哲学家同时进餐,以保证至少有一个哲学家能够进餐,最终总会释放出他所使用过的两支筷子,从而可使更多的哲学家进餐。以下将room作为信号量,只允许4个哲学家同时进入餐厅就餐,这样就能保证至少有一个哲学家可以就餐,而申请进入餐厅的哲学家进入roo

4、m的等待队列,根据FIFO的原则,总会进入到餐厅就餐,因此不会出现饿死和死锁的现象。B.原理:仅当哲学家的左右两支筷子都可用时,才允许他拿起筷子进餐。哲学家进餐问题的应用操作系统线程同步生活中人行马路同步

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

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

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