28 最短剩餘時間優先(Shortest Remaining Time First, SRTF)排程法是作業系統中一種安排程序執行順序的方
法。假設有 5 個程序 P1、P2、P3、P4、P5,分別於時間 0、1、1、2、3 到達工作佇列,其所需的 CPU 執
行時間(CPU Burst Time)分別為 4、2、1、2、1,若以 SRTF 法排程,這 5 個程序的等待時間總和為何?
(A) 10
(B) 11
(C) 12
(D) 13
答案:登入後查看
統計: A(94), B(159), C(106), D(73), E(0) #2823812
統計: A(94), B(159), C(106), D(73), E(0) #2823812
詳解 (共 4 筆)
#5422755
首先將題目整理成表格
| CPU 執行時間 | 到達時間 | |
| P1 | 4 | 0 |
| P2 | 2 | 1 |
| P3 | 1 | 1 |
| P4 | 2 | 2 |
| P5 | 1 | 3 |
最短剩餘時間優先的意思是 在執行該程序的時候,若有新的程序插進來
並且該程序的執行時間較少,將會優先執行,並且暫停目前的程序
首先先執行P1,因為它的到達時間是0
()內為目前結束的時間
| P1(1) |
這時候遇上了P2、P3的到達時間(可以理解為"輪到它們開始執行的時間")
但是因為P3的執行時間比P2短,所以由P3先執行,同時P2先排在後面,P1的程序執行先就此打住<4-1=3>
| P1(1) | P3(2) |
P3執行完畢後,原本應該是輪到P2,但這時遇上了P4的到達時間
但是P2的執行時間<1>跟P4的執行時間<1>是一樣的,所以P4的程序可以先擱置
| P1(1) | P3(2) | P2(3) |
這時P2執行到一半遇上了P5的到達時間,而P5的執行時間<1>跟P2的剩餘執行時間<2-1=1>一樣
所以也可以先把P5擱置
| P1(1) | P3(2) | P2(4) |
P2執行完畢後 剩下 P1 P4 P5 尚未執行,剩餘的執行時間分別為 3 2 1
P5的剩餘時間最少,所以接著是執行P5
| P1(1) | P3(2) | P2(4) | P5(5) |
執行完畢後,還剩下P1 P4,而P4的剩餘執行時間最少,所以接著是執行P4
| P1(1) | P3(2) | P2(4) | P5(5) | P4(7) |
這時候還剩下還沒執行完畢的P1,所以最後執行P1
| P1(1) | P3(2) | P2(4) | P5(5) | P4(7) | P1(10) |
這樣甘特圖就完成
接下來要計算處理時間(Turnaround time)
公式為 處理時間=最後執行結束時間-抵達時間
| P1 | P2 | P3 | P4 | P5 | |
| 處理時間 | 10-0=10 | 4-1=3 | 2-1=1 | 7-2=5 | 5-3=2 |
最後是計算等待時間
公式為 等待時間=最後執行結束時間-抵達時間-執行時間
| P1 | P2 | P3 | P4 | P5 | |
| 等待時間 | 10-4=6 | 3-2=1 | 1-1=0 | 5-2=3 | 2-1=1 |
題目是等待時間總和,所以答案是6+1+0+3+1=11
19
1
#5682458
3
3