排程的基礎:
cpu與i/o操作並行執行(由硬體決定)
任何程序中都是cpu與i/o交替執行(使得進行i/o操作時,cpu可以讓其它程序先執行)
i/o操作完成之後,一定需要核心處理一下,才可以產生下乙個i/o操作
所有陷入到作業系統以後的工作,都可能發生排程(從核心返回時)
不可搶占型排程,合作型(都處於執行態,但程序自身進行不下去了):
搶占型排程,可剝奪型(可能產生「競爭條件」):
對於非搶占排程,一旦cpu分配給乙個程序,那麼該程序會一直使用cpu直到程序終止或切換到等待狀態。
短期排程:在記憶體作業中選擇就緒執行的作業,並為它們分配cpu
中期排程:作為一種中等程度的排程程式,尤其被用於分時系統,乙個交換方案的實施,將部分執行程式移出記憶體,之後從中斷處繼續執行
長期排程(作業排程程式):確定哪些作業調入記憶體以執行。
三者主要的不同是執行的頻率,短期排程必須經常呼叫乙個新程序,由於在系統中,長期排程處理移動的作業時,並不頻繁被呼叫,可能在程序離開系統時才被喚起。
吞吐量:單位時間內完成的程序個數
等待時間(在就緒狀態的等待時間,而非在等待態的時間):cpu排程演算法並不影響程序執行和執行i/o的時間,它只影響程序在就緒佇列中等待所花的時間。
需要使cpu使用率和吞吐量最大化,而周轉時間、等待時間、響應時間最小化。
準則包括:
評估方法
CPU排程策略筆記
fifo 先入先處理,是公平 簡單 有效的方法。但如果乙個程序所需要的時間很少,在單純的先入先出場景下就需要等待很長的時間,如果這個程序是負責對使用者展示的,那麼使用者的使用體驗就會很差 面對程序 cpu排程的目標應該是,任務盡快結束 平均周轉時間 響應時間盡量短 系統開銷盡量小。這裡平均周轉時間是...
作業系統學習筆記 CPU排程
cpu排程的目的在於提高cpu利用率,不讓cpu閒著。cpu是寶貴的資源,如果有乙個程序,本來在cpu中執行,忽然因為要使用io資源,於是轉而請求io,這邊cpu掛起,造成就緒佇列中的其他程序等待,這樣就造成了浪費。一 cpu排程演算法 1 先到先服務 fcfs 誰先請求cpu誰先得到服務,一直到服...
CPU排程實踐
在學習資料結構和作業系統的有關知識,系統呼叫的基本原理是在系統的中斷列表中指定了各個中斷人入口位址,給出中斷號 後作業系統在中斷 向量表裡面找到入口執行,現代的計算機為了保證核心的穩定性對任務區分狀態即user mode 0 kernel mode 1 當使用者態的任務請求執行系統呼叫的 時候進入t...