Question: def shortest _ Job _ First ( processes ) : GanttChart = [ ] temp = 0 ready _ queue = [ ] waiting _

def shortest_Job_First(processes):
GanttChart =[]
temp =0
ready_queue =[]
waiting_queue =[]
currentnTime =0
Timer =0
GanttChart.append((processes[0].num, currentnTime, currentnTime + processes[0].Burst_time))
currentnTime += processes[0].Burst_time
processes.sort(key=lambda y: (y.Burst_time))
while Timer <200:
for process in processes:
if Timer <200:
if currentnTime + process.Burst_time <=200:
if waiting_queue:
found_waiting = False
for waiting_process in waiting_queue:
if temp >= waiting_process.Comes_back_after:
ready_queue.append(waiting_process)
waiting_queue.remove(waiting_process)
found_waiting = True
break
else:
break
if not found_waiting:
ready_queue.append(process)
running_process = ready_queue.pop(0)
GanttChart.append((process.num, currentnTime, currentnTime + process.Burst_time))
waiting_queue.append(running_process)
temp += process.Burst_time
process.waiting_time = max(0, currentnTime - process.Arrival_time)
process.turnaround_time = process.waiting_time + process.Burst_time
currentnTime += process.Burst_time
currentnTime += process.Burst_time
Timer = currentnTime
else:
running_process = ready_queue.pop(0)
GanttChart.append((running_process.num, currentnTime, currentnTime + running_process.Burst_time))
waiting_queue.append(running_process)
temp += running_process.Burst_time
process.waiting_time = max(0, currentnTime - process.Arrival_time)
process.turnaround_time = process.waiting_time + process.Burst_time
currentnTime += running_process.Burst_time
Timer = currentnTime
else:
ready_queue.append(process)
running_process = ready_queue.pop(0)
GanttChart.append((process.num, currentnTime, currentnTime + process.Burst_time))
process.waiting_time = max(0, currentnTime - process.Arrival_time)
process.turnaround_time = process.waiting_time + process.Burst_time
currentnTime += process.Burst_time
waiting_queue.append(running_process)
currentnTime += process.Burst_time
Timer = currentnTime
# Calculate average waiting time and average turnaround time
avg_waiting_time = calculate_average_waiting_time(processes)
avg_turnaround_time = calculate_average_turnaround_time(processes)
return GanttChart, avg_waiting_time, avg_turnaround_time edit it to give me this output Shortest Job First:
GANTT CHART:
0 P110 P614 P519 P725 P629 P534 P740 P644 P549 P755 P659 P564 P770 P674 P579 P785 P689 P594 P7100 P6104 P5109 P7115 P6119 P5124 P7130 P6134 P5139 P7145 P6149 P5154 P7160 P6164 P5169 P7175 P6179 P5184 P7190 P6194 P5199 P7200
Average waiting time =41.5
Average turnaround time =145.5

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!