《Linux核心設計與實現》讀書筆記 程序排程

2021-10-05 22:35:22 字數 967 閱讀 8970

程序排程程式負責決定將哪個程序投入執行,何時執行以及執行多長時間。

在執行態程序之間分配有限的處理器時間資源。

多工系統分為搶占式和非搶占式。

linux使用搶占式。(大部分現代系統都是搶占式)

io消耗型

處理器消耗型程序:把大多時間用於執行**的程序。

程序優先順序:

nice:-20~+19,值越大優先順序越低;(linux系統中nice值表示時間片的比例)

實時優先順序:0~99,值越大優先順序越高;

時間片:乙個數值,它表明程序在搶占前所能持續執行的時間。

io消耗型不需要長的時間片,而處理器消耗型的程序則希望越長越好。

時間片過長將導致系統對互動的響應表現欠佳。

linux的cfs(完全公平排程演算法)排程器並沒有直接分配時間片到程序,它是將處理器使用按比劃分給程序。

所以程序所獲得的處理器時間其實跟系統負載相關。

且這個比例受nice值影響,nice值作為權重將調整程序所使用的處理器時間使用比

linux排程器以模組方式提供。

這種模組化結構成為排程器類

cfs是針對普通程序的排程類(sched_normal),位於kernel\sched_fair.c。

linux還提供了兩種實時排程策略:sched_fifo和sched_rr。

/*

* scheduling policies

*/#define sched_normal        0

#define sched_fifo      1

#define sched_rr        2

Linux核心設計與實現讀書筆記 1

我現在要做的科研專案涉及到核心程式設計的知識,所以在學校的圖書館借了一本 linux核心設計與實現 英文名 linux kernel development 打算通過這本書來了解一下linux核心各部分的原理。我選擇這本書的原因很簡單 薄。全書只有二百多頁,但內容還是很全面的。翻譯質量還可以,譯者還...

linux核心設計與實現讀書筆記 記憶體管理

一 頁 記憶體管理的基本單位 頁。核心中用struct page表示物理頁,位於,屬性包括flag頁狀態 count頁的引用計數,virtual頁虛擬位址。目的在於描述物理記憶體本身而非其中的資料。1 獲得頁 核心 alloc pages gft t gft mask,order 連續分配2n個連續...

linux核心設計與實現讀書筆記 程序的位址空間

記憶體描述符 描述程序的位址空間,mm struct定義在中,包括記憶體物件的位址 使用該位址的程序 頁表等資訊,自身鏈結在雙向鍊錶中。首元素init mm記憶體描述符,代表init程序的位址空間,操作時使用mmlist lock鎖防治併發。task struct結構體mm存放記憶體描述符。分配記憶...