進程調度算法相關習題

處理機調度與死鎖相關習題

1.1.假設一個系統有 5 個進程,他們的到達時間和服務時間如上表所示,忽略 I/O 以及其他的開銷時間,若分別按 先來先服務( FCFS ) 、 非搶佔式及搶佔 的短進程優先( SPF ) 調度算法進行 CPU 調度,請給出各進程的完成時間、週轉時間、帶權週轉時間、平均週轉時間和平均帶權週轉時間。

進程 到達時間 服務時間
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2
- 進程 A B C D E 平均
- 到達時間 0 2 4 6 8
- 服務時間 3 6 4 5 2
FCFS 完成時間 3 9 13 18 20
- 週轉時間 3 7 9 12 12 8.6
- 帶權週轉時間 1 1.17 2.25 2.4 6 2.56
SPF (非搶佔) 完成時間 3 9 15 20 11
- 週轉時間 3 7 11 14 3 7.6
- 帶權週轉時間 1 1.17 2.75 2.8 1.5 1.84
SPF (搶佔) 完成時間 3 15 8 20 10
- 週轉時間 3 13 4 14 2 7.2
- 帶權週轉時間 1 2.16 1 2.8 1 1.59

續1.2 假設一個系統有 5 個進程,他們的到達時間和服務時間如上表所示,忽略 I/O 以及其他的開銷時間,若按 高響應比優先調度算法(HRRF) 進行 CPU 調度,請給出各進程的完成時間、週轉時間、帶權週轉時間、平均週轉時間和平均帶權週轉時間。

- 進程 A B C D E 平均
高響應比優先 完成時間 3 9 13 20 15
- 週轉時間 3 7 9 14 7 8
- 帶權週轉時間 1 1.17 2.25 2.8 3.5 2.14

續1.3假設一個系統有 5 個進程,他們的到達時間和服務時間如上表所示,忽略 I/O 以及其他的開銷時間,若按 只按時間片進行搶佔的多級反饋隊列 以及 立即搶佔的多級反饋隊列 (MFFP)(第 i 級隊列的時間片= 2 i-1 )調度算法進行 CPU 調度,請給出各進程的完成時間、週轉時間、帶權週轉時間、平均週轉時間和平均帶權週轉時間。
在這裏插入圖片描述
綜合概述答案:
在這裏插入圖片描述
2. 某多道程序設計系統配有一臺處理器和兩臺外設 IO1 、 IO2 ,現有 3 個優先級由高到低的作業 J1 、 J2 和 J3 都已裝入了主存,它們使用資源的先後順序和佔用時間分別是:

 J1 : IO2(30ms)CPU(10ms)IO1(30ms)CPU(10ms)
 J2 : IO1(20ms)CPU(20ms)IO2(40ms)
 J3 : CPU(30ms ), IO1(20ms)

處理器調度採用可搶佔式的優先數算法,忽略其他輔助操作時間,回答下列問題:

  1. 分別計算作業 J1 、 J2 和 J3 從開始到完成所用的時間 ;
  2. 3 個作業全部完成時 CPU 的利用率 ;
  3. 3 個作業全部完成時外設 IO1 的利用率。

分析:
本題是一個多道系統中兼有作業調度和進程調度的計算題,其中系統中的三個進程不僅要競爭使用處理器,而且還要競爭使用外設,從而使得進程之間的關係更加複雜。另一方面,本題略去了具體的作業調度(假設作業都已裝入了主存),減少了所要考慮的因素。本題進程的執行過程可以藉助圖示的方法來描述,如圖所示:
在這裏插入圖片描述
解答:

  1. 由圖可知, J1 從開始到完成的時間是 0 ~ 80ms , J2 從開始到完成的時間是 0 ~ 90ms , J3 從開始到完成的時間是 0 ~ 90ms 。
  2. 3 個作業全部完成總共需要 90ms , CPU 總共使用的時間是:
    20 + 10 + 10 + 10 + 10 + 10 = 70 ( ms )
    所以CPU 的利用率是:
    70/90×100% = 77.8 %
  3. 3 個作業全部完成時 IO1 的利用率是:
    ( 20 + 30 + 20 ) /90×100 %= 70/90×100 %≈ 77.8 %

