CSAPP 2 4 程序排程

2021-10-10 19:12:03 字數 1716 閱讀 3310

名詞解釋:

吞吐量:系統每小時完成的作業數量

程序的分類

cpu密集型

i/o密集型:需要執行更多的此類程序保持cpu充分利用

程序排程發生的時間

建立新的程序後

程序退出過後

程序阻塞的時候

i/o中斷發生的時候

時鐘中斷:硬體的週期性中斷

可以在每個時鐘中斷或者每k個時鐘終端的時候,進行排程。根據如何處理時鐘中斷,分為兩大類

搶占式排程演算法(必須要有可用的時鐘)

非搶占式排程演算法

排程演算法分類

批處理排程

應用場景:賬目處理、薪水處理等週期性的作業,通常都採用非搶占式的演算法。

非搶占式的先來先服務fcfs:程序按照請求cpu的順序使用cpu。缺點是cpu和i/o利用很低。

非搶占式的最短作業優先排程:當執行時間可以預知的演算法。

搶占式的最短剩餘時間優先:選擇剩餘執行時間最短的程序執行。

證明:假設有四個作業,執行時間分別為a、b、c、d。第乙個作業在時間a結束,第二個作業在a+b結束,第三個作業在a+b+c結束,第四個在a+b+c+d結束。平均周轉時間是(4a+3b+2c+d)/4,則可知a對平均值影響最大,故a應該是最短作業。

互動式排程

應用場景:伺服器、個人計算機,通常採用搶占式排程演算法。

搶占式的輪轉排程:使用時間片,允許程序在時間片內執行。

時間片設定太短會導致過多的程序切換,降低cpu效率,太長會引起對短的互動請求響應時間變長,一般為20~50ms。

優先順序排程:每個程序被賦予乙個優先順序,允許優先順序最高的可執行程序先執行。

多級佇列。設定較長的時間片,為最高優先順序設定1個時間片,下一級2個,再下乙個4個以此類推

最短程序優先:讓最短的作業先執行。

保證排程:向使用者做出明確的效能保證。

彩票排程:為程序提供各種資源的彩票,程序的得到的彩票越多,更可能被排程。

公平分享排程:無論乙個使用者有多少程序存在,每個使用者都會得到應有的cpu份額。

使得i/i密集型程序獲得較好服務的演算法:優先順序設定為1/f,f

實時排程

實時系統通常分為軟實時和硬實時。硬實時:必須滿足絕對的截止時間,軟實時:可以容忍偶爾錯失截止時間。

題外話:執行緒排程

使用者級執行緒

核心級執行緒

程序排程演算法(程序排程策略)

程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...

程序排程三 程序排程介紹

一 程序排程介紹 1 程序排程的產生 程序從使用資源方面可以分為如下兩類,不管是i o還是cpu受限類的程序,cpu都希望再盡可能短的時間 完成更多的工作,但另一方面,又希望盡可能的減少資源 i o或cpu 的消耗,這兩則之間存在矛盾,所以程序 的排程管理就是來協調兩者之間的衝突。型別別稱 描述示例...

程序排程 模擬程序排程的過程

通過這次實驗,理解程序排程的過程,進一步掌握程序狀態的轉變 程序排程的策略,進一步體會多道程式併發執行的特點,並分析具體的排程演算法的特點,掌握對系統效能的評價方法。編寫程式模擬實現程序的輪轉法排程過程,模擬程式只對pcb進行相應的排程模擬操作,不需要實際程式。假設初始狀態為 有n個程序處於就緒狀態...