作業系統第三章處理機排程與死鎖題目
A。FCFS B.RR C.優先順序 D.多級反饋佇列
【答案】C
【解析】優先順序低的可能長時間得不到服務,產生餓死現象。
2.以下情況不可能引起程序排程的是()
A、一個程序完成工作後被撤銷
B、一個程序從就緒狀態變成了執行狀態
C、一個程序從等待狀態變成了就緒狀態
D、一個程序從執行狀態變成了等待狀態或就緒狀態
【答案】B
【解析】
可能引起程序排程:
(1)正在執行的程序執行完畢。
(2)執行中程序自己呼叫阻塞原語將自己阻塞起來進入睡眠等狀態。(3)執行中程序呼叫了P原語操作,從而因資源不足而被阻塞;或呼叫了v原語操作激活了等待資源的程序佇列。
(4)執行中程序提出I/O請求後被阻塞。
(5)在分時系統中時間片已經用完。
(6)在執行完系統呼叫等系統程式後返回使用者程序時,這時可看作系統程序執行完畢,從而可排程選擇一新的使用者程序執行。
以上都是在不可剝奪方式下的引起程序排程的原因。在CPU執行方式是可剝奪時.還有
(7)就緒佇列中的某程序的優先順序變得高於當前執行程序的優先順序,從而也將引發程序排程。
2-1.在一般作業系統中必不可少的排程是()。 (武漢科技學院2008)
A.高階排程 B.中級排程 C.作業排程 D.程序排程
【答案】D
2-2.程序的排程方式有兩種,一種是 ① ,另一種是 ② 。
【答案】① 剝奪方式 ② 非剝奪方式。
2-3.確定作業排程演算法時應注意系統資源的均衡使用,使 作業和 作業搭配執行。 (武漢理工大學2006)
【答案】CPU繁忙,I/O繁忙
2-4.不影響分時系統響應時間的是()。 (武漢理工大學2008)
A.程序排程和對換的時間 B.分時使用者的數目
C.分時使用者所執行程式的特性 D.時間片的大小
【答案】C
【解析】影響響應時間的幾個因素是:使用者數目,時間片及程式切換時內、外存需對換的資訊量。
【答案】不對。因為,若當前就緒佇列為空,則被喚醒程序是就緒佇列中惟一的一個程序,無論系統是否採用剝奪排程方法,排程程式都會立即將該程序投入執行。
2-6 .下列選項中,降低程序優先權級的合理時機是() (2010全國考研)
A、程序的時間片用完
B、程序剛完成I/O,進入就緒列隊
C、程序長期處於就緒列隊
D、程序從就緒狀態轉為執行狀態
【答案】A
【解析】降低程序優先順序一般是降低剛剛執行過的,剛得到CPU的,像B,C情況應該提高其優先順序,再降低反而更是沒有機會得到CPU。
2-7、下列程序排程演算法中,綜合考慮程序等待時間和執行時間的是(2009全國考研)
A.時間片輪轉排程演算法 B.短程序優先排程演算法
C.先來先服務排程演算法 D.高響應比優先排程演算法
【答案】D
【解析】本題考查程序排程演算法的基本概念。時間片輪轉排程演算法是保證使用者的響應時間,每個程序分配一個時間片,所以在一給定的很短時間內程序都可以獲得執行,等待時間都比較短,但沒有考慮程序執行時間長短問題;先來先服務排程演算法只考慮了程序的等待時間,等待時間長的程序優先處理;短程序優先排程演算法只考慮了執行時間,執行時間短的程序優先處理。高響應比優先排程演算法中如果程序等待時間相同,執行時間短的優先,程序執行時間相同的等待時間短的優先,所以綜合考慮了程序等待時間和執行時間。
2-8、某系統中預計有50個使用者同時上機,為使每個使用者能在2秒內得到響應,時間片最大限度為()。 (武漢理工大學2008)
A.20ms B.30ms C.40ms D.50ms
【答案】C
【解析】50個使用者同時上機,2秒內得到響應即2秒鐘內50個使用者應都執行一次,所以時間片最大為2s/50=2000ms/50=40ms。
2-9、在分時作業系統中,程序排程經常採用 _____ 演算法。
A. 先來先服務 B. 最高優先權 C. 時間片輪轉D. 隨機
【答案】C
【解析】在分時系統中,處理機的時間被分成很短的時間片,系統按時間片輪流將處理機分配給各聯機使用者使用。
2-10_____ 優先權是在建立程序時確定的,確定之後在整個程序執行期間不再改變。
A. 先來先服務B. 靜態
C. 動態D. 短作業
【答案】B
【解析】靜態優先權是在建立程序時確定的,確定之後在整個程序執行期間不再改變。
2-11若要使當前執行程序總是優先順序最高的程序,應選擇 _____ 程序排程演算法。
【答案】可搶佔式最高優先順序優先
【解析】可搶佔式最高優先順序優先排程演算法總是將處理機分配給優先順序最高的程序。
2-12、程序排程演算法採用等時間片輪轉法時,時間片過大,就會使輪轉法轉化為_____ 排程演算法。
【答案】先來先服務
【解析】當時間片過大(大到每個程序都能在一個時間片內完成)時,就會使輪轉法轉化為先來先服務排程演算法。
2-13在單道批處理系統中,有下列 4個作業採用響應比高者優先排程演算法,則它們的執行先後次序為()。 (武漢科技學院2008)
作業 | 提交時間 | 執行時間 |
1 | 8.00 | 2.00 |
2 | 8.50 | 0.50 |
3 | 9.00 | 0.10 |
4 | 9.50 | 0.20 |
【答案】1,3,2,4
程序 | 作業1 | 作業2 | 作業3 | 作業4 |
到達時間 | 8.00 | 8.50 | 9.00 | 9.50 |
服務時間 | 2.00 | 0.50 | 0.10 | 0.20 |
開始執行時間 | 8.00 | 10.10 | 10.00 | 11.00 |
完成時間 | 10.00 | 11.00 | 10.10 | 11.20 |
10.00響應比 | (70+50)/50=2.4 | (60+10)/10=7 | (10+20)/20=1.5 | |
10.10響應比 | (80+50)/50=2.6 | (20+20)/20=2 |
2-14系統中有5個程序P1,P2,P3,P4,P5如表。規定程序的優先數越小優先順序越高。試描述在採用下述各種排程演算法時,各個程序執行過程,並計算採用每種演算法的程序平均週轉時間。假設忽略程序的排程時間。(1)先來先服務排程演算法;(2)短程序優先排程演算法;(3)剝奪式優先順序排程演算法。
程序 | 到達時刻 | 執行時間/ms | 優先數 |
P1 | 0 | 3 | 3 |
P2 | 2 | 6 | 5 |
P3 | 4 | 4 | 1 |
P4 | 6 | 5 | 2 |
P5 | 8 | 2 | 4 |
(1)先來先服務排程演算法執行過程如下:按到達先後P1,P2,P3,P4,P5
程序 | 到達時刻 | 執行時間/ms | 開始時間 | 完成時間 | 週轉時間 |
P1 | 0 | 3 | 0 | 3 | 3 |
P2 | 2 | 6 | 3 | 9 | 7 |
P3 | 4 | 4 | 9 | 13 | 9 |
P4 | 6 | 5 | 13 | 18 | 12 |
P5 | 8 | 2 | 18 | 20 | 12 |
所以此演算法程序的平均週轉時間為:(3+7+9+12+12)/5=43/5=8.6
(2) 短程序優先排程演算法執行過程如下:
0時刻只有P1,所以先執行P1,3時刻只有P2,所以再執行P2,P2執行完,9時刻時,P3,P4,P5都已到達,按短程序優先,所以先執行P5,再執行P3,最後執行P4
程序 | 到達時刻 | 執行時間/ms | 開始時間 | 完成時間 | 週轉時間 |
P1 | 0 | 3 | 0 | 3 | 3 |
P2 | 2 | 6 | 3 | 9 | 7 |
P3 | 4 | 4 | 11 | 15 | 11 |
P4 | 6 | 5 | 15 | 20 | 14 |
P5 | 8 | 2 | 9 | 11 | 3 |
所以此演算法程序的平均週轉時間為:(3+7+11+14+3)/5=38/5=7.6
(3)剝奪式優先順序排程演算法執行過程如下:
在0時刻只有P1,所以先執行P1,2時刻P2到達,但P2的優先順序沒有P1高,所以繼續執行P1,3時刻P1執行完,只有P2,所以執行P2,4時刻P3到達,P3的優先順序高於P2,所以執行P3,P3執行完,8時刻,P4,P5都到達,P2,P4,P5中P4的優先順序最高,所以先執行P4,再執行P5,最後執行P2剩餘的。
所以此演算法程序的平均週轉時間為:(3+18+4+7+7)/5=39/5=7.8
程序 | 到達時刻 | 執行時間/ms | 開始時間 | 完成時間 | 週轉時間 |
P1 | 0 | 3 | 0 | 3 | 3 |
P2 | 2 | 6 | 3 | 20 | 18 |
P3 | 4 | 4 | 4 | 8 | 4 |
P4 | 6 | 5 | 8 | 13 | 7 |
P5 | 8 | 2 | 13 | 15 | 7 |
2-15、假設有6個作業正在等待執行,它們所需的執行時間分別是:10,8,6,4,2 和X。不考慮並行、基於X、在追求最小平均響應時間(Minimal average response time)的前提下,請給出它們的執行順序。(提示:共有六種順序,先確定執行方法)(北京航空航天大學2007)
【答案】本題中,不考慮並行,即單道,沒有給出到達時間,假定為同時到達,那麼應該是最短作業優先的排程演算法會得到最小的平均響應時間。響應時間是作業到達時間到系統開始服務的時間,在單道中即可看為等待時間。
假設此6個作業為別為,A,B,C,D,E,F。A-E的執行時間依次為10,8,6,4,2,F的執行時間為X
當x<2時,執行順序為:F,E,D,C,B,A
當2<x<4時,執行順序為:E,F,D,C,B,A
當4<x<6時,執行順序為:E,D,F,C,B,A
當6<x<8時,執行順序為:E,D,C,F,B,A
當8<x<10時,執行順序為:E,D,C,B,F,A
當x>10時,執行順序為:E,D,C,B,A,F
2-16 、有5個程序如下表。時間從0開始,單位為1,最高優先順序為0。
繪圖說明以下程序排程過程:(1 CPU 系統,所有程序只使用CPU)。
請使用時間為橫向座標軸,並請在圖中表明每個程序的“等待”和“執行”兩種狀態。
1.先來先服務(FCFS)。
2.輪轉排程(Round-Robin)時間片=2。
3.優先順序輪轉法(Priority Round-Robin)時間片=2。
4.最短程序輪轉法(Shortest Process Next)。
【答案】
1.FCFS:
【解析】在程序排程中,先來先服務演算法是按照程序到達的時間順序排程程序。
2.輪轉排程,時間片=2:
【解析】在輪轉排程中,時間片為2,按照先來先服務順序依次排程程序,每個程序一次允許執行一個時間片,如果在一個時間片沒用完的情況下執行完成,則提前進行排程。
3.優先順序輪轉法
【解析】在優先順序輪轉排程中,基本思想與輪轉排程一致,每個時間片為2 ,每個程序一次允許執行一個時間片,如果在一個時間片沒用完的情況下執行完成,則提前進行排程,但排程次序按照優先順序最高的優先排程。
4.最短程序輪轉法
【解析】在最短程序輪轉排程中,基本思想與輪轉排程一致,每個時間片為2 ,每個程序一次允許執行一個時間片,如果在一個時間片沒用完的情況下執行完成,則提前進行排程,但排程次序按照每次所需執行時間最短的程序的優先排程。
2-17、在一個單處理器的計算機系統中,有四個程序P1,P2,P3,P4的到達時間和所需要的執行時間如下表所示(時間單位:小時,以十進位制計算),請問 (武漢理工大學2006)
(1)分別寫出採用“先來先服務”排程演算法、“短程序優先”和“響應比高者優先”排程演算法選中程序執行的次序。
(2)分別計算上述三種演算法使各程序在就緒佇列中的平均等待時間以及三種演算法下的平均週轉時間。
(3)是否存在縮短平均週轉時間的排程策略,如果存在,請提出來,寫出選中程序執行的次序,並計算在就緒佇列中的平均等待時間以及平均週轉時間?
程序 | 到達時間 | 執行時間 |
P1 P2 P3 P4 | 0.0 0.4 1.0 4.0 | 8.0 4.0 1.0 3.0 |
【解析】先來先服務就是按照到達的次序依次執行。到達次序為P1,P2,P3,P4,所以排程次序也為P1,P2,P3,P4
【答案】短程序優先,排程次序為P1,P3,P4,P2。
【解析】開始只有P1所以執行P1,P1執行完時,P2,P3,P4都已經到達,服務時間短的優先,所以是P3,P4,P2。
程序 | P1 | P2 | P3 | P4 |
到達時間 | 0.0 | 0.4 | 1.0 | 4.0 |
服務時間 | 8.0 | 4.0 | 1.0 | 3.0 |
開始執行時間 | 0.0 | 12.0 | 8.0 | 9.0 |
完成時間 | 8.0 | 16.0 | 9.0 | 12.0 |
週轉時間 | 8.0 | 15.6 | 8.0 | 8.0 |
等待時間 | 0.0 | 11.6 | 7.0 | 5.0 |
【解析】開始只有P1所以執行P1,P1執行完時,P2,P3,P4都已經到達,響應比等於(等待時間+服務時間)/服務時間,則P2的響應比為(7.6+4)/4=2.9,P3的響應比為(7+1)/1=8,P4的響應比為(4+3)/3=2.3,P3的響應比最高,所以第二個執行P3,P3完成時,時間為9.0,此時P2的響應比為(8.6+4)/4=3.15,P4的響應比為(5+3)/3=2.6, P2的響應比最高,所以第三個執行P2,最後執行P4
程序 | P1 | P2 | P3 | P4 |
到達時間 | 0.0 | 0.4 | 1.0 | 4.0 |
服務時間 | 8.0 | 4.0 | 1.0 | 3.0 |
開始執行時間 | 0.0 | 9.0 | 8.0 | 13.0 |
完成時間 | 8.0 | 13.0 | 9.0 | 16.0 |
週轉時間 | 8.0 | 12.6 | 8.0 | 12.0 |
等待時間 | 0.0 | 8.6 | 7.0 | 9.0 |
先來先服務演算法的平均等待時間為:(0+7.6+11+9)/4=6.9
平均週轉時間為:(8+11.6+12+12)/4=10.9
短程序優先演算法的平均等待時間為:(0+11.6+7+5)/4=5.9
平均週轉時間為:(8+15.6+8+8)/4=9.9
高響應比者優先演算法的平均等待時間為:(0+8.6+7+9)/4=6.15
平均週轉時間為:(8+12.6+8+12)/4=10.15
【解析】週轉時間等於程序到達到服務完成的這段時間,平均週轉時間就是每個程序的週轉時間相加取平均。
等待時間是程序處於就緒佇列中的時間,在前面三個非搶佔式排程演算法中等於開始執行時間減去到達時間這一段時間。平均等待時間就是每個程序的等待時間相加取平均。
(3)【答案】可採用搶佔式短作業優先演算法。執行過程如圖:
其平均週轉時間為6.6,平均等待時間為2.6。
【解析】可搶佔式短作業優先,遇到短作業立即搶佔CPU,所以使短作業無需等待立即得到執行,從而降低了平均週轉時間。其中在0.0時刻,只有P1程序,所以執行P1,0.4時刻P2到達,由於P2的服務時間比P1短,搶佔CPU執行,在1.0時刻P3到達,P3的服務時間更短,則P3搶佔CPU執行,2.0時刻P3完成,此時記憶體中有P1和P2,因為P2的服務時間短於P1,則執行P2,當4.0時刻P4到達時,這時P2所剩服務時間為1.4短於P4,所以仍執行P2,5.4時刻P2執行完,系統中剩P1與P4,P4的服務時間短,所以先執行P4,P4執行完再執行P1。由結果可以看出,此種演算法可以縮短平均週轉時間,也大大降低了平均等待時間。
2-18、有一個具有兩道作業的批處理系統,作業排程採用短作業優先排程演算法,程序排程採用搶佔式優先順序排程演算法,作業的執行情況見下表。其中作業的優先數即為程序的優先數,優先數越小優先順序越高。
作業名 | 到達時間 | 執行時間 | 優先數 |
1 | 8:00 | 40min | 5 |
2 | 8:20 | 30min | 3 |
3 | 8:30 | 50min | 4 |
4 | 8:50 | 20min | 6 |
(1)列出所有作業進入記憶體的時間和結束的時間(以分鐘為單位)
(2)計算平均週轉時間
假設有三個程序P1 P2 P3,P1有一個執行緒T11,P2有3個執行緒T21 T22 T23 ,P3有2個執行緒T31 T32。這些執行緒的CPU執行時間如下表所示
程序 | 執行緒 | 執行時間 |
P1 | T11 | 7 |
P2 | T21 | 4 |
T22 | 2 | |
T23 | 4 | |
P3 | T31 | 6 |
T327 | 3 |
(1)如果這些執行緒是使用者級執行緒
(2)如果這些執行緒是核心級執行緒
【答案】
(1)
P1 T11 | P2 T21 | P2 T22 | P3 T31 | P1 T11 | P2 T22 | P2 T23 | P3 T31 | P3 T32 |
P1 T11 | P2 T21 | P2 T22 | P3 T31 | P1 T11 | P2 T22 | P2 T23 | P3 T31 | P3 T32 |
(2)
P1 T11 | P2 T21 | P2 T22 | P3 T31 | P1 T11 | P2 T22 | P2 T23 | P3 T31 | P3 T32 |