3.圖 3-5 示出了時間片分別爲 q =1 和 q =4 時, A 、 B 、 C 、 D 、 E 五個進程的運行情況,而圖 3-6 爲 q =1 和 q =4 時各進程的平均週轉時間和帶權平均週轉時間。圖中的 RR(Round Robin) 表示輪轉調度算法。
在這裏插入圖片描述

習題部分:

一.選擇題

1 .下列算法中,操作系統用於作業調度的算法是 (A)。
A .先來先服務算法 B .先進先出算法
C .最先適應算法 D .時間片輪轉算法
2 .在批處理系統中,週轉時間是指 (B) 。
A .作業運行時間 B .作業等待時間和運行時間之和
C .作業的相對等待時間 D .作業被調度進入內存到運行完畢的時間
3 .在作業調度中,排隊等待時間最長的作業被優先調度,這是指 (A)調度算法。
A .先來先服務 B .短作業優先
C .響應比高優先 D .優先級
4 .下列算法中,用於進程調度的算法是 (D) 。
A .最先適應 B .最高響應比優先
C .均衡資源調度 D .優先數調度
5 .兩個進程爭奪同一個資源 (B)。
A .一定死鎖 B .不一定死鎖
C .只要互斥就不會死鎖 D .以上說法都不對
6 .下列各項中,不是進程調度時機的是 (D) 。
A .現運行的進程正常結束或異常結束 B .現運行的進程從運行態進入就緒態
C .現運行的進程從運行態進入等待態 D .有一進程從等待態進入就緒態
7 .進程調度算法有多種, (B) 不是進程調度算法。
A .先來先服務調度算法 B .最短查找時間優先調度算法
C .靜態優先數調度算法 D .時間片輪轉調度算法
8 .作業調度程序從 (D) 狀態的隊列中選取適當的作業投入運行。
A .就緒 B .提交 C .等待 D .後備
9 .在實時操作系統中,經常採用 (D) 調度算法來分配處理器。
A. 先來先服務 B. 時間片輪轉 C. 最高優先級 D. 可搶佔的優先級
10 .採用時間片輪轉調度算法主要是爲了 (A) 。
A .多個終端都能得到系統的及時響應
B .先來先服務
C .優先權高的進程及時得到調度
D .需要 CPU 時間最短的進程先做
11 .下面關於優先權大小的論述中,不正確的論述是 © 。
A .計算型作業的優先權,應低於 I/O 型作業的優先權
B .系統進程的優先權應高於用戶進程的優先權
C .資源要求多的作業,其優先權應高於資源要求少的作業
D .在動態優先權時,隨着進程運行時間的增加,其優先權降低
12 .產生死鎖的原因是(D) 有關。
A .與多個進程競爭 CPU
B .與多個進程釋放資源
C .僅由於併發進程的執行速度不當
D .除資源分配策略不當外,也與併發進程執行速度不當
13 .有關產生死鎖的敘述中,正確的是 (D) 。
A . V 操作可能引起死鎖 B . P 操作不會引起死鎖
C . PV 操作使用得當不會引起死鎖 D .以上說法均不正確
14 .有關死鎖的論述中, © 是正確的。
A .“系統中僅有一個進程進入了死鎖狀態”
B .“多個進程由於競爭 CPU 而進入死鎖”
C .“多個進程由於競爭互斥使用的資源又互不相讓而進入死鎖”
D .“由於進程調用 V 操作而造成死鎖”
15 .有關資源分配圖中存在環路和死鎖關係,正確的說法是 (D) 。
A .圖中無環路則系統可能存在死鎖
B .圖中無環路則系統可能存在死鎖,也可能不存在死鎖
C .圖中有環路則系統肯定存在死鎖
D .圖中有環路則系統可能存在死鎖,也可能不存在死鎖
16 .“死鎖”問題的討論是針對   (D)   的。
A .某個進程申請系統中不存在的資源
B .某個進程申請資源數超過了系統擁有的最大資源數
C .硬件故障
D .多個併發進程競爭獨佔型資源
17 .考慮到公平對待進程和提高系統資源工作的並行度,操作系統會經常調整進程的優先級,通常應提高 (D) 的進程優先級。
A .需計算時間長 B .很少使用外設
C .使用 CPU 時間長 D .啓動外設次數多
18 .實時系統中的進程調度,通常採用(D) 算法。
A .響應比高者優先 B .短作業優先
C .時間片輪轉 D .搶佔式的優先數高者優先
19 . UNIX 操作系統採用的進程調度算法爲 (A) 。
A 、不可強佔處理機的動態化先數調度算法
B 、可強佔處理機的動態化先數調度算法
C 、不可強佔處理機的靜態優先數調度算法
D 、可強佔處理機的靜態化先數調度算法
20 .當進程調度採用最高優先級調度算法時,從保證系統效率的角度來看,應提高 (B) 進程的優先級。
A .連續佔用處理器時間長的 B .在就緒隊列中等待時間長的
C .以計算爲主的 D .用戶
21 .產生系統死鎖的原因可能是由於© 。
A .進程釋放資源 B .一個進程進入死循環
C .多個進程競爭資源出現了循環等待 D .多個進程競爭共享型設備
22 .採用時間片輪轉調度算法時,對不同的進程可以規定不同的時間片。一般來說,對 (B) 進程給一個較小的時間片比較合適。
A .需運算時間長的 B .需經常啓動外設的
C .不需使用外設的 D .排在就緒隊列末尾的
23 .對資源採用按序分配策略能達到 (A) 的目的。
A .防止死鎖 B .避免死鎖 C .檢測死鎖 D .解除死鎖
24 .一種既有利於短小作業又兼顧到長作業的作業調度算法是 © 。
A .先來先服務 B .輪轉 C .最高響應比優先 D .均衡調度
25 .在單處理器的多進程系統中,進程什麼時候佔用處理器和能佔用多長時間,取決於 ©
A .進程相應的程序段的長度 B .進程總共需要運行時間多少
C .進程自身和進程調度策略 D .進程完成什麼功能
26 .在解決死鎖問題的方法中,屬於“死鎖避免”策略的是 (A) 。
A .銀行家算法 B .死鎖檢測算法
C .資源有序分配法 D .資源分配圖化簡法
27 .系統出現死鎖的原因是 © 。
A .計算機系統出現了重大故障
B .有多個等待態的進程同時存在
C .若干進程因競爭資源而無休止地等待着它方釋放已佔有的資源
D .資源數大大少於進程數或進程同時申請的資源數大大超過資源總數
28 .在操作系統中,所謂“死鎖”是指 (B) 。
A .程序死循環 B .多個進程彼此等待資源而不能前進的狀態
C .硬件故障 D .時間片太短,進程的調進調出太頻繁而效率太低
29 .假設有三個進程競爭同類資源,如果每個進程需要 2 個該類資源,則至少需要提供該類資源 _ (B) 個,才能保證不會發生死鎖。
A . 3 B . 4 C . 5 D . 6
30 .以下 (D) 不屬於死鎖的必要條件。
A .互斥使用資源 B .佔有並等待資源
C .不可搶奪資源 D .靜態分配資源
31 .在爲多個進程所提供的可共享的系統資源不足時,可能出現死鎖。但是,不適當的 ()C 也可能產生死鎖。
A .進程優先權 B .資源的靜態分配
C .進程的推進順序 D .分配隊列優先權
32 .採用資源剝奪法可以解除死鎖,還可以採用 (B)方法解除死鎖。
A .執行並行操作 B .撤消進程
C .拒絕分配新資源 D .修改信號量
33 .系統中有 4 個併發進程,都需要某類資源 3 個。試問該類資源最少爲 (A)個時,不會因競爭該資源而發生死鎖。
A . 9 B . 10 C . 11 D . 12
34 .在下列解決死鎖的方法中,不屬於死鎖預防策略的是 (D) 。
A .資源的有序分配法 B .資源的靜態分配法
C .分配的資源可剝奪法 D .銀行家算法
35 .分時系統中進程調度算法通常採用 (B)。
A .響應比高者優先 B .時間片輪轉法
C .先來先服務 D .短作業優先
36 .設有三個作業 J1 、 J2 、 J3 ,它們的到達時間和執行時間如下表:

