【问题标题】:How are mutex and lock structures implemented?互斥锁和锁结构是如何实现的?
【发布时间】:2009-11-13 02:12:52
【问题描述】:

我了解锁、互斥锁和其他同步结构的概念,但是它们是如何实现的呢?它们是由操作系统提供的,还是这些结构依赖于 CPU MMU 的特殊 CPU 指令?

【问题讨论】:

    标签: assembly synchronization locking mutex


    【解决方案1】:

    您可能想查看这些链接,但主要的是 Wikipedia 上的 Test-and-set: http://en.wikipedia.org/wiki/Test-and-set

    How are mutexes implemented?

    您还可以查看此专利: http://www.faqs.org/patents/app/20080222331

    【讨论】:

      【解决方案2】:

      正如其他人所指出的,大多数互斥和同步机制都使用硬件原子操作。但是,完全可以在软件中实现互斥。请参阅Dekker's algorithm,以及PetersonLamport 的相关算法。尽管现在硬件原子无处不在,这些主要是历史上的兴趣,但我一直在开发仍然需要软件技术的“有趣”系统(仍在生产中)。

      【讨论】: