參考文獻:[1]費翔林, 駱斌. 操作系統教程(第五版) [M]. 北京:高等教育出版社,2014.
題目:某多道程序系統採用可變分區存儲管理,供用戶使用的內存空間爲200KB,磁帶機5臺。採用靜態方式分配外部設備,且不能移動內存中的作業,進程調度採用FCFS算法,忽略用戶作業I/O操作時間。現有作業序列如下:
作業號 | 進入輸入井時刻 | 運行時間/min | 內存需求量/KB | 磁帶機需求/臺 |
A | 8:30 |
40 |
30 | 3 |
B | 8:50 | 25 | 120 | 1 |
C | 9:00 | 35 | 100 | 2 |
D | 9:05 | 20 | 20 | 3 |
E | 9:10 | 10 | 60 | 1 |
(2)SJF算法選中作業執行的次序及作業平均週轉時間。
分析:
-
題意解讀:
- 作業調度和進程調度:計算機核心是磁盤(外存)、內存、CPU,放在磁盤中的就是作業,放在內存中的就是進程,從磁盤中選中滿足資源的作業到內存中創建進程的過程就是高級調用,從內存中選中一個進程到CPU中執行就是低級調用。所以對於題目中的要求,進程採用FCFS算法,就是內存中的進程的調度算法;xxxx算法選中作業,就是磁盤中的作業創建進程的策略。
- 週轉時間 = 完成時刻 - 提交時刻(進入輸入井時刻)。
- 磁帶機不可剝奪。
- 不能移動內存中的作業:就是一旦進程創建成功,其對應的空間地址不能更改。
-
解題步驟:
答案:
第1題:FCFS算法調度作業
作業號 | 提交時刻 | 進內存時刻 | 開始時刻 | 完成時刻 | 週轉時間 |
A | 8:30 | 8:30 | 8:30 | 9:10 | 40min |
B | 8:50 | 8:50 | 9:10 | 9:35 | 45min |
C | 9:00 | 9:35 | 9:55 | 10:30 | 90min |
D | 9:05 | 9:10 | 9:35 | 9:55 | 50min |
E | 9:10 | 9:55 | 10:30 | 10:40 | 90min |
作業執行次序 |
A -> B -> D -> C -> E |
||||
平均週轉時間 |
(40 + 45 + 90 + 50 + 90) / 5 = 54(min) |
第2題:SJF算法調度作業
作業號 |
提交時刻 | 進內存時刻 | 開始時刻 | 完成時刻 | 週轉時間 |
A | 8:30 | 8:30 | 8:30 | 9:10 | 40min |
B | 8:50 | 8:50 | 9:10 | 9:35 | 45min |
C | 9:00 | 9:55 | 10:05 | 10:40 | 100min |
D | 9:05 | 9:10 | 9:35 | 9:55 | 50min |
E | 9:10 | 9:35 | 9:55 | 10:05 | 55min |
作業執行次序 |
A -> B -> D -> E -> C |
||||
平均週轉時間 |
(40 + 45 + 100 + 50 + 55) / 5 = 58(min) |
變題:在上題中,如果允許移動已在內存中的作業,其它條件保持不變。
分析:允許移動內存中的作業(應該是進程吧(′д` )…彡…彡),就是說使用的內存不超過200KB就可以了。
解題步驟:
答案:
第1題:FCFS算法調度作業
作業號 | 提交時刻 | 進內存時刻 | 開始時刻 | 完成時刻 | 週轉時間 |
A | 8:30 | 8:30 | 8:30 | 9:10 | 40min |
B | 8:50 | 8:50 | 9:10 | 9:35 | 45min |
C | 9:00 | 9:55 | 10:05 | 10:40 | 100min |
D | 9:05 | 9:10 | 9:35 | 9:55 | 50min |
E | 9:10 | 9:10 | 9:55 | 10:05 | 55min |
作業執行次序 | A -> B -> D -> E -> C | ||||
平均週轉時間 | (40 + 45 + 100 + 50 + 55) / 5 = 58(min) |
第2題:SJF算法調度作業
作業號 |
提交時刻 | 進內存時刻 | 開始時刻 | 完成時刻 | 週轉時間 |
A | 8:30 | 8:30 | 8:30 | 9:10 | 40min |
B | 8:50 | 8:50 | 9:10 | 9:35 | 45min |
C | 9:00 | 9:45 | 10:05 | 10:40 | 100min |
D | 9:05 | 9:10(後) | 9:45 | 10:05 | 60min |
E | 9:10 | 9:10(先) | 9:35 | 9:45 | 35min |
作業執行次序 | A -> B -> E -> D -> C | ||||
平均週轉時間 | (40 + 45 + 100 + 60 + 35) / 5 = 56(min) |
KEYS:
- 週轉時間 = 完成時刻 - 提交時刻。
- 作業的調度和進程的調度,要從 磁盤 – 內存 – CPU 這三個角度考慮,題目說的算法是針對作業的還是進程的,這是有區別的。