作業名   到達時間   執行時間  
J1      8:00      2 小時  
J2      8:45      1 小時  
J3      9:30      0.25 小時  

它們在一臺處理器上按單道運行,若採用短作業優先調度算法,則此三作業的執行次序是 ©。
A . J3,J2,J1 B . J1,J2,J3
C . J1,J3,J2 D . J3,J1,J2
37 .在下列作業調度算法中,可能引起作業長時間不能被裝入執行的算法是 (B)。
A . FCFS 算法 B .計算時間短的作業優先算法
C .最高響應比優先算法 D .動態優先數調度算法
39 .在非搶佔調度方式下,運行進程執行 V 原語後,其狀態(A) 。
A .不變 B .要變 C .可能要變 D .可能不變
40 .在多進程的併發系統中,肯定不會因競爭 (D) 而產生死鎖。
A .打印機 B .磁帶機 C .磁盤 D . CPU
41 .通常不採用 ©方法來解除死鎖。
A .終止一個死鎖進程 B .終止所有死鎖進程
C .從死鎖進程處搶奪資源 D .從非死鎖進程處搶奪資源
43 .設系統中有 P1 、 P2 、 P3 三個進程,並按 P1 、 P2 、 P3 的優先次序調度運行,它們的內部計算和 I/O 操作時間如下:

