早教吧作业答案频道 -->其他-->
哲学家就餐问题设有5个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。但是,桌子上总共只有5支筷子。在每人两边分开各放一支。哲学家饥饿时才试图分两次从两边拾起筷子
题目详情
哲学家就餐问题
设有5个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。但是,桌子上总共只有5支筷子。在每人两边分开各放一支。哲学家饥饿
时才试图分两次从两边拾起筷子就餐。
条件:
(1)只有拿到两支筷子时,哲学家才能吃饭。
(2)如果筷子已在他人手里,则哲学家必须要等到他人吃完饭之后才能拿到筷子。
(3)任一哲学家在自己未拿到两支筷子吃饭之前,决不放下自己手中的筷子。
试:
(1)描述一个保证不会出现两个邻座同时要求吃饭的通信算法。
(2)描述一个既没有两邻座同时吃饭,又没有人饿死(永远拿不到筷子)的算法。
(3)在什么情况下,5个哲学家全部吃不上饭?
设有5个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。但是,桌子上总共只有5支筷子。在每人两边分开各放一支。哲学家饥饿
时才试图分两次从两边拾起筷子就餐。
条件:
(1)只有拿到两支筷子时,哲学家才能吃饭。
(2)如果筷子已在他人手里,则哲学家必须要等到他人吃完饭之后才能拿到筷子。
(3)任一哲学家在自己未拿到两支筷子吃饭之前,决不放下自己手中的筷子。
试:
(1)描述一个保证不会出现两个邻座同时要求吃饭的通信算法。
(2)描述一个既没有两邻座同时吃饭,又没有人饿死(永远拿不到筷子)的算法。
(3)在什么情况下,5个哲学家全部吃不上饭?
▼优质解答
答案和解析
规定在拿到左侧的筷子后,先检查右面的筷子是否可用。如果不可用,则先放下左侧筷子, 等一段时间再重复整个过程。 分析:当出现以下情形,在某一个瞬间,所有的哲学家都同时启动这个算法,拿起左侧的筷 子,而看到右侧筷子不可用,又都放下左侧筷子,等一会儿,又同时拿起左侧筷子……如此 这样永远重复下去。对于这种情况,所有的程序都在运行,但却无法取得进展,即出现饥饿, 所有的哲学家都吃不上饭。 (2) 描述一种没有人饿死(永远拿不到筷子)算法。 考虑了四种实现的方式(A、B、C、D): A.原理:至多只允许四个哲学家同时进餐,以保证至少有一个哲学家能够进餐,最终总会释 放出他所使用过的两支筷子,从而可使更多的哲学家进餐。以下将room 作为信号量,只允 许4 个哲学家同时进入餐厅就餐,这样就能保证至少有一个哲学家可以就餐,而申请进入 餐厅的哲学家进入room 的等待队列,根据FIFO 的原则,总会进入到餐厅就餐,因此不会 出现饿死和死锁的现象。 伪码: semaphore chopstick[5]=; semaphore room=4; void philosopher(int i) } B.原理:仅当哲学家的左右两支筷子都可用时,才允许他拿起筷子进餐。 方法1:利用AND 型信号量机制实现:根据课程讲述,在一个原语中,将一段代码同时需 要的多个临界资源,要么全部分配给它,要么一个都不分配,因此不会出现死锁的情形。当 某些资源不够时阻塞调用进程;由于等待队列的存在,使得对资源的请求满足FIFO 的要求, 因此不会出现饥饿的情形。 伪码: semaphore chopstick[5]=; void philosopher(int I) } 方法2:利用信号量的保护机制实现。通过信号量mutex对eat()之前的取左侧和右侧筷 子的操作进行保护,使之成为一个原子操作,这样可以防止死锁的出现。 伪码: semaphore mutex = 1 ; semaphore chopstick[5]=; void philosopher(int I) }
看了 哲学家就餐问题设有5个哲学家...的网友还看了以下:
阅读下面的经典短文,回答下列各题。简单的心哲人把一个小孩,一个物理学家,一个数学家同时请到一个密闭 2020-04-06 …
著名科学家钱伟长谈到哲学时说:“哲学很重要,很多学问做深了,都会碰到哲学问题。数学是这样,物理、化 2020-05-14 …
对“一把钥匙开一把锁”的哲学思考是()A区分了不同事物的特点,就一定能正确认识事物B体现了世界观和 2020-05-15 …
把下面的这个长句改成几个较短的句子,可以改变语序 《东西文化及其哲学 》是梁漱溟不到30岁时应王鸿 2020-05-16 …
下列说法与“量体裁衣”包含的哲学寓意相一致的是:①一把钥匙开一把锁②具体问题具体分析③邯郸学步④ 2020-05-31 …
仿写陶渊明:他捧着一把菊花走来,带来一阵天人合一的哲学清香陶渊明:他捧着一把菊花走来,带来一阵天人 2020-06-25 …
35年前,一篇题为《实践是检验真理的唯一标准》的文章,在当时的中国掀起了真理标准问题大讨论,这场讨 2020-06-25 …
我们在学习和工作中要善于明确主攻方向,把握中心和关键,防止不分主次,“眉毛胡子一把抓”。据此回答1 2020-06-27 …
哲学家就餐问题设有5个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。但是,桌子上总共只有5 2020-07-05 …
哲理小品阅读下面小品文,完成后面问题。简单的心哲人把一个小孩,一个物理学家,一个数学家同时请到一个 2020-07-15 …