非選4.下表為一組程序(Process)的到達時間及所需之CPU時間的列表:
程序(Process) |
到達時間(Arrived Time) |
所需之CPU時間(Burst Time) |
P1 |
0 ms |
9 ms |
P2 |
3 ms |
4 ms |
P3 |
5 ms |
5 ms |
P4 |
7 ms |
4 ms |
若使用不可插隊式(Non-Preemptive)的SJF(Shortest-Job-First)排程法,則
(1)求平均等待時間(Average Waiting Time)。( 3分)
(2)求平均往返時間(Average Turnaround Time)。( 3分)
(註:一程序的往返時間係指其從到達至完成之間隔
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P1 |
|
p2 |
|
P3 |
|
P4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P1 |
P2 |
P4 |
P3 |
||||||||||||||||||
|
|
|
|
|
|
|
|
P2 |
|
|
|
P3 |
|
|
|
|
|
|
|
|
|
Process |
Arrived Time |
Exit Time |
Turnaround Time |
Waiting Time |
P1(9) |
0 ms |
9 |
9-0=9 |
9-9=0 |
P2(4) |
3 ms |
13 |
13-3=10 |
10-4=6 |
P3(5) |
5 ms |
22 |
22-5=17 |
17-5=12 |
P4(4) |
7 ms |
17 |
17-7=10 |
10-4=6 |
Average turnaround time = (9+10+17+10)/4=9
Average waiting time = ( 0 + 6 +12+ 6 ) / 4 = 24/4=6
==================================
若使用可插隊式(Non-Preemptive)的SJF(Shortest-Job-First)排程法,則
程序(Process) |
到達時間(Arrived Time) |
所需之CPU時間(Burst Time) |
P1 |
0 ms |
9 ms |
P2 |
3 ms |
4 ms |
P3 |
5 ms |
5 ms |
P4 |
7 ms |
4 ms |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P1(3) |
P2(2) |
P2(2) |
P4(4) |
P3(5) |
P1(6) |
||||||||||||||||
P1=9 |
|
P2=4 P1=6 |
|
P2=2 P3=5 P1=6 |
|
P4=4 P3=5 P1=6 |
|
|
|
P3=5 P1=6 |
|
|
|
|
P1=6 |
|
|
|
|
|
|
Process |
Arrived Time |
Exit Time |
往返時間Turnaround Time |
等待時間Waiting Time |
P1(9) |
0 ms |
22 |
22-0=22 |
22-9=13 |
P2(4) |
3 ms |
7 |
7-3=4 |
4-4=0 |
P3(5) |
5 ms |
16 |
16-5=11 |
11-5=6 |
P4(4) |
7 ms |
11 |
11-7=4 |
4-4=0 |
Average turnaround time = (22+4+11+4)/4=10.25
Average waiting time = ( 13 + 0 +6+ 0 ) / 4 = 4.75