P1 :計算 60 ms—I/O 80 ms— 計算 20 ms
P2 :計算 120 ms—I/O 40ms— 計算 40ms
P3 :計算 40 ms—I/O 80ms— 計算 40ms

設調度程序執行時間忽略不計,完成這三個進程比單道運行節省的時間是(B) 。
A . 140ms B . 160ms C . 170ms D . 180ms
44 .有三個作業 A 、 B 、 C ,它們的到達時間和執行時間依次爲 (8:50 和 1.5 小時 ) 、 (9:00 和 0.4 小時 ) 、 (9:30 和 1 小時 ) 。當作業全部到達後,批處理單道系統按響應比高者優先算法進行調度,則作業被選中的次序爲 (B) 。
A . (ABC) B . (BAC) C . (BCA) D . (CAB)
45 .設系統中有 n 個併發進程,競爭資源 R ,且每個進程都需要 m 個 R 類資源,爲使該系統不會因競爭該類資源而死鎖,資源 R 至少要有 © 個。
A . nm+1 B . nm+n C . n*m+1-n D .無法預計
46 .下列選項中,降低進程優先級的合理時機是 (A) 。( 2010 全國試題)
A .進程的時間片用完 B .進程剛完成 I/O ,進入就緒隊列
C .進程長期處於就緒隊列中 D .進程從就緒隊列轉爲運行狀態
47 .下列進程調度算法中,綜合考慮進程等待時間和執行時間的是 D 。( 2009 全國試題)
A .時間片輪轉調度算法 B .短進程優先調度算法
C .先來先服務調度算法 D .高響應比優先調度算法
48 .某計算機系統中有 8 臺打印機,有 k 個進程競爭使用,每個進程最多需要 3 臺打印機。該系統可能會發生死鎖的 k 的最小值是 C
__ 。( 2009 全國試題)
A . 2 B . 3 C . 4 D . 5
49 .進程調度的關鍵問題是 ©。
A .內存的分配 B .時間片的確定 C .調度算法的確定 D . I/O 設備的分配
50 .下列選項中,滿足短任務優先且不會發生飢餓現象的調度算法是 (B) 。( 2011 全國試題)
A .先來先服務 B .高響應比優先 C .時間片輪轉 D .非搶佔式短任務優先
51 .某時刻進程的資源使用情況如下表所示。

