8
8
from statistics import mean
9
9
from typing import List
10
10
11
+
11
12
def calculate_srtf_waiting_time (arrival : List [int ], burst : List [int ]) -> List [int ]:
12
13
"""
13
14
Calculate waiting time for each process using Shortest Remaining Time First (SRTF).
@@ -33,7 +34,7 @@ def calculate_srtf_waiting_time(arrival: List[int], burst: List[int]) -> List[in
33
34
while completed < n :
34
35
# Find process with smallest remaining time that has arrived
35
36
idx = - 1
36
- min_remaining = float (' inf' )
37
+ min_remaining = float (" inf" )
37
38
for i in range (n ):
38
39
if arrival [i ] <= t and remaining [i ] > 0 and remaining [i ] < min_remaining :
39
40
min_remaining = remaining [i ]
@@ -55,7 +56,10 @@ def calculate_srtf_waiting_time(arrival: List[int], burst: List[int]) -> List[in
55
56
56
57
return waiting
57
58
58
- def calculate_srtf_turnaround_time (arrival : List [int ], burst : List [int ], waiting : List [int ]) -> List [int ]:
59
+
60
+ def calculate_srtf_turnaround_time (
61
+ arrival : List [int ], burst : List [int ], waiting : List [int ]
62
+ ) -> List [int ]:
59
63
"""
60
64
Calculate turnaround time for each process using waiting time.
61
65
@@ -72,16 +76,21 @@ def calculate_srtf_turnaround_time(arrival: List[int], burst: List[int], waiting
72
76
"""
73
77
return [burst [i ] + waiting [i ] for i in range (len (burst ))]
74
78
79
+
75
80
if __name__ == "__main__" :
76
81
arrival_time = [0 , 1 , 2 , 3 ]
77
82
burst_time = [8 , 4 , 9 , 5 ]
78
83
79
84
waiting_time = calculate_srtf_waiting_time (arrival_time , burst_time )
80
- turnaround_time = calculate_srtf_turnaround_time (arrival_time , burst_time , waiting_time )
85
+ turnaround_time = calculate_srtf_turnaround_time (
86
+ arrival_time , burst_time , waiting_time
87
+ )
81
88
82
89
print ("PID\t Arrival\t Burst\t Waiting\t Turnaround" )
83
90
for i in range (len (arrival_time )):
84
- print (f"P{ i + 1 } \t { arrival_time [i ]} \t { burst_time [i ]} \t { waiting_time [i ]} \t { turnaround_time [i ]} " )
91
+ print (
92
+ f"P{ i + 1 } \t { arrival_time [i ]} \t { burst_time [i ]} \t { waiting_time [i ]} \t { turnaround_time [i ]} "
93
+ )
85
94
86
95
print (f"Average Waiting Time: { mean (waiting_time ):.2f} " )
87
96
print (f"Average Turnaround Time: { mean (turnaround_time ):.2f} " )
0 commit comments