测试和设置指令的原子操作是
1.加载锁定,注册 2.STORE#1,LOCK
所以现在如果进程P1到来并且它将lock变量的值设置为1并被抢占,那么当其他进程到来时,它们也将设置lock变量1的值,所以现在如何保证哪个进程将进入关键部分。
因为其后的其他说明是
3.CMP REGISTER,#0 4.JNZ step1
所以现在当P1到来时,比较器的输出将是假的,这意味着P1也将处于忙碌的等待状态,我对此有点困惑,请澄清一下。 我已经浏览了与之相关的其他帖子,但我没有得到它。
答案 0 :(得分:0)
将值从0更改为1的过程将0视为"旧值"并将继续。
当另一个进程出现时,它们将获得1作为"旧值"并将循环直到它变为0。