程序(作業系統)程式的執行態表現形式。
程序排程程式,它是確保程序能有效工作的乙個核心子系統。 排程程式負責決定將哪個程序投入執行,何時執行以及執行多長時間。
程序排程程式可看做在可執行態程序之間分配有限的處理器時間資源的核心子系統.
最大限度地利用處理器時間的原則是,
只要有可以執行的程序,那麼就總會有程序正在執行。
但是只要系統中可執行的程序的數目比處理器的個數多,就注定某一給定時刻會有一些程序不能執行。這些程序在等待執行。在一組處於可執行狀態的程序中選擇乙個來執行,是排程程式所需完成的基本工作。
多工作業系統:同時併發地互動執行多個程序的作業系統。
o(1)排程程式的新排程程式。
缺點:互動程式
rsdl--cfs公平排程的概念。
程序排程的主要入口點是schedule(),它定義在檔案kernel/sched.c中。
使用者搶占在以下情況時產生:
linux完整地支援核心搶占,
在不支援核心搶占的核心中,核心**可以一直執行
軟實時的含義是,核心排程程序,盡力使程序在它的限定時間到來前執行,但核心不保證總能滿足這些程序的要求。
相反,硬實時系統保證在一定條件下,可以滿足任何排程的要求。
linux對於實時任務的排程不做任何保證。
linux排程程式提供強制的處理器繫結機制。
這種強制的親和性儲存在程序的乙個位掩碼標誌中。該掩碼標誌的每一位對應乙個系統可用的處理器,
預設情況下,所有的位都被設定。
1.linux通過sched_yield()系統呼叫,提供了一種讓程序顯式地將處理器時間讓給其他等待執行程序的機制
2.是通過將程序從活動佇列中移到過期佇列中實現的
3.現在,應用程式甚至核心**在呼叫sched_yield()前,應該仔細考慮是否真的希望放棄處理器時間。
4.可以直接呼叫sched_yield(),先要確定給定程序確實處於可執行狀態,然後再呼叫sched_yield(),使用者空間的應用程式直接使用sched_yield()系統呼叫就可以 。
Linux核心設計與實現 第四章
多工多工系統可以劃分為搶占式多工和非搶占式多工。程序在被搶占之前能夠執行的時間叫時間片。linux採用的就是搶占式多工 io消耗型程序 頻繁處於可執行狀態但是只執行很短的時間。處理器消耗型 時間大多用在執行 上,系統盡量降低其排程頻率而延長執行時間。程序排程要在兩個排程之間尋求平衡 響應時間短和最大...
第四章 Linux核心模組
注 內容大多摘自 linux裝置驅動開發詳解 第2版 1.特點 2.模組程式結構 1 模組載入函式 一般需要 2 模組解除安裝函式 一般需要 3 模組許可證宣告 必須 4 模組引數 可選 5 模組匯出符號 可選 6 模組作者等資訊宣告 可選 3.模組的載入,解除安裝,檢視 4.printk函式 核心...
第四章 Linux核心模組
4.1 linux核心模組簡介 核心模組特點 1 模組本身不被編譯進核心映像中,從而控制核心的大小。2 模組被載入後,它跟核心中的其他部分完全一樣。核心載入命令 lsmod 核心解除安裝命令 rmmod 加強型核心載入函式 modprobe 優點 載入模組所以來的模組。模組之間的依賴關係可以在 li...