1. 非搶占方式:一旦處理機(cpu)分配給某程序後,不管它執行多久讓他一直執行下去,不會因為時鐘中斷等原因而搶占正在執行的處理機。直到該程序完成,自願放棄處理機,或阻塞時
2. 搶占方式:允許排程程式根據某種原則去暫停某個正在執行的程序。搶占排程方式有一定原則,主要有以下幾條:
* 優先權原則
* 短作業優先原則
* 時間片原則
1. 先來先服務排程演算法(fcfs):最簡單,每次從就緒佇列選擇乙個最先進入該佇列的程序,為分配處理機讓其執行。該程序一直到執行完畢或發生阻塞才放棄處理機。
* 該演算法比較利於長作業(程序),不利於短作業;原因:短作業等待時間過長
* 該演算法有利於cpu繁忙型(指需要大量cpu時間)的作業,不利於i/o繁忙型(指需要大量i/o時間)。
2. 短作業優先排程演算法(sj( p )f):是指對短作業或短程序優先排程的演算法;sjf指從後備佇列選出若干時間最短的作業調入記憶體;spf指從記憶體中選乙個『估計』執行時間最短的程序,讓處理機排程它
* 可以有效降低作業的平均等待時間,提高系統吞吐量。
* 缺點:1.對長作業不利,周轉時間與帶權周轉時間提公升。2.未考慮作業的緊迫程度。3.時間長短是估計的,所以不一定會達到真正的短作業排程
3. 高優先權優先排程:
-非搶占優先權演算法: 系統一旦把處理機分配給就緒佇列優先順序最高的程序後,便一直執行下去。直到放棄處理機時再排程
-搶占式優先權排程演算法:系統同樣把處理機分配給優先權最高的程序,使之執行,但只要出現另乙個大優先權更高的程序,則把處理機分配給新的程序
-靜態優先權:是在建立程序時確定的,且在程序的執行期間不變;確定優先權有三個方面:1.程序型別。2.程序對資源的需求。3.使用者要求
-動態優先權:在建立程序時確定的;但可以隨程序推進或隨其等待時間的增加而改變,以便獲得更好的排程效能。
-高響應比優先排程演算法:優先權=(等待時間+要求服務時間)/ 要求服務時間。
4. 時間片輪轉法:利用fcfs再令其執行乙個時間片,時間片用完時,發生中斷,將其送入就緒佇列尾部
5. 多級反饋佇列排程演算法:既能使高優先順序的作業得到響應又能使短作業(程序)迅速完成;設定多個就緒佇列。在系統中設定多個就緒佇列,並為每個佇列賦予不同的優先。第乙個佇列的優先順序最高,第二個次之,其餘佇列的優先順序逐個降低。該演算法為不同列中的程序所賦予的執行時間片的大小也各不相同,在優先順序愈高的佇列中,其時間片愈小。
每個佇列都採用fcfs演算法。當新程序進入記憶體後,首先將它放入第一佇列的末尾,按fcfs原則等待排程。當輪到該程序執行時,如它能在該時間片內完成,便可撤離系統。否則,即它在乙個時間片結束時尚未完成,排程程式將其轉入第二佇列的末尾等待排程;如果它在第二佇列中執行個時間片後仍未完成, 再依次將它放入第三佇列…依此類推。當程序最後被降到第n佇列後,在第n佇列中便採取按rr方式執行。
按佇列優先順序排程。排程程式首先排程最高優先順序佇列中的諸程序執行,僅當第一佇列空閒時才排程第二佇列中的程序執行;僅當第1到(i-1)所有佇列均空時,才會排程第i佇列中的程序執行。如果處理機正在第i佇列中為某程序服務時又有新程序進入任一優先順序較高的佇列,此時須立即把正在執行的程序放回到第i佇列的末尾,而把處理機分配給新到的高優先順序程序
* 多級反饋佇列排程演算法有較好效能,能很好完成使用者需求:終端型作業使用者;短批處理作業使用者;長批處理作業使用者
程序排程演算法的優缺點
1 時間片輪轉排程演算法 rr 給每個程序固定的執行時間,根據程序到達的先後順序讓程序在單位時間片內執行,執行完成後便排程下乙個程序執行,時間片輪轉排程不考慮程序等待時間和執行時間,屬於搶占式排程。優點是兼顧長短作業 缺點是平均等待時間較長,上下文切換較費時。適用於分時系統。2 先來先服務排程演算法...
作業系統 程序排程演算法
cpu利用率 cpu忙碌的時間佔總時間的比例 利 用率 忙碌的 時間總時 間利用率 frac 利用率 總時 間忙碌的 時間 系統吞吐量 單位時間完成作業或程序的數量 吞 吐量 完成的 作業數量 總時 間吞吐量 frac 吞吐量 總時 間完成的 作業數量 周轉時間 完成作業需要花費的總時間 周 轉時 ...
作業系統之程序排程
世界上很多問題都是跟資源分配和任務排程有關,而學會了作業系統的程序排程演算法,我覺得也會給你在做事的時候帶來一些啟發吧。在現代的作業系統中,有很多程序在記憶體中。有的正在執行,有的正等待某個事件的發生 比如等待使用者敲擊鍵盤 那麼作業系統作為乙個大佬,就必須管理這些程序,讓它們按照規則來,不能亂了套...