處理機調度的層次


       一個作業從提交開始直到完成,往往經歷以下三個調度:

一、作業調度

       作業調度又稱高級調度,主要任務是按照一定的原則從外存上處於后備隊列的作業中挑選一個或者多個作業,為其分配內存、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

       個人總結:由以上兩個例子可以看出,作業調度與進程調度采用不同的調度算法,具有相對的獨立性。作業調度執行的是從外存后備隊列調入至內存的這個過程,而進程調度執行的是從就緒隊列中選擇合適的進程進行處理機分配。作業調度在為進程調度做准備,所以之間又有相互聯系。

資料來源:王道操作系統

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM