Question: Please adjust my MLFQ code, so that you get the following values. It doesn't have to be exactly on the dot, but please make sure
Please adjust my MLFQ code, so that you get the following values. It doesn't have to be exactly on the dot, but please make sure it is around values to what is below. If not, it is considered as incorrect and marked wrong:
CPU Utilization
Avg Waiting Time Tw:
Avg Turnaround Time Ttr:
Avg Response Time Tr:
from collections import deque
from typing import List
class Process:
def initself id: int, cpu: Listint io: Listint arrival: int:
self.id id
self.cpubursts dequecpu
self.iotimes dequeio
self.arrivaltime arrival
self.waitingtime
self.turnaroundtime
self.responsetime
self.remainingtime sumcpu
def mlfqprocesses: ListProcess timequantum: Listint:
currenttime
readyqueues deque for in timequantum
totalcputime
totalresponsetime
totalwaitingtime
totalturnaroundtime
completedprocesses
processes.sortkeylambda p: parrivaltime
while processes or anyreadyqueues:
while processes and processesarrivaltime currenttime:
readyqueuesappendprocessespop
for i in rangelenreadyqueues:
if readyqueuesi:
current readyqueuesipopleft
if current.responsetime :
current.responsetime currenttime current.arrivaltime
totalresponsetime current.responsetime
timeslice mintimequantumi current.remainingtime
current.remainingtime timeslice
totalcputime timeslice
currenttime timeslice
if current.remainingtime :
originalturnaroundtime currenttime current.arrivaltime
current.turnaroundtime originalturnaroundtime
totalturnaroundtime current.turnaroundtime
totalwaitingtime current.waitingtime
completedprocesses
printfProcess currentid completed: Waiting Time currentwaitingtime
fTurnaround Time currentturnaroundtime Response Time currentresponsetime
else:
current.waitingtime currenttime current.arrivaltime totalcputime timeslice
readyqueuesi appendcurrent if i lenreadyqueues else readyqueuesiappendcurrent
break
else:
currenttime
totalprocesses completedprocesses
totaltime currenttime processesarrivaltime if processes else
cpuutilization totalcputime totaltime if totaltime else
averageresponsetime totalresponsetime totalprocesses if totalprocesses else
averagewaitingtime totalwaitingtime totalprocesses if totalprocesses else
averageturnaroundtime totalturnaroundtime totalprocesses if totalprocesses else
printf
CPU Utilization: cpuutilization:f
printfAverage Waiting Time Tw: averagewaitingtime:f
printfAverage Turnaround Time: averageturnaroundtime:f
printfAverage Response Time: averageresponsetime:f
if namemain:
processes
Process
Process
Process
Process
Process
Process
Process
Process
timequantum # Time slices for three queues
printMLFQ Simulation:
mlfqprocesses timequantum
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
