2010-11-19 47 views
-1

我正在尋找一個在抽象c +原子或僞彙編中的同步原語(自旋鎖,互斥體,信號量,讀寫鎖,條件變量,...)的典型實現的良好在線參考(即任何合理的執行原子操作序列的符號)或x86 asm。從最天真的實現開始,然後解決它們的缺點和一些解決缺陷的方法將是很好的。同步原語的簡單/規範實現?

+0

投票關閉作爲資源的建議。另請參閱:一個問題,如何:http://stackoverflow.com/questions/2368164/how-is-thread-synchronization-implemented-at-the-assembly-language-level – 2015-06-16 09:54:28

回答

2

嘗試Tanenbaum的操作系統:設計和實現。

編輯:或現代操作系統。我認爲第一個包括Minix,第二個沒有。不知道,對不起=(

它是面向學術的,所以它會幫助您開始在正確的道路上。

+1

雖然我確實詢問*在線*來源,無論如何,引用Tanenbaum值得+1。 :-) – 2010-11-19 22:48:12

1

不以任何方式提供完整的參考,但後續的紙張是用於理解Linux的同步原語的實現經典的和必要的:

「Fuss,Futexes and Furwocks:Fast Userlevel locking in Linux」,Franke Russell & Kirkwod,2002年渥太華Linux研討會論文集 - 可用(其中):http://www.cis.temple.edu/~ingargio/cis307/readings/futex0.pdf

從這和glibc的來源有可能學到很多東西,但它不是我稱之爲隨和:-)

+0

真的很有意思。與我所尋找的不太一樣,但是如何最終設計futex並不是很明顯。猜猜它顯示瞭如何陷入「一切都是信號量」內核人士的心態...... ;-) – 2010-11-26 00:03:27