此時的安全序列是 (D) 。
A . P1 , P2 , P3 , P4 B . P1 , P3 , P2 , P 4
C . P1 , P4 , P3 , P2 D .不存在
52 .設有五個進程 P0 、 P1 、 P2 、 P3 、 P4 共享三類資源 R1 、 R2 、 R3 ,這些資源總數分別爲 18 、 6 、 22 , T0 時刻的資源分配情況如下表所示,此時存在的一個安全序列是 (D) 。( 2012 全國試題)

A . P0 , P2 , P4 , P1 , P3 B . P1 , P0 , P3 , P4 , P2
C . P2 , P3 , P4 , P1 , P0 D . P3 , P4 , P2 , P1 , P0
53 .一個多道批處理系統中僅有 P1 和 P2 兩個作業, P2 比 P1 晚 5ms 到達,它們的計算和 I/O 操作順序如下:

P1 :計算 60ms , I/O80ms ,計算 20ms
P2 :計算 120ms , I/O40ms ,計算 40ms

若不考慮調度和切換時間,則完成兩個作業需要的時間最少是(B) 。( 2012 全國試題)
A . 240ms B . 260ms C . 340ms D . 360ms
54 .某單處理器多進程系統中有多個就緒進程,則下列關於處理機調度的敘述中,錯誤的是 © 。
A .在進程結束時能進行處理機調度
B .創建新進程後能進行處理機調度
C .在進程處於臨界區時不能進行處理機調度
D .在系統調用完成並返回用戶態時能進行處理機調度

二.應用題

  1. 有一個具有兩道作業的批處理系統(最多可有兩道作業同時裝入內存執行),作業調度採用計算時間短的作業優先調度算法,進程調度採用以優先數爲基礎的搶佔式調度算法,今有如下作業序列,作業優先數即爲進程優先數,優先數越小優先級越高:
作業名 到達時間 估計運行時間 優先數
J1 10 : 10 20 分鐘 5
J2 10 : 20 30 分鐘 3
J3 10 : 30 25 分鐘 4
J4 10 : 50 20 分鐘 6

( 1 )列出所有作業進入內存時間及結束時間。
( 2 )計算平均週轉時間。
解:先作必要的分析(可在草稿紙上完成,分析過程不計分):
10 : 10  J1 被調入,開始運行
10 : 20  J2 進入內存,因優先級高,開始運行
      J1 運行了 10 分鐘,還剩 10 分鐘,因優先級低,運行態變就緒態
10 : 30   J1 繼續就緒
      J2 運行了 10 分鐘,還剩 20 分鐘
      J3 到達,但不能被調入
10 : 50  J2 運行結束, J4 到達
      調入短作業 J4 ,但因 J4 優先級比 J1 低, J1 開始繼續運行
11 : 00   J1 運行結束
     J3 被調入,因優先級高,開始運行
      J4 因優先級低,仍就緒
11 : 25   J3 運行結束, J4 開始運行
11 : 45   J4 運行結束

( 1 )各個作業進入主存時間、結束時間和週轉時間如下表所示:( 6 分)

作業名 提交時間 進入時間 結束時間 週轉時間
J1 10 : 10 10 : 10 11 : 00 50
J2 10 : 20 10 : 20 10 : 50 30
J3 10 : 30 11 : 00 11 : 25 55
J4 10 : 50 10 : 50 11 : 45 55

