彼得森算法会陷入死锁吗?

问题描述 投票:0回答:1

peterson algorithm

那么假设我们有两个进程(0和1)。0调用enter_region。 它设置了 interested[0]= TRUE 执行被停止了。

现在进程1来了。interested[1] = TRUE turn = 1 在 while 循环中,条件得到满足,所以它进入关键部分。

执行回到0。turn = 0 while循环的条件也是真的,所以0也不能进入关键部分,导致死锁。

请问这样做对吗?还是这个例子的算法有错误的地方?

图片来自:tanenbaum操作系统。

algorithm deadlock critical-section
1个回答
0
投票

while循环条件也为真,所以0也不能进入关键部分,这导致死锁。

这样做对吗?

不对,因为线程 1 设置 turn1 导致线 0 以期在被安排的时候掉出循环。

© www.soinside.com 2019 - 2024. All rights reserved.