跳至內容

Futex

出自Taiwan Tongues 台語維基
於 2025年8月22日 (五) 21:58 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

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)