老师这个严格轮换算法是不是写错了,还是我没看懂?

来源:9-6 解决竞争条件的算法——严格轮换法和Peterson算法

Rayer

2021-04-05

老师这个严格轮换算法是不是写错了,还是我没看懂?
(1)初始化turn=0,即turn!=1,这个时候应该执行进程2的第2个循环程序。
(2)进程2执行临界区后,又将turn设置为0,所以进程1的第2个循环应该是永远都执行不了才对吧?
图片描述

写回答

3回答

ikems

2022-10-19

当 turn = 0 时,对进程 1 来说,直接进入临界区,对进程 2 来说,一直在等待

while (turn != 1); => while (turn != 1) {}

当 turn = 0 时,进程 2 相当于是在跑空循环

0
1
ikems
当 turn = 0,执行进程 1 的临界区,执行完后,将 turn 设成 1 进程 2 进入 临界区,执行完临界区 代码后,将 turn 设成 0 课件是正确的
2022-10-19
共1条回复

求老仙

2021-04-08

谢谢同学发现一处错误。是的,,你理解的没错。

0
0

求老仙

2021-04-08

谢谢同学发现一处错误。是的,,你理解的没错。

0
0

大学计算机必修课新讲--编译原理+操作系统+图形学

轻松超越大学课程,前阿里P8专家的实践精华总结

1752 学习 · 157 问题

查看课程