《Linux核心設計與實現》 第4章(程序排程)

2021-07-11 06:03:02 字數 769 閱讀 5230

排程程式:在可執行態程序之間分配有限處理器時間資源的核心子系統

多工作業系統:同時併發地互動執行多個程序的作業系統

linux提供了搶占式的多工模式,對程序強制的掛起動作即搶占

程序可分為:i/o消耗型 和 處理器消耗型

i/o消耗型指程序的大多數時間用來提交i/o請求或等待i/o請求

處理器消費型程序把時間大多數用在執行**上,其排程策略往往是盡量降低它們的排程頻率,延長其執行時間

策略兩大矛盾中的平等:程序響應迅速(響應時間短)和最大系統利用率(高吞吐量)

linux基於優先順序的排程演算法cfs:搶占時機取決於新的可執行程式消耗了多少處理器使用比

公平排程:每個程序都將能獲得1/n的處理器時間(n指可執行程序的數量)

時間記賬:通過vruntime變數來記錄乙個程式到底執行了多長時間以及他還應該再執行多久

排程器入口:函式schedule()

睡眠和喚醒

linux完整地支援核心搶占,只要重新排程是安全的,它的核心可以在任何時間搶占正在執行的任務

由於核心支援smp,只要程序沒有持有鎖,核心就可以搶占

核心搶占發生在:

中斷處理程式正在執行,且返回核心空間之前

核心**再一次具有可搶占性

核心中的任務顯式地呼叫schedule()

核心中的任務阻塞

linux的兩種實時排程策略:sched_fifo和sched_rr

普通的非實時排程:sched_normal

linux的實時排程提供了一種軟實時工作模式

Linxu核心設計與實現 第4章 程序排程

主要內容 1 程序排程 是確保核心穩定工作的乙個核心子系統。在可執行態程序之間分配有限的處理器資源的核心子系統。2 作用 程序排程決定將哪個程序投入執行,何時執行,執行多長時間。3 效果 通過合理的排程,系統資源才能最大限度的發揮,多程序才會有併發執行的效果。4 限制 只要有可執行的程序,那麼總會有...

《Linux核心設計與實現》第3章讀書筆記

第三章 程序管理 一 程序 1.程序就是處於執行期的程式,但並不侷限於可執行 實際上,程序是正在執行的程式 的實時結果。2.執行執行緒是在程序中活動的物件 3.在現代作業系統中,程序提供兩種虛擬機制 虛擬處理器和虛擬記憶體。4.程序是呼叫fork 系統的結果,最後程式通過exit 系統呼叫退出執行。...

《Linux核心設計與實現》第5章讀書筆記

第五章 系統呼叫 一 系統呼叫概述 系統呼叫在linux中稱為syscall,返回的值是long型變數 如果出錯,c庫會將錯誤 寫入errno全域性變數 通過呼叫perror 函式可以把該變數翻譯成使用者可以理解的錯誤 為了保證32和64位系統相容,系統呼叫在使用者空間和核心空間有不同的返回值型別 ...