Futex
外觀
這是此頁批准,以及是最近的修訂。
futex(快速使用者區互斥的簡稱)是一个佇咧 Linux 上實現鎖定佮構建進階抽象鎖如號誌佮 POSIX 互斥的基本工具。𪜶頭一擺出現佇核心開發的二嬸五 . 七版;其語意佇咧二嬸五 . 四十固定落來,然後佇二嬸六 . x 系列穩定版核心內底出現。
Futex 是由 Hubertus Franke(IBM Thomas J . Watson 研究中心), Matthew Kirkwood,Ingo Molnar(Red Hat)和 Rusty Russell(IBM Linux 技術中心)等人建立的。
Futex 由一塊會當予濟的行程共享的記持體空間(一个對齊了的整型變數)組成;這个規型變數的值會當通過組合著語言呼叫 CPU 提供的原子操作指令來增加抑是減少,而且一个行程會使等待直到彼个值變做正數。Futex 的操作差不多全部攏是使用者空間完成;干焦做操作結果無一致拄好需要中人裁的時陣,才需要進入作業系統核心空間執行。這款的機制允准使用 futex 的鎖定原語有誠懸的執行效率:因為絕大多數的操作並無需要佇濟行程之間來做中人裁,所以絕大部份的操作攏會當佇應用程式空間執行,毋免閣用(相對較懸的代價的)核心系統呼叫。
參考資料
- Hubertus Franke , Rusty Russell , Matthew Kirkwood , _ fuss , futexes and furwocks : Fast Userlevel Locking in Linux _ , Ottawa Linux Symposium 兩千空二 , online
外部連結
- Futex manpages
- _ Futexes Are Tricky _ ( PDF,十一 pages ) , a paper explaining futexes and how to use them(Ulrich Drepper of Red Hat)