乙個作業從提交開始直到完成,姚經理以下**排程。
1.作業排程(高階排程):記憶體與輔存之間的排程,每個作業只調入一次、調出一次。從外存後備作業佇列中挑選乙個或多個作業為其分配必要資源,並建立程序使其有競爭處理機的權利。該排程一般配置在多道批處理中。排程次數較少。
2.中級排程(記憶體排程):提高記憶體利用率和系統吞吐量。將暫時不能執行的程序調至外存等待(掛起)。在記憶體有空時,可以把外存中的具備執行條件的程序重新調入記憶體,並將其狀態調為就緒放入就緒佇列。排程次數略多。(雖然也是記憶體和外存之間,但是要注意區分它和作業排程,後者排程是才分配資源建立程序~)
3.程序排程(低階排程):從就緒佇列選乙個程序,為其分配處理機,改為執行態。排程次數最多。
請求排程的事件發生後,才會進行程序排程。以下情況不會立即進行排程,而是置系統的請求排程標誌,直到情況中的過程結束才可以排程和切換。
1)處理中斷時
2)程序在作業系統核心程式臨界區中(注意不是普通的比如印表機那種慢速外設~)。
3)原子操作過程(連中斷都要遮蔽掉,更何況排程切換這些操作呢?~)
什麼叫做程序排程方式???
答:某個程序正在處理機上時,若有優先順序更高的程序到就緒佇列,這時候執行的處理機分配方式。
1.非搶占方式:即使是優先順序更高的程序來到就緒佇列,也仍然讓正在執行的程序繼續執行直到其終止或阻塞。
優點:實現簡單,系統開銷小。
缺點:不能用於大多數分時系統和實時系統。
2.搶占方式:立即停止當前執行的程序,把處理機分配給新到就緒佇列中且優先順序更高的程序。(但這個剝奪也是有一定原則的,在下面的排程演算法中會進一步講解)
優點:提高系統吞吐率和響應效率。
1.cpu利用率
2.系統吞吐量
3.周轉時間、帶權周轉時間、平均周轉時間、平均帶權周轉時間。
4.等待時間
5.響應時間
掌握這些演算法時,不僅要掌握思想,還要掌握3,3中提到那幾個基本準則的計算。
1.fcfs:可用於作業排程和程序排程,總是選最先進入後備佇列的作業進行分配資源建立程序並加入到就緒佇列,選最先進入緒佇列中的程序占用處理機直到其結束或阻塞。
優點:演算法最簡單。
缺點:效率低;不能用於分時和實時;利於長作業,不利於短作業;利於cpu繁忙型作業,不利於io繁忙型作業。另外,fcfs+優先順序搶先用於實時系統。
2.sjf:從後備佇列中選中估計執行時間最短的作業進行分配資源建立程序並到就緒佇列,選就緒佇列中估計執行時間最短的程序分配處理機直到其結束或阻塞(這裡考考慮的是非搶占式sjf)。
優點:平均等待時間和平均時間最少,系統吞吐量大。
缺點:長作業可能長時間不能排程,導致餓死(不是死鎖!)。未考慮作業的緊迫程度。
思考:做題的時候,如果題幹沒有指出sjf是搶占還是非搶占,該如何解題呢?預設搶占式嗎?
搶占式的sjf是怎樣的呢?
關鍵在於進行排程的時候,一定要清楚就緒佇列中有哪些程序以及其剩餘時間分別是多少,選剩餘時間最短的程序執行。
缺點:下乙個cpu週期的長度無法精確獲得,只能用**的方法。
3.優先順序排程演算法:可用於作業排程/程序排程,可以描述作業執行的緊迫程度。根據新的更高優先順序能否搶占正在執行的程序,排程演算法可分為:非搶占式優先順序排程演算法、搶占式優先順序排程演算法。
程序優先順序要分為以下兩種:
靜態優先順序:建立程序時確定的,並且之後保持不變。
動態優先順序:在執行過程中,根據程序情況的變化調整優先順序。
那麼程序優先順序如何設定呢?
1)系統程序》使用者程序
2)互動程序》非互動程序( 前台程序》後台程序)
3)io型程序》計算型程序。頻繁使用i/o裝置的程序》頻繁使用cpu的程序。
思考:解題的時候,優先順序相同的程序根據什麼標準去優先選擇呢?
優先順序的值是乙個常數,數字越大,優先順序越低嗎,也就是數值代表的是優先順序排名嗎???
4.高響應比優先排程演算法:主要用於作業排程,系統確定作業全部到達後備佇列中,再開始該排程。計算出佇列中所有作業的響應比,選高者。是非搶占式的。
等待時間=最後乙個作業的提交時間-該作業到達的時刻
響應比=(等待時間+要求服務時間)/要求服務時間。
特點:等待時間相同時,有利於短作業,即sjf;要求服務時間相同時,遵循fcfs;對於長作業,響應比可以根據其等待時間增加而提高從而獲得處理機避免飢餓。
優點: 兼顧長短作業。
缺點:計算響應比的開銷大。
5.時間片輪轉排程演算法:主要用於分時系統,選擇就緒佇列中最先到達的程序分配處理機即fcfs。但是選中的程序只能執行乙個時間片,如果乙個時間片結束但程序還未結束,那麼程序也要釋放處理機,並且該程序回到就緒佇列的末尾。
優點:兼顧長短作業
缺點:平均等待時間較長,切上下文切換浪費時間。
思考:時間片過長過短都會引來問題。如何確定時間片的長短呢?
答:根據系統的響應時間、就緒佇列中的程序數目和系統的處理能力綜合確定。
6.多級反饋佇列排程演算法:融合了前幾種演算法的優點
1)設定多個就緒佇列,第一級佇列優先順序佇列最高,第二級次之,其餘佇列逐次降低。
2)佇列時間片不等,優先順序佇列越高的佇列,時間片越小。
3)新程序進入記憶體後,首先將其放到第一級佇列末尾,遵循fcfs,輪到它排程時,如果在對應時間片內無法完成,再將其加入到第二級佇列末尾,遵循fcfs,如果還不能完成,就逐級遞減放置。
4)僅當第1~(i-1)級隊列為空,程式排程才會從第i級佇列開始排程。在排程第 i 級佇列時候,如果第更高階別(1~i-1)的佇列中加入了新的程序,那麼該程序將搶占正在執行的處理機,把正在執行的程序加到其原所在佇列的末尾。
思考:你了解各個演算法的優缺點嗎?請繪製**表述。(p70)
你會使用甘特**題嗎?
3 1處理機排程
多道程式環境下,動態的把處理機分配給就緒佇列中的乙個程序使之執行。提高處理機的利用率 改善系統效能,很大程度上取決於處理機排程的效能。2.1高階排程 high level scheduling 又稱作業排程或長程排程 long term scheduling 接納排程 admission sched...
03 處理機排程
程序排程 排程演算法評價指標 排程演算法 當有一堆任務要處理,但由於資源有限,這些事務無法同時處理。這就需要確定某種規則來決定處理這些任務的順序,這就是 排程 研究的問題。在多道程式系統中,程序的數量往往是多於處理機的個數的,這樣不可能同時並行地處理各個程序。處理機排程,就是從就緒佇列中按照一定的演...
作業系統之 處理機(1)處理機排程
長程排程 作業排程 排程物件是作業,決定作業何時裝入記憶體,為其建立程序 分配資源,放入就緒佇列中。主要用於多批道處理系統 記憶體排程 將暫時無法執行的程序從記憶體調到外存,合適時將外存的就緒程序調入記憶體執行。實際為儲存器管理中的對換功能,見後續.短程排程 程序排程 排程物件是程序,決定就緒佇列中...