現代作業系統day8 排程

2021-10-03 08:25:43 字數 676 閱讀 5274

最佳靜態排程演算法,

通過週期安排優先順序,

週期越短優先順序也越高,

執行週期最短的任務

最佳動態排程演算法,

deadline越早優先順序越高,

執行deadline最早的任務

現代作業系統的處理器越來越多,和之前的排程(針對乙個cpu)都有區別

要考慮的問題

1.正常情況下,佇列中的程序都是在乙個cpu中執行,現在考慮的是程序在哪個cpu上執行

2.確保所有cpu的程序比較均勻(負載平衡),不會有的忙有的空閒,需要動態探測cpu的忙/空閒的情況

正常運**況下會有三個程序t1、t2、t3,t1優先順序最高,t3最低。問題是,如果t1不能及時完成,會認為系統處於不穩定狀態,從而重啟系統。問題在於,t1需要等待t3完成了才能繼續進行並完成,但t2又優先於t3使用cpu資源,導致t3還沒完成,t2就開始了,間接導致t1要等待t2完成才能繼續,結果t1未能及時完成任務

解決這種低優先順序任務影響高優先順序任務的辦法是:

1.優先順序繼承

t3訪問了資源,t1如果也要共享該資源,此時把t3優先順序提公升到和t1一樣(也就是繼承了t1的優先順序),從而不會被t2搶占,讓t3和t1都完成任務後再讓給t2。

2.優先順序天花板

一開始就統計哪些程序需要什麼資源,然後把資源也定優先順序,其等級等於【需要到該資源的所有程序中】最高的優先順序

現代作業系統 排程

互動系統中的排程 執行緒排程 幾乎所有的程序都是i o請求和計算都是交替突發 burst 的。比如,cpu不停的執行一段時間,然後發出乙個系統呼叫來讀寫檔案,系統呼叫完成後又開始計算,直到需要更多的i o操作為止。a 稱為計算密集型 compute bound 又稱為cpu密集型。計算密集型具有較長...

現代作業系統

只有認為等待時間非常短的情形下,才使用忙等待。用於忙等待的鎖,稱為自旋鎖 spin lock 在互斥時間很短而掛起等待的時間開銷很大時,可以採用活鎖 livelock,沒有出現死鎖,但現象上看好像死鎖發生了 輪詢 忙等待 可用於進入臨界區或訪問資源。接收者發起的分布式啟發演算法。分布式系統新增在其底...

《現代作業系統》 第4章 CPU排程

cpu排程的概念 按一定的排程演算法從就緒佇列中選擇乙個程序,並將cpu的使用權交給被選中的程序 cpu排程要解決的三個問題 排程時機 建立 喚醒程序,程序等待io io中斷,時鐘中斷等 排程過程 即程序切換,主要包括位址空間切換和上下文切換 設計排程演算法時需要考慮的幾個問題 批處理系統中採用的排...