当我们只加载和存储指令作为原子操作时,测试和设置操作如何满足互斥?

时间:2015-10-06 07:03:18

标签: operating-system

测试和设置指令的原子操作是

1.加载锁定,注册 2.STORE#1,LOCK

所以现在如果进程P1到来并且它将lock变量的值设置为1并被抢占,那么当其他进程到来时,它们也将设置lock变量1的值,所以现在如何保证哪个进程将进入关键部分。

因为其后的其他说明是

3.CMP REGISTER,#0 4.JNZ step1

所以现在当P1到来时,比较器的输出将是假的,这意味着P1也将处于忙碌的等待状态,我对此有点困惑,请澄清一下。 我已经浏览了与之相关的其他帖子,但我没有得到它。

1 个答案:

答案 0 :(得分:0)

将值从0更改为1的过程将0视为"旧值"并将继续。

当另一个进程出现时,它们将获得1作为"旧值"并将循环直到它变为0。