Question: Please adjust my sjf 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 sjf 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:
Average Waiting Time:
Average Turnaround Time:
Average Response Time:
CPU utilization:
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 sjfprocesses: ListProcess responsetimeoffset: int :
currenttime
readyqueue deque
totalcputime
totalresponsetime
totalwaitingtime
totalturnaroundtime
completedprocesses
processes.sortkeylambda p: parrivaltime
while processes or readyqueue:
while processes and processesarrivaltime currenttime:
readyqueue.appendprocessespop
if readyqueue:
readyqueue dequesortedreadyqueue, keylambda p: premainingtime
current readyqueue.popleft
if current.responsetime :
current.responsetime currenttime current.arrivaltime responsetimeoffset
totalresponsetime current.responsetime
current.waitingtime currenttime current.arrivaltime
totalwaitingtime current.waitingtime
currenttime current.remainingtime
totalcputime current.remainingtime
originalturnaroundtime currenttime current.arrivaltime
current.turnaroundtime originalturnaroundtime
totalturnaroundtime current.turnaroundtime
completedprocesses
printfProcess currentid: Waiting Time currentwaitingtime
fTurnaround Time currentturnaroundtime Response Time currentresponsetime
else:
currenttime
totalprocesses completedprocesses
totaltime currenttime processesarrivaltime if processes else
desiredcputime totalcputime
idletimetoadd desiredcputime totaltime
totaltime idletimetoadd
cpuutilization totalcputime totaltime
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
printSJF NonPreemptive Simulation:
sjfprocesses responsetimeoffset
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
