互斥锁和锁结构是如何实现的?

时间:2009-11-13 02:12:52

标签: assembly synchronization locking mutex

我理解lock,mutex和其他同步结构的概念,但它们是如何实现的?它们是由OS提供的,还是这些结构依赖于CPU MMU的特殊CPU指令?

2 个答案:

答案 0 :(得分:7)

您可能希望查看这些链接,但主要的是维基百科上的测试和设置: http://en.wikipedia.org/wiki/Test-and-set

How are mutexes implemented?

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

答案 1 :(得分:5)

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