一個作業從提交開始直到完成,往往經歷以下三個調度:
一、作業調度
作業調度又稱高級調度,主要任務是按照一定的原則從外存上處于后備佇列的作業中挑選一個或者多個作業,為其分配記憶體、I/O設備等必要資源,并建立相應的行程,使它們獲得競爭處理機的權利,簡要地說就是記憶體與外存的調度,對于每個作業僅調入一次、調出一次,多道批處理系統中大多配有作業調度,而其他系統中通常不需要配置作業調度,作業調度的執行頻率較低且時間較長,通常為幾分鐘一次,
二、記憶體調度
記憶體調度又稱中級調度,引入中級調度的目的是為了提高記憶體利用率和系統吞吐量,記憶體調度將那些暫時不能運行的行程調至外存等待,把此時的行程狀態稱為掛起狀態,當處于掛起狀態的行程能夠運行且記憶體有空閑時,將其重新調入記憶體并修改狀態為就緒狀態,掛在就緒佇列上等待,
三、行程調度
行程調度又稱低級調度,主要任務是按照某種方法和策略從就緒佇列中選取一個行程,將處理機分配給它,行程調度是作業系統中最基本的一種調度,執行頻率很高且時間較短,一般幾十毫秒一次,
四、三級調度的聯系
1、作業調度為行程活動做準備,行程調度使行程正常活動起來,記憶體調度將暫時不能運行的行程掛起,記憶體調度處于作業調度和行程調度之間;
2、作業調度次數最少,記憶體調度次數略多,行程調度頻率最高;
3、行程調度是最基本的,不可或缺,
對以下2個例子進行分析:
1、有一個具有兩道作業的批處理系統,作業調度采用短作業優先調度演算法,行程調度采用搶占式優先級調度演算法,作業的運行情況見下表,其中作業的優先數為行程的優先數,優先數越小,優先級越高,
作業名 | 到達時間 | 運行時間 | 優先數 |
1 | 8:00 | 40min | 5 |
2 | 8:20 | 30min | 3 |
3 | 8:30 | 50min | 4 |
4 | 8:50 | 20min | 6 |
8:00時,作業1到達,此時記憶體和處理機空閑,作業1進入記憶體并占用處理機;
8:20時,作業2到達,此時記憶體仍有1個位置空閑,處理機被占用,作業2進入記憶體,由于行程調度采用搶占式優先級調度,故作業2相應行程搶占處理機;
8:30時,作業3到達,但此時記憶體已無空位,故等待;
8:50時,作業2執行完成并空出一道記憶體空間并讓出處理機,作業3和作業4競爭該道記憶體空間,由于作業4的運行時間短,故先調入記憶體,此時作業1相應行程優先級比作業4相應行程優先級高,故先執行作業1的相應行程;
9:10時,作業1執行完成并空出一道記憶體空間并讓出處理機,將作業3調入記憶體,由于作業3相應行程優先級比作業4相應行程優先級高,故先執行作業3的相應行程;
10:00時,作業3執行完成并讓出處理機,執行作業4相應行程,10:20時作業4執行完畢,
作業 | 到達時間 | 運行時間 | 優先數 | 進入記憶體時間 | 結束時間 | 周轉時間 |
1 | 8:00 | 8:00-8:20, 8:50-9:10 | 5 | 8:00 | 9:10 | 70min |
2 | 8:20 | 8:20-8:50 | 3 | 8:20 | 8:50 | 30min |
3 | 8:30 | 9:10-10:00 | 4 | 9:10 | 10:00 | 90min |
4 | 8:50 | 10:00-10:20 | 6 | 8:50 | 10:20 | 90min |
注意:周轉時間是指從作業提交到作業完成所經歷的時間,包括作業在外存后備佇列上等待,在記憶體就緒佇列中等待,在處理機上運行以及I/O操作等所花費的時間,
2、在一個有兩道作業的批處理系統中,有一作業序列,其到達時間及估計運行時間如下表,系統作業采用最高回應比優先調度演算法(回應比=(等待時間+估計運行時間)/估計運行時間),行程的調度采用短行程優先調度的搶占式調度演算法,
作業 | 到達時間 | 估計運行時間/min |
J1 | 10:00 | 35 |
J2 | 10:10 | 30 |
J3 | 10:15 | 45 |
J4 | 10:20 | 20 |
J5 | 10:30 | 30 |
10:00時,作業J1到達,此時記憶體和處理機空閑,作業J1進入記憶體并占用處理機;
10:10時,作業J2到達,此時記憶體還有一個位置空閑,處理機被占用,故作業J2調入記憶體等待;
10:15、10:20、10:30時,作業J3、J4、J5分別到達,但三個作業到達時記憶體中已有J1、J2兩道作業,故這三個作業都不能調入記憶體;
10:35時,作業J1執行完成并空出一道記憶體空間并讓出處理機,此時作業J3、J4、J5回應比分別為65/45、35/20、35/30,則將作業J4調入記憶體,將處理機分配給運行時間較短的J4;
10:55時,作業J4執行完成并空出一道記憶體空間并讓出處理機,此時作業J3、J5的回應比分別為85/45、55/30,則將作業J3調入記憶體,將處理機分配給運行時間較短的J2;
11:25時,作業J2執行完成并空出一道記憶體空間并讓出處理機,將作業J5調入記憶體,將處理機分配給運行時間較短的J5;
11:55時,作業J5執行完成讓出處理機,將處理機分配給作業J3,12:40時作業J3執行完成,
作業 | 到達時間 | 運行時間 | 進入記憶體時間 | 結束時間 | 周轉時間 |
J1 | 10:00 | 10:00-10:35 | 10:00 | 10:35 | 35min |
J2 | 10:10 | 10:55-11:25 | 10:10 | 11:25 | 75min |
J3 | 10:15 | 11:55-12:40 | 10:55 | 12:40 | 145min |
J4 | 10:20 | 10:35-10:55 | 10:35 | 10:55 | 35min |
J5 | 10:30 | 11:25-11:55 | 11:25 | 11:55 | 85min |
個人總結:由以上兩個例子可以看出,作業調度與行程調度采用不同的調度演算法,具有相對的獨立性,作業調度執行的是從外存后備佇列調入至記憶體的這個程序,而行程調度執行的是從就緒佇列中選擇合適的行程進行處理機分配,作業調度在為行程調度做準備,所以之間又有相互聯系,
資料來源:王道作業系統
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/27241.html
標籤:Windows
上一篇:window快捷鍵
