为什么线程需要禁用中断来实现锁定?

时间:2015-04-20 17:49:03

标签: multithreading concurrency operating-system

我到处读到实现锁线程需要硬件支持 - 禁用中断。

  

无论我们如何选择实施锁,我们都必须拥有一些硬件   支持。实现锁定的一种可能性是禁用中断,

1 个答案:

答案 0 :(得分:1)

您所描述的是用于在单处理器系统上运行的旧操作系统中进行简单锁定的机制。即使这样,复杂的锁定(例如,对于数据库)也需要更多。

现在,对于多处理器系统,同时阻止中断所有处理器都无济于事。

支持多处理的CPU具有内存互锁指令.olde VAX在位设置和设置指令上有一个互锁分支,甚至可以从队列互锁指令中删除重载工作。这种硬件支持已存在很长时间了。