作業系統原理第三章 處理機排程

2021-09-21 14:49:22 字數 4743 閱讀 9423

計算機作業系統(第四版)

什麼是處理機**排程

處理機**排程分別在什麼情況下發生

各級排程分別完成什麼工作

三種排程的區別

(1) 作業系統中有**排程:

高階排程(作業排程)

中級排程(交換排程)

低階排程(程序排程)

它們構成系統內的多級排程。

不同型別的作業系統不一定完全都實現上述三種排程。

(2) 處理機**排程分別在如下情況下發生:

1,高階排程。高階排程是根據系統內所有資源的使用情況,一旦可能便從後備作業中選擇一道作業進入系統,並建立相應的程序,分配必要的系統資源,然後將程序「就緒」。

2,低階排程。低階排程即為cpu排程,它是根據cpu資源的使用情況及時分配cpu,即從「就緒」的程序中選擇乙個程序在cpu上「執行」。這種排程不僅要求排程演算法本身的時間複雜度小,而且要求策略精良,因為低階排程直接影響著系統的整體效率。在多道程式系統中必須提供低階排程。

3,中級排程。在記憶體中常常有許多程序處於某種等待狀態,這些程序在「等待」期間無謂地占用著記憶體資源,如將它們暫時換至外存,則所節省出來的記憶體空間可用以接納新的程序。一旦被換至外存的程序具備執行條件,再將其重新換入記憶體。為此,在邏輯上將主存延伸,用一部分外存空間(稱為交換區)替代主存,並且實施交換排程(中級排程)。在各種型別的作業系統中可以根據記憶體的配置和系統能承受的最大負載,有選擇地進行中級排程,或者不實施中級排程。

(3) 各級排程的工作:

1,高階排程完成作業排程,使「後備」狀態的作業 變為 「執行」狀態;

2,中級排程完成記憶體和外存資訊的交換排程;

3,低階排程完成程序排程,使「就緒」的程序在cpu上「執行」。

(4) 三種排程的區別:

1,高階排程又稱作業排程,作業就是使用者程式及其所需的資料和命令的集合,作業管理就是對作業的執**況進行系統管理的程式的集合。作業排程程式的主要功能是審查系統是否能滿足使用者作業的資源要求以及按照一定的演算法來選取作業。

2,引入中級排程的主要目的是為了提高記憶體的利用率和系統吞吐量,使得暫時不執行的程序從記憶體對換到外存上。

3,低階排程又稱程序排程,其主要功能是根據一定的演算法將cpu分派給就緒佇列中的乙個程序。程序排程是作業系統中最基本的一種排程,其排程策略的優劣直接影響整個系統的效能。

1,程序排程:在多道批處理、分時和實時三種型別的os中,都必須配置這級排程。

2,處理機排程演算法的共同目標:資源利用率;公平性;平衡性;策略強制執行。

3,批處理系統的目標:平均周轉時間短;系統吞吐量高;處理機利用率高。

6,jcb:作業控制塊

7,作業狀態:提交狀態、後備狀態、執行狀態、完成狀態。

1,先來先服務(fcfs)排程演算法

2,短作業優先(sjf)排程演算法

與fcfs演算法比較,平均周轉時間有下降,有效地降低作業的等待時間,提高了系統的吞吐量。但對長作業非常不利。

3,優先順序排程演算法(psa)

4,高響應比優先排程演算法(hrrn)

優點:既照顧短作業、又考慮作業到達先後,並且還兼顧到長作業。

缺點:每次要進行排程之前,都需要先做響應比的計算,顯然會增加系統開銷。

5,時間片輪轉(rr)演算法

讓就緒佇列上的每個程序每次僅執行乙個時間片。

時間片小會增加系統的開銷,若時間片選擇得太長,rr演算法退化為fcfs演算法,無法滿足短作業和互動式使用者的需求。

6,多級反饋佇列(mlfq)排程演算法

時間片演算法和優先順序演算法的結合,針對不同程序使用不同的排程演算法。

分時作業系統通常採用( a )排程演算法來為使用者服務。

a.時間片輪轉

b.先來先服務

c.短作業優先

d.優先順序

[解析] 分時系統由於需要同時滿足多個使用者的需要,因此把處理器時間輪流分配給多個使用者作業使用,即採用時間片輪轉排程演算法。

下列排程演算法中,( b )排程演算法是絕對可搶占的。

a.先來先服務 

b.時間片輪轉

c.優先順序 

d.短程序優先

[解析] 本題目考查各種排程演算法的特點。

a、先來先服務排程演算法是不可搶占的。

b、優先順序排程演算法和短程序優先排程演算法可以分為可搶占和不可搶占兩種,

時間片輪轉排程演算法在時間片到達時將剝奪正在執行的程序的處理機,把處理機分配給就緒佇列中的隊首程序,即時間片輪轉排程演算法一定是可搶占的。因此應該選擇b。

程序排程演算法採用固定時間片輪轉排程演算法,當時間片過大時,就會使時間片輪轉法演算法轉化為( b )排程演算法。

a.高響應比優先

b.先來先服務

c.短程序優先

d.以上選項都不對

[解析] 時間片輪轉排程演算法在實際執行中也是按先後順序使用時間片,

當時間片過大時,我們可以認為其大於程序需要的執行時間,即轉變為先來先服務排程演算法。

採用時間片輪轉排程演算法分配cpu時,當處於執行狀態的程序用完乙個時間片後,它的狀態是( c )狀態。

a.阻塞

b.執行

c.就緒

d.消亡

[解析] 處於執行狀態的程序用完乙個時間片後,它的狀態會變為就緒狀態等待下一次處理器排程。當程序執行完最後的語句並使用系統呼叫exit,請求作業系統刪除它或出現一些異常情況時,程序才會終止。

若每個作業只能建立乙個程序,為了照顧短作業使用者,應採用( b );為了照顧緊急作業使用者,應採用( e );為了能實現人機互動,應採用( c );而能使短作業、長作業和互動作業使用者都滿意,應採用( d )。

a.fcfs排程演算法

b.短作業優先排程演算法

c.時間片輪轉排程演算法

d.多級反饋佇列排程演算法

e.剝奪式優先順序排程演算法

[解析] 照顧短作業使用者,選擇短作業優先排程演算法;

照顧緊急作業使用者,即選擇優先順序高的作業優先排程,採用基於優先順序的剝奪排程演算法;

實現人機互動,要保證每個作業都能在一定時間內輪到,採用時間片輪轉法;

使各種作業使用者滿意,要處理多級反饋,所以選擇多級反饋佇列排程演算法。

既考慮作業等待時間又考慮作業執行時間的排程演算法是(a )。

a.響應比高者優先 

b.短作業優先

c.優先順序排程 

d.先來先服務

[解析] 響應比=(等待時間+執行時間)/執行時間

( d )優先順序是在建立程序時確定的,確定之後在整個執行期間不再改變。

a.先來先服務

b.動態

c.短作業

d.靜態

[解析] 優先順序排程演算法分靜態和動態兩種。靜態優先順序在程序建立時確定,之後不再改變。

現有三個同時到達的作業j1,j2和j3,它們的執行時間分別是t1,t2和t3,且t1<t2<t3。系統按單道方式執行且採用短作業優先演算法,則平均周轉時間是(c )。

a.t1+t2+t3

b.(t1+t2+t3)/3

c.(3t1+2t2+t3)/3

d.(t1+2t2+3t3)/3

[解析] 按照短作業優先演算法,執行順序為j1、j2、j3,三個作業完成時間分別是t1、t1+t2、t1+t2+t3,所以平均周轉時間是(t1+t1+t2+t1+t2+t3)/3。

設有4個作業同時到達,每個作業的執行時間均為2h,它們在一台處理器上按單道式執行,則平均周轉時間為(b )。

a.1h 

b.5h 

c.2.5h 

d.8h

[解析] 4個作業,各執行時間分別是2h、4h、6h、8h,所以4個作業都完成的時間為2+4+6+8=20h。

此時,平均周轉時間=各個作業完成時間之和/作業個數=20/4=5小時。

設有三個作業,其執行時間分別是2h、5h、3h,假定它們同時到達,並在同一臺處理器上以單道方式執行,則平均周轉時間最小的執行順序是(d )。

a.j1,j2,j3

b.j3,j2,j1

c.j2,j1,j3

d.j1,j3,j2

[解析] 在同一臺處理器以單道方式執行,要想獲得最短的平均周轉時間,用短作業優先排程演算法會有較好的效果。

就本題目而言:

a選項的平均周轉時間=(2+7+10)/3h=19/3h;

b選項的平均周轉時間=(3+8+10)/3h=7h;

c選項的平均周轉時間=(5+7+10)/3h=22/3h;

d選項的平均周轉時間=(2+5+10)/3h=17/3h。

作業系統第三章 處理機排程與死鎖

1.對於批量型來說,必須經過作業排程 又稱高階排程或長程排程 程序排程 又稱低階排程或短程排程 才能獲得處理機 對於終端型作業,通常只需要經過程序排程。有些系統還存在終級排程 又稱中程排程 2.排程佇列模型 3.選擇排程方式和演算法的原則 4.排程演算法 先來先服務排程演算法 fcfs 作業排程 程...

作業系統第三章 處理機排程與死鎖

程序死鎖 1.基本概念 排程演算法 先來先服務 短程序 作業優先 時間片輪轉 基於優先順序的排程演算法 剩餘時間最短者優先 必須記錄各程序過去的服務時間,才能求出剩餘的時間 高響應比優先排程演算法 優點 該演算法既照顧了短作業,又考慮了作業到達的先後次序,不會使長作業長期得不到服務。缺點 利用該演算...

第三章處理機排程與死鎖 處理機排程

一 處理機排程的基本概念 作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述 排程。又稱作業排程或長程排程 long term scheduling 接納排程 admission scheduling 主要在早期批處理階段,處理在外存上的作業。決定外存後備佇列中的哪些作業調入...