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系統程式設計 第二版
230
|
第七章
混合執行緒
如果結合核心與用戶層級執行緒會怎樣呢?有可能實現 1:1 模型的真正平行性以及 N:1
模型的免成本環境切換嗎?如果你願意接受相當的複雜性,確實是這樣。N:M 執行緒,
也稱為
混合執行緒
hybrid threading
),試圖達到兩全其美的境界:不僅核心可以提供
原生的執行緒概念,而且用戶空間也可以實作用戶執行緒。用戶空間可以搭配核心,然
後決定如何把 N 個用戶執行緒映射到 M 個核心執行緒,其中 N>=M
雖然實作的方式不同,但典型的策略是不要以一個核心執行緒來支援大部分的用戶執行
緒。一個行程可能會包含上百個用戶執行緒,但只會有少量的核心執行緒,以及少數在
運行中的處理器(每個處理器至少要有一個核心執行緒讓系統能夠充分被利用)與阻擋
I/O。正如你可以想像到的,這樣的模型相當複雜難以實作。考慮到 Linux 廉價的環
境切換成本,大多數的系統開發者並不認為值得採用此做法,因此就 Linux 而言,1:1
模型仍廣受歡迎。
排班器活化作用
Scheduler Activation
)是替用戶層級執行緒提供核心支
援的一個解決方案,讓 N:M 執行緒的執行更具表現力。它起初是華盛頓
大學的一篇學術論文,後來為FreeBSD NetBSD 所採用,成為
FreeBSD NetBSD 之執行緒實作的基礎。排班器活化作用讓用戶空間
得以控制與洞察核心的行程排班,使得混合模型更有效率,並且修正了核
心未支援之實作上可能會出現的若干問題。
FreeBSD NetBSD
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