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系統程式設計 第二版
進階的行程管理
|
193
行程,不管被分配到的處理器時間比例是多少,至少會運行最小粒度所規定的時間(直
到遭阻擋)。這有助於確保不會導致不可接受的切換成本。也就是,當最小粒度起作用
時,會違反公平性。為目標等待時間及最小粒度使用典型值時,在可運行行程具有合理
數量的常見情況下,不適用最小粒度,但滿足目標等待時間,可維持公平性。
透過把時段的分配從固定改為處理器時間的比例,CFS 能夠維持排班的公平性:每個行
程可以公平分享處理器的時間。此外,CFS 能夠維護一個可設定的排班等待時間,因為
使用了可以設定的目標等待時間。在傳統的 Unix 排班器上,行程會運行一個固定的時
段(先驗的),但是排班等待時間(多久運行一次)是未知的。在 CFS 上,行程會按處
理器時間的比例運行,而且知道等待時間(先驗的),但是時段是動態的,它是系統上
可運行行程之數量的一個函數。它用於處理行程排班的方式明顯不同,但解決了互動及
I/O 密集行程困擾著傳統行程排班器的許多問題。
讓出處理器
儘管 Linux 是一個先佔式多任務作業系統,不過它也提供了一個系統呼叫,讓行程得以
主動讓出執行權,以及指示排班器選出並運行一個新的行程:
#include <sched.h>
int sched_yield (void);
呼叫
sched_yield()
的結果是暫停當前正在運行的行程,於是行程排班器會選出並運行
一個新的行程,這就好像是核心自己先佔當前正在運行之行程的執行權,以便執行一個
新的行程。注意,如果不存在任何其他的可運行行程,這是經常發生的情況,則讓出執 ...
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