Operating system 左撇子和右撇子哲学家的混合,一个棘手的问题?

Operating system 左撇子和右撇子哲学家的混合,一个棘手的问题?,operating-system,deadlock,semaphore,critical-section,dining-philosopher,Operating System,Deadlock,Semaphore,Critical Section,Dining Philosopher,引理1:我们知道在任何一张桌子上,左手和右手都是混合的 哲学家们,死锁不会发生。我非常熟悉它的校样 最近我在采访中遇到了以下问题 有五位哲学家坐在圆桌旁。两位哲学家之间各有一双筷子。每个哲学家都需要两支筷子吃饭。我们有两种哲学家:左撇子和右撇子。左手先用左手拿筷子。右手先用右手拿筷子。假设五位哲学家中至少有一位左撇子和一位右撇子。以下哪一项是正确的: a) 独立于圆形布局的组合 表,没有死锁。(我肯定是真的) b) 如果所有的哲学家同时选择第一个 筷子,有一个僵局。(我认为这是真的,因为 如果我

引理1:我们知道在任何一张桌子上,左手和右手都是混合的 哲学家们,死锁不会发生。我非常熟悉它的校样

最近我在采访中遇到了以下问题

有五位哲学家坐在圆桌旁。两位哲学家之间各有一双筷子。每个哲学家都需要两支筷子吃饭。我们有两种哲学家:左撇子和右撇子。左手先用左手拿筷子。右手先用右手拿筷子。假设五位哲学家中至少有一位左撇子和一位右撇子。以下哪一项是正确的:

a) 独立于圆形布局的组合 表,没有死锁。(我肯定是真的)

b) 如果所有的哲学家同时选择第一个 筷子,有一个僵局。(我认为这是真的,因为 如果我们有一个-->b且a为假,则意味着a-->b为真,并且 这个选项没有办法让所有哲学家同时采取行动 首先是筷子,所以整个说法是正确的。)

任何专家都能帮我,我的论点是真的吗

编辑1:我为引理1添加了证明:(但是上面提到的问题 有一些不同。)

首先观察到,由于周围的资源获取模式 表中只列出了一个可能的等待周期,即循环 涉及所有哲学家。所以假设这样一个僵局。每一个 哲学家必须等待,我们的意思是等待筷子 被另一个人持有。所以所有的筷子都必须拿着。如果我们的桌子有 左撇子和右撇子哲学家的混合体,至少有 至少一对左右手相反的相邻哲学家。弗斯特 假设一个左撇子哲学家(“莱尼”)坐在一个桌子的左边 右撇子哲学家(“罗杰”)。因为所有的筷子都必须 拿着,莱尼或罗杰必须拿着筷子,筷子在 他们。如果莱尼拿着它,那就是他的“右筷子”,所以他必须 此前,他已经获得了左边的筷子。莱尼就是这样认为的 两个筷子,并不是等待获得任何(他正在吃),所以 没有僵局。如果罗杰拿着介于 他们,那是他的“左筷子”,所以他以前一定有 如果我们称之为上一个案例,他就获得了右边的筷子 “向外延伸”的情况,那么“向内延伸”的情况是 坐在左撇子左边的右撇子哲学家 哲学家。再说一次,如果我们陷入僵局,所有的筷子都必须 拿着,所以其中一个拿着筷子。这意味着 另一个没有筷子,因为夹在他们中间的是筷子 每个人都会尝试获得第一个(或者罗杰到达右侧并获得 它,或者莱尼走到左边拿了它;另一个在等它 在向外延伸之前)。如果有n个人 而n双筷子,所有的筷子都能握,但一个哲学家拿不到 然后是筷子−1.哲学家拿着n根筷子。一些哲学家 必须持有两支筷子;那位哲学家没有在等(他在等) 吃),所以没有僵局


下面是一个例子:

一个左撇子哲学家,四个右撇子哲学家: 如果所有人都拿起一根筷子,左撇子哲学家就赢得了争夺左手筷子的斗争,他有一根筷子,右手的那根仍然是空的。在下一次迭代中,他或他的右手邻居将拿起最后一根免费筷子。无论哪种方式,至少有一位哲学家有两只筷子可以吃没有僵局

假设是,没有一个哲学家试图拿起“外向”的筷子,除非他已经获得了“内向”的筷子

现在让我们来剖析问题b):如果所有哲学家都能在同一时间点获得一根筷子,那么所有哲学家要么都是左撇子,要么都是右撇子。 因为这样一来,就不必为一根筷子而斗争,每个哲学家都拿着一根筷子。 但这违反了你的前提条件:至少有一个左撇子和一个右撇子哲学家

假设除了一个以外,所有人都是右手,那么两个哲学家将为一根筷子而斗争。一个人将失去这场斗争,将无法拿起筷子。因此,不能满足“所有人同时拿起一根筷子”的条件。正如您正确声明的那样,蕴涵的前提条件为false,因此,蕴涵的计算结果为true


因此,回答您的问题:是的,您的推理是正确的。

请完全更新您的答案。现在很混乱。删除历史,只考虑答案。