Back
Non Preemptive Priority
# Non-Preemptive Priority-Based Scheduling Algorithm
def First_Come_First_Serve(name_of_process, burst_time, priority, number_of_processes):
waiting_time = 0
total_waiting_time = 0
total_turnaround_time = 0
print("Name Of Process\tBurst Time\tPriority\tWaiting Time\tTurnAround Time")
for i in range(number_of_processes):
turnaround_time = waiting_time + burst_time[i]
total_turnaround_time += turnaround_time
print(f"{name_of_process[i]}\t\t{burst_time[i]}\t\t{priority[i]}\t\t{waiting_time}\t\t{turnaround_time}")
total_waiting_time += waiting_time
waiting_time += burst_time[i]
print(f"\nAverage Waiting Time is:: {total_waiting_time / number_of_processes}\nAverage TurnAround Time is:: {total_turnaround_time / number_of_processes}")
def Sort(name_of_process, burst_time, priority, number_of_processes):
for i in range(number_of_processes):
for j in range(number_of_processes):
if priority[i] < priority[j]:
priority[i],priority[j]=priority[j],priority[i]
burst_time[i],burst_time[j]=burst_time[j],burst_time[i]
name_of_process[i],name_of_process[j]=name_of_process[j],name_of_process[i]
First_Come_First_Serve(name_of_process, burst_time, priority, number_of_processes)
def main():
name_of_process = []
burst_time = []
priority = []
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]}: ")))
priority.append(int(input(f"Enter priority of process {name_of_process[i]}: ")))
Sort(name_of_process, burst_time, priority, number_of_processes)
if __name__ == "__main__":
main()
# Sort([1,2,3,4,5], [5,4,3,2,1],[2,4,1,5,3], 5)