Back
Round Robin
# Round Robin
def display(name_of_process, burst_time, number_of_processes,waiting_time,turnaround_time):
total_waiting_time = sum(waiting_time)
total_turnaround_time = sum(turnaround_time)
print("Name Of Process\tBurst Time\tWaiting Time\tTurnAround Time")
for num in range(number_of_processes):
print(f"{name_of_process[num]}\t\t{burst_time[num]}\t\t{waiting_time[num]}\t\t{turnaround_time[num]}")
print(f"\nAverage Waiting Time is:: {total_waiting_time / number_of_processes}\nAverage TurnAround Time is:: {total_turnaround_time / number_of_processes}")
def Round_Robin(name_of_process, burst_time, number_of_processes):
waiting_time = [0] * number_of_processes
turnaround_time = [0] * number_of_processes
remaining_time = burst_time.copy()
clock = 0
time_quantum = int(input("Enter Time Quantum:: "))
while True:
done = True
for num in range(number_of_processes):
if remaining_time[num]>0:
if remaining_time[num] >time_quantum :
done = False
clock +=time_quantum
remaining_time[num] -= time_quantum
else:
clock +=remaining_time[num]
remaining_time[num] = 0
waiting_time[num] = clock - burst_time[num]
turnaround_time[num] = waiting_time[num] + burst_time[num]
if done:
break
display(name_of_process, burst_time, number_of_processes,waiting_time,turnaround_time)
def main():
name_of_process = []
burst_time = []
number_of_processes = int(input("Enter the number of processes: "))
for i in range(number_of_processes):
name_of_process.append(input(f"Enter name of process {i + 1}: "))
burst_time.append(int(input(f"Enter burst time for process {name_of_process[i]}: ")))
Round_Robin(name_of_process, burst_time, number_of_processes)
if __name__ == "__main__":
main()