【发布时间】:2009-11-13 02:12:52
【问题描述】:
我了解锁、互斥锁和其他同步结构的概念,但是它们是如何实现的呢?它们是由操作系统提供的,还是这些结构依赖于 CPU MMU 的特殊 CPU 指令?
【问题讨论】:
标签: assembly synchronization locking mutex
我了解锁、互斥锁和其他同步结构的概念,但是它们是如何实现的呢?它们是由操作系统提供的,还是这些结构依赖于 CPU MMU 的特殊 CPU 指令?
【问题讨论】:
标签: assembly synchronization locking mutex
您可能想查看这些链接,但主要的是 Wikipedia 上的 Test-and-set: http://en.wikipedia.org/wiki/Test-and-set
您还可以查看此专利: http://www.faqs.org/patents/app/20080222331
【讨论】:
正如其他人所指出的,大多数互斥和同步机制都使用硬件原子操作。但是,完全可以在软件中实现互斥。请参阅Dekker's algorithm,以及Peterson 和Lamport 的相关算法。尽管现在硬件原子无处不在,这些主要是历史上的兴趣,但我一直在开发仍然需要软件技术的“有趣”系统(仍在生产中)。
【讨论】: