計算機作業系統第三章自測題-處理機排程與死鎖
1、在單處理器的多程序系統中,程序什麼時候佔有處理器以及決定佔用時間的長短是由( )決定的。
A、程序執行時間 B、程序的特點和程序排程策略
C、程序執行的程式碼 D、程序完成什麼功能
程序排程的時機與程序特點有關,如程序是否為CPU繁忙型還是I/O繁忙型、自身的優先順序等。但是僅這些特點是不夠的,能否得到排程還取決於程序排程策略,若採用優先順序排程演算法,則程序的優先順序才起作用。至於佔用處理器執行時間的長短,則要看程序自身,若程序是I/O繁忙型,執行過程中要頻繁訪問I/O埠,也就是說,可能會頻繁放棄CPU。所以,佔用CPU的時間就不會長,一旦放棄CPU,則必須等待下次排程。若程序是CPU繁忙型,則一旦佔有CPU就可能會執行很長時間,但是執行時間還取決於程序排程策略,大部分情況下,互動式系統為改善使用者的響應時間,大多數採用時間片輪轉的演算法,這種演算法在程序佔用CPU達到一定時間後,會強制將其換下,以保證其他程序的CPU使用權。所以選擇B選項。
2、時間片輪轉演算法是為了( )
A、多個使用者能及時干預系統 B、優先順序較高的程序能得到及時響應
C、是系統變得更為高效 D、需要CPU時間最少的程序最先執行
時間片輪轉的主要目的是使得多個互動的使用者能夠得到及時響應,使得使用者以為“獨佔”計算機的使用。因此它並沒有偏好,也不會對特殊程序做特殊服務。時間片輪轉增加了系統開銷,所以不會使得系統高效運轉,吞吐量和週轉時間均不如批處理。但是其較快速的響應時間使得使用者能夠與計算機進行互動,改善了人機環境,滿足使用者需求。
3、( )有利於CPU繁忙型的作業,而不利於I/O繁忙型的作業。
A、時間片輪轉演算法 B、先來先服務排程演算法
C、短作業優先演算法 D、優先順序排程演算法
先來先服務(FCFS)排程演算法是一種最簡單的排程演算法,當在作業排程中採用該演算法時,每次排程是從後備作業佇列中選擇一個或多個最先進入該佇列的作業,將它們調入記憶體,為它們分配資源、建立程序,然後放入就緒佇列。
FCFS排程演算法比較有利於長作業,而不利於短作業。所謂CPU繁忙型的作業,是指該類作業需要大量的CPU時間進行計算,而很少請求I/O操作。I/O繁忙型的作業是指CPU處理時,需頻繁的請求I/O操作。所以CPU繁忙型作業更接近於長作業。答案選擇B選項。
4、為了照顧短作業使用者應採用(
A、FCFS(先來先服務) B、SJF(短作業優先) C、HRRN(高響應比優先) D、RR(時間片輪轉)
照顧短作業使用者,選擇短作業優先排程演算法(SJF);照顧緊急作業使用者,即選擇優先順序高的作業優先排程,採用基於優先順序的剝奪排程演算法();實現人機互動,要保證每個作業都能在一定時間內輪到,採用時間片輪轉法(RR);使各種作業使用者滿意,要處理多級反饋,所以選擇多級反饋佇列排程演算法。
5、有三個作業分別為J1、J2、J3,其執行時間分別為2h、5h、3h,假定它們能同時達到,並在同一臺處理器上以單道方式執行,則平均週轉時間最小的執行順序為( J1,J3,J2 )
本題目考查平均週轉時間的計算。(J1,J3,J2)所對應的平均週轉時間為(2+2+3+2+3+5)/3=17/3。
6、關於優先權大小的論述中,正確的是( )。
A、資源要求多的作業優先權應高於資源要求少的作業優先權
B、使用者程序的優先權,應高於系統程序的優先權
C、在動態優先權中,隨著作業等待時間的增加,其優先權將隨之下降
D、在動態優先權中,隨著作業執行時間的增加,其優先權將隨之下降
系統程序的優先權應高於使用者程序的優先權。作業的優先權與長作業、短作業或者是系統資源要求的多少沒有必然的關係。在動態優先權中,隨著程序執行時間的增加其優先權隨之降低,隨著作業等待時間的增加其優先權應上升。
7、程序排程演算法採用固定時間片輪轉排程演算法,當時間片過大時,就會使時間片輪轉演算法轉化為( )排程演算法。
A、HRRN B、FCFS C、SPF D、優先順序
時間片輪轉排程演算法在實際執行中也是按先後順序使用時間片,當時間片過大時,我們可以認為其大於程序需要的執行時間,即轉變為先來先服務排程演算法。
8、在排程演算法中,對短程序不利的是( )排程演算法。
A、SPF B、FCFS C、HRRN D、多級反饋佇列
先來先服務排程演算法中,若一個長程序(作業)先到達系統,就會使後面許多短程序(作業)等待很長時間,因此對短程序(作業)不利。
9、下列選項中,滿足短任務優先且不會發生飢餓現象的排程演算法是( B ),最有利於提高系統吞吐量的排程演算法是( D )。
A、FCFS B、 HRRN C、 RR D、SJ(P)F
由於響應比等於等待時間加上服務時間再除以服務時間,所以等待時間相同時,短作業的響應比更大,能優先獲得時間片,另一方面,當服務時間相同時,等待時間越長,響應比越大,所以同時照顧了長作業。
10、下列排程演算法中,下列選項中,不可能導致飢餓現象的排程演算法是( )。
A、RR B、靜態優先數排程 C、非搶佔式短作業優先 D、搶佔式短作業優先
採用靜態優先順序排程時,當系統總是出現優先順序高的任務時,優先順序低的任務會總是得不到處理機而產生飢餓現象;而短任務優先排程不管是搶佔式或是非搶佔的,當系統總是出現新來的短任務時,長任務會總是得不到處理機,產生飢餓現象,因此B、C、D都錯誤,選A。
11、一個程序的讀磁碟操作完成後,作業系統針對該程序必做的是( )。
A、修改程序狀態為就緒態 B、降低程序優先順序
C、給程序分配使用者記憶體空間 D、增加程序時間片大小
程序申請讀磁碟操作的時候,因為要等待I/O完成,將自身阻塞,進入阻塞態。當 I/O完成之後,從阻塞進入就緒態
12、採用時間片輪轉排程演算法分配CPU時,當處於執行狀態的程序用完一個時間片後,它的狀態是( )狀態。
A、阻塞 B、執行 C、就緒 D、消亡
處於執行狀態的程序用完一個時間片後,它的狀態會變為就緒狀態等待下一次處理器排程。當程序執行完最後的語句並使用系統呼叫exit,請求作業系統刪除它或出現一些異常情況時,程序才會終止。
13、下列情況會導致系統發生死鎖的是( )。
A、程序釋放資源 B、一個程序進入死迴圈
C、多個程序競爭資源出現了迴圈等待 D、多個程序競爭使用共享型的裝置
死鎖:是指多個程序在執行過程中因爭奪資源而造成的一種僵局,當程序處於這種僵持狀態時,若無外力作用,它們都將無法再向前推進(即都不能繼續執行)。 定義中須注意的幾點: 多個程序:只有多個程序在同時執行時才可能 出現爭奪資源的情況; 爭奪資源:有限資源; 僵持狀態:無休止的等待。
兩個或兩個以上併發程序,如果每個程序持有某種資源,而又等待著別的程序釋放它或它們現在保持著的資源,否則就不能向前推進,此時,每個程序都佔用了一定的資源,但又都不能向前推進。這種現象稱為死鎖。
死鎖的起因:(1)互斥條件;(2)不可剝奪條件;(3)部分分配;(4)環路條件。
14、對資源採用按序分配策略能達到( )的目的。
A、預防死鎖 B、避免死鎖 C、檢測死鎖 D、解除死鎖
對於死鎖的預防可以採取3種措施:
採用資源的靜態預分配策略,破壞“部分分配”條件;
允許程序剝奪使用其它程序佔有的資源,從而破壞“不可剝奪”條件;
採用資源有序分配法,破壞“環路”條件。
15、死鎖預防是保證系統不進入死鎖狀態的靜態策略,其解決辦法是破壞產生死鎖的4個必要條件之一,下列辦法中破壞了“迴圈等待”條件的是( )。
A、銀行家演算法 B、一次性分配策略 C、剝奪資源法 D、資源有序分配策略
迴圈等待是死鎖的一個條件,一個確保此條件不成立的方法是對所有的資源型別進行完全排序,且要求每個程序按遞增順序來申請資源。
破壞“請求和保持”條件,採取一次性分配策略(也叫靜態分配策略)。或者允許程序只獲得執行初期所需資源,執行過程中逐步釋放已用完資源,然後再請求新的資源。
銀行家演算法是避免死鎖演算法。
16、銀行家演算法是一種( )演算法。
A、預防死鎖 B、避免死鎖 C、檢測死鎖 D、解除死鎖
銀行家演算法是一種最有代表性的避免死鎖的演算法。在避免死鎖方法中允許程序動態地申請資源,但系統在進行資源分配之前,應先計算此次分配資源的安全性,若分配不會導致系統進入不安全狀態,則分配,否則等待。
17、在下列解決死鎖的方法中,屬於死鎖預防策略的是( )。
A、銀行家演算法 B、一次性分配策略
C、資源分配圖簡化 D、死鎖檢測
在解決死鎖的方法中,死鎖的預防是設法減少破壞產生死鎖的必要條件之一。銀行家演算法屬於死鎖的避免,不很嚴格地限制產生死鎖的必要條件的存在,而是在系統執行過程中小心地避免死鎖的最終發生。死鎖檢測演算法,允許死鎖發生,定期檢測。所以,只有資源有序分配法屬於預防死鎖的策略。
18、某系統有n臺互斥使用的同類裝置,三個併發程序分別需要 3、4、5 臺裝置,可確保系統不發生死鎖的裝置數 n 最小為( )。
A.9 B.10 C.11 D.12
極端狀態下:
程序1(3臺):申請到2臺,無法工作;
程序2(4臺):申請到3臺,無法工作;
程序3(5臺):申請到4臺,無法工作;
申請總數:2+3+4=9,此時若只有9臺,3個程序持續申請且申請不到,造成死鎖。
所以必須再空出一臺。
19、某計算機系統中有 8 臺印表機,由 K 個程序競爭使用,每個程序最多需要 3 臺印表機。該系統可能會發生死鎖的 K 的最小值是( )。
A.2 B.3 C.4 D.5
最多每個程序需要3臺。先實際分配給每個程序2臺。設最多X臺不死鎖。有如下等式:
2*X + 1 <= 8 得出 X=3
題目問的是:最少多少個程序使得會發生死鎖。
故 X+1 = 4 個程序。
20、死鎖與安全狀態的關係是( )。
A.死鎖狀態有可能是安全狀態 B.安全狀態有可能成為死鎖狀態
C.不安全狀態就是死鎖狀態 D.死鎖狀態一定是不安全狀態
並非所有的不安全狀態都是死鎖狀態,但當系統進入不安全狀態後,便可能進入死鎖狀態;反之,只要系統處於安全狀態,系統便可以避免進入死鎖狀態;死鎖狀態必定是不安全狀態。
21、下列關於死鎖的說法正確的是( )。
I.死鎖狀態一定是不安全狀態
II.系統資源分配不足和程序推進順序非法是產生死鎖的原因
III.資源的有序分配策略可以破壞死鎖的迴圈等待條件
IV.採用資源剝奪方法可以解除死鎖,還可以採用撤銷程序方法解除死鎖
A.Ⅰ B.Ⅰ、Ⅱ C.Ⅰ、Ⅲ D.Ⅰ、Ⅱ、Ⅲ、Ⅳ
二、綜合應用題
1、假設在一個處理機上執行5個作業,作業的到達時間和執行時間分別如表所示:
分別採用FCFS、SJF和HRRN演算法,作業的執行順序和平均週轉時間是多少?
.
2、設系統中有三類資源A、B和C,5個程序P1,P2,P3,P4和P5,在T0時刻系統狀態如下:(1)給出T0時刻各程序的資源需求量NEED。
(2)系統是否處於安全狀態?如是,則給出程序安全序列。
(3)在T1時刻如果程序P2申請1個A類資源、1個B類資源,能否實施分配?為什麼?
.