( 2 )平均週轉時間:( 50+30+55+55 ) /4=47.5 ( min )

7.有 5 個批處理作業( A , B , C , D , E )幾乎同時到達一個計算中心,估計的運行時間分別爲 10 , 6 , 2 , 4 , 8 分鐘,他們的優先數分別爲 1 , 2 , 3 , 4 , 5 ( 1 爲最低優先數)。對下面的各種調度算法,分別計算作業的平均週期時間。
( 1 )最高優先級優先
( 2 )短作業優先

8 .假定某系統當時的資源分配圖如圖 3-2 所示:
在這裏插入圖片描述
( 1 )分析當時系統是否存在死鎖。
( 2 )若進程 P 3 再申請 R 3 時,系統將發生什麼變化,說明原因。

解: (1) 因爲當時系統的資源分配圖中不存在環路.所以不存在死鎖。
  (2) 當進程 P 3 申請資源 R 3 後,資源分配圖中形成環路 P 2 → R 2 → P 3 → R 3 → P 2 ,而 R 2 ,R 3 都是單個資源的類,該環路無法消除,所以進程 P 2 , P 3 永遠處於等待狀態.從而引起死鎖。

9 .若系統有同類資源 m 個,供 n 個進程共享,試問:當 m>n 和 m ≤ n 時,每個進程最多可以申請多少個這類資源而使系統一定不會發生死鎖?

解:設每個進程申請該類資源的最大量爲 x 個,則只要不等式 n(x-1)+1 ≤ m 成立,系統一定不會發生死鎖。因爲最壞情況下,每個進程都已獲得 x-1 各資源,則 n 個進程共獲得 n(x-1) 個資源,而不等式 n(x-1)+1 ≤ m 表示每個進程都已獲得 x-1 各資源後,系統仍有可分配的資源,這樣,至少有一個進程可以得 到全部資源,從而能執行完成,它完成後釋放的資源又可使其它進程執行完成。
解不等式 n(x-1)+1 ≤ m , 可得 x ≤ 1+(m-1)/n
於是可得

X=1  當 m ≤ n
X=1+[(m-1)/n]  當 m>n

10 .設系統中僅有一類數量爲 M 的獨佔資源,系統中 N 個進程競爭該類資源,其中各進程對該類資源的最大需求量爲 W 。當 M 、 N 、 W 分別取下列值時,試判斷哪些情況可能會發生死鎖?哪些情況不可能發生死鎖?爲什麼?
① M=2, N=2, W=1 ② M=3, N=2, W=2 ③ M=3, N=2, W=3
④ M=5, N=3,W=2 ⑤ M=6, N=3, W=3
解: M 、 N 、 W 滿足關係式 N(W-1)<M ( 或 N(W-1)+1 ≤ M ) 時 , 不會發生死鎖。
用上述關係式判斷,可知①、②、④三種情況不會發生死鎖;而③、⑤兩種情況可能會發生死鎖。

12 .在單處理機系統中,有多個進程運行:一些以計算爲主,一些以輸入 / 輸出爲主。如何賦予進程佔有處理器的優先級才能提高系統的效率,使系統的平均週轉時間減少?
答:若計算型進程的優先級高於 I/O 型進程的優先級,計算型進程一旦佔有了 CPU 便忙於計算,使 I/O 型進程得不到運行的機會,導致 I/O 設備空閒,達不到 CPU 與 I/O 操作並行的目的;多個 I/O 型進程在系統中停留時間增加,系統的平均週轉時間增加。
若 I/O 型進程的優先級高於計算型進程的優先級,當它完成一項 I/O 操作後,便能立即獲得 CPU ,爲下 次 I/O 作準備工作,並啓動外設。當設備被啓動後,它便主動交出 CPU ,由系統將 CPU 分配給計算型進程,從而使 CPU 與 I/O 設備並行操作,獲得較好的運行效率。
因此,應賦予以 I/O 爲主的進程更高的優先級。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章