88from statistics import mean
99from typing import List
1010
11+
1112def calculate_srtf_waiting_time (arrival : List [int ], burst : List [int ]) -> List [int ]:
1213 """
1314 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
3334 while completed < n :
3435 # Find process with smallest remaining time that has arrived
3536 idx = - 1
36- min_remaining = float (' inf' )
37+ min_remaining = float (" inf" )
3738 for i in range (n ):
3839 if arrival [i ] <= t and remaining [i ] > 0 and remaining [i ] < min_remaining :
3940 min_remaining = remaining [i ]
@@ -55,7 +56,10 @@ def calculate_srtf_waiting_time(arrival: List[int], burst: List[int]) -> List[in
5556
5657 return waiting
5758
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 ]:
5963 """
6064 Calculate turnaround time for each process using waiting time.
6165
@@ -72,16 +76,21 @@ def calculate_srtf_turnaround_time(arrival: List[int], burst: List[int], waiting
7276 """
7377 return [burst [i ] + waiting [i ] for i in range (len (burst ))]
7478
79+
7580if __name__ == "__main__" :
7681 arrival_time = [0 , 1 , 2 , 3 ]
7782 burst_time = [8 , 4 , 9 , 5 ]
7883
7984 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+ )
8188
8289 print ("PID\t Arrival\t Burst\t Waiting\t Turnaround" )
8390 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+ )
8594
8695 print (f"Average Waiting Time: { mean (waiting_time ):.2f} " )
8796 print (f"Average Turnaround Time: { mean (turnaround_time ):.2f} " )
0 commit comments