From ffec195ded25253d0d257df39996ab9eedccca75 Mon Sep 17 00:00:00 2001 From: sajalgupta Date: Sun, 9 Oct 2022 12:49:34 +0530 Subject: [PATCH] Priority_scheduling_added_in_python --- .../priority_scheduling.png | Bin 0 -> 41647 bytes .../priority_scheduling.py | 69 ++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 Scheduling/priority_scheduling/priority_scheduling.png create mode 100644 Scheduling/priority_scheduling/priority_scheduling.py diff --git a/Scheduling/priority_scheduling/priority_scheduling.png b/Scheduling/priority_scheduling/priority_scheduling.png new file mode 100644 index 0000000000000000000000000000000000000000..b7edf011668bfc4bad3ffbb9dd3dcbf5da4f85a8 GIT binary patch literal 41647 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 OI(a<#AAMhET>W1zaV*yW literal 0 HcmV?d00001 diff --git a/Scheduling/priority_scheduling/priority_scheduling.py b/Scheduling/priority_scheduling/priority_scheduling.py new file mode 100644 index 00000000..b41f6dff --- /dev/null +++ b/Scheduling/priority_scheduling/priority_scheduling.py @@ -0,0 +1,69 @@ +# Priority Scheduling in python3 + +# Function to get to know waiting time for all process + +def findWaitingTime(processes, n, wt): + wt[0] = 0 + + # Here we are calculating waiting time + for i in range(1, n): + wt[i] = processes[i - 1][1] + wt[i - 1] + +# Function for calculating the turn around time +def findTurnAroundTime(processes, n, wt, tat): + + # Calculating turnaround time by adding bt[i] + wt[i] + for i in range(n): + tat[i] = processes[i][1] + wt[i] + +# Function to calculate average waiting +# and turn-around times. +def findavgTime(processes, n): + wt = [0] * n + tat = [0] * n + + # Function to find waiting time + # of all processes + findWaitingTime(processes, n, wt) + + # Function to find turn around time + # for all processes + findTurnAroundTime(processes, n, wt, tat) + + # Display processes along with all details + print("\nProcesses Burst Time Waiting", + "Time Turn-Around Time") + total_wt = 0 + total_tat = 0 + for i in range(n): + + total_wt = total_wt + wt[i] + total_tat = total_tat + tat[i] + print(" ", processes[i][0], "\t\t", + processes[i][1], "\t\t", + wt[i], "\t\t", tat[i]) + + print("\nAverage waiting time = %.5f "%(total_wt /n)) + print("Average turn around time = ", total_tat / n) + +def priorityScheduling(proc, n): + + # Sort processes by priority + proc = sorted(proc, key = lambda proc:proc[2], reverse = True); + + print("Order in which processes gets executed") + for i in proc: + print(i[0], end = " ") + findavgTime(proc, n) + +# Main code +if __name__ =="__main__": + + # Process id's + proc = [[1, 10, 1], + [2, 5, 0], + [3, 8, 1]] + n = 3 + priorityScheduling(proc, n) + +