Skip to Content
LINUX系統程式設計 第二版
book

LINUX系統程式設計 第二版

by Robert Love
December 2013
Intermediate to advanced
496 pages
8h 57m
Chinese
GoTop Information, Inc.
Content preview from LINUX系統程式設計 第二版
執行緒
|
229
當代的系統程式設計者往往找不到這些替代方案吸引人之處。例如,非同步 I/O,往往
會氣死人。即使你可以經由共享記憶體以及其他共享資源來降低多個行程的成本,但是
無法消除環境切換的開銷。因此,執行緒不僅常見於系統程式設計,而且跨越整個軟體
疊層:從核心直到 GUI 應用程式。隨著多核 CPU 的日益盛行,執行緒的使用只會增加
不會減少。
執行緒模型
核心及用戶空間所提供之不同程度的功能,讓我們得以透過幾種方式在一個系統上實作
執行緒。最簡單的模型就是核心為執行緒所提供的原生支援,而且這些核心執行緒每個
都可以直接轉譯成執行緒的用戶空間概念。這種模型稱為「1:1 執行緒」,因為核心所提
供的執行緒與用戶所使用的執行緒存在一對一的關係。這種模型也稱為
核心層級執行
kernel-level threading
),因為核心是系統之執行緒模型的關鍵所在。
Linux 所採用的就是 1:1 執行緒(我們將會在第 7 章〈Linux 的執行緒實作〉一節討論
)。 Linux 核心所實作的執行緒其實就是共享資源的行程。執行緒程式庫將會透過
clone()
系統呼叫來建立新的執行緒,而且所傳回的「行程」可以直接當成執行緒之用
戶空間概念來管理。也就是,Linux 上,用戶空間叫用執行緒的方式跟核心叫用執行緒
的方式差不多。
用戶層級執行緒
N:1 執行緒」是一個完全相反的模型,也稱為
用戶層級執行緒
user-level
threading
)。與核心層級執行緒相反的是,在這種模型中,用戶空間是系統之執行緒支 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

優雅的SciPy|Python科學研究的美學

優雅的SciPy|Python科學研究的美學

Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow
C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普

Publisher Resources

ISBN: 9789862769812