旋转直到获得锁定

时间:2015-07-08 08:03:04

标签: operating-system synchronization mutex

我正在阅读一些关于测试的材料,并从Wiki(https://en.wikipedia.org/wiki/Test-and-set

设置说明

据我所知,大多数CPU支持特殊指令“测试和设置”以实现互斥。但是我不明白它是在谈论CPU旋转获取锁定。这可以在单核系统上实现。如果是,那么旋转以获得锁定对我来说没有意义。或者可能是我错过了只能在多个核心系统上进行测试和设置指令的地步?

boolean lock = false
function Critical(){
    while TestAndSet(lock)
        skip // **spin until lock is acquired**
    critical section // only one process can be in this section at a time
    lock = false // release lock when finished with the critical section
}

提前感谢您的反馈。

1 个答案:

答案 0 :(得分:0)

在抢占式多线程系统上,允许其他进程在TestAndSet == false和skip之间以及skip和TestAndSet之间运行。所以它也适用于单核系统。