Round Robin Scheduling algorithm

25 visualizaciones (últimos 30 días)
Harishanker
Harishanker el 20 de Feb. de 2014
Respondida: Dr R SANJEEV KUMAR el 18 de Ag. de 2021
Could anyone help me with Matlab code to find the turnaround time using the roundrobin algorithm. This is my code to find the waiting time and the total CPU time. Moreover the waiting time obtained is in negative. I wanna make sure is negative waiting time is possible in round robin?
{ numOfJobs=5
CPUTime=randperm(20)
CPUTime_copy=CPUTime;
CPUTime_copy2=CPUTime;
quantum=5;
totalCPUtime= sum(CPUTime)
total_temp=totalCPUtime;
while (total_temp ~= 0)
for i=1:1:numOfJobs
if CPUTime(i)>0
if(CPUTime(i)>quantum)
CPUTime(i)=CPUTime(i)-quantum;
total_temp=total_temp-quantum;
else CPUTime(i)=CPUTime(i)-quantum;
total_temp=total_temp-quantum;
complete_RR(i)=totalCPUtime-total_temp;
end
end
start(i)=i;
wait_time(i)=totalCPUtime-total_temp-CPUTime_copy(i);
end
break
end }

Respuestas (2)

Jamal Nasir
Jamal Nasir el 11 de Mayo de 2018
Editada: Jamal Nasir el 11 de Mayo de 2018
%%% this MATLAB code for calculate Average waiting time for Round Robin CPU Scheduling %%% %%% edited by Jamal Nasir %%%%% Unversity of Almustansiryah
clc clear all close all j=3; job=randperm(10,j); jobi=job; flag=job>0; Quant=2; tw=sum(job); job1=[]; x=1:j; x1=[]; n=0; f1=[]; while tw>0 n=n+1; job1=[job1,job]; for i=1:j if flag(i)>0 if job(i)>Quant job(i)=job(i)-Quant; else job(i)=0; flag(i)=0; end end end tw=sum(job); x1=[x1,x]; f1=[f1,flag]; end
k=length(f1); for m=1:j to=0;wt=0; for i=1:k if x1(i)~=m if job1(i)>=Quant t=Quant; else t=job1(i); end wt=wt+t; else if job1(i)>=Quant t1=Quant; else t1=job1(i); end if t1<job1(i) to=to+t1; else break; end end end wait(m)=wt; end AvWaitTime=mean(wait) AvTurnAroundTime=mean(wait+jobi)

Dr R SANJEEV KUMAR
Dr R SANJEEV KUMAR el 18 de Ag. de 2021
clc clear all close all j=3; job=randperm(10,j); jobi=job; flag=job>0; Quant=2; tw=sum(job); job1=[]; x=1:j; x1=[]; n=0; f1=[]; while tw>0 n=n+1; job1=[job1,job]; for i=1:j if flag(i)>0 if job(i)>Quant job(i)=job(i)-Quant; else job(i)=0; flag(i)=0; end end end tw=sum(job); x1=[x1,x]; f1=[f1,flag]; end
k=length(f1); for m=1:j to=0;wt=0; for i=1:k if x1(i)~=m if job1(i)>=Quant t=Quant; else t=job1(i); end wt=wt+t; else if job1(i)>=Quant t1=Quant; else t1=job1(i); end if t1<job1(i) to=to+t1; else break; end end end wait(m)=wt; end AvWaitTime=mean(wait) AvTurnAroundTime=mean(wait+jobi)

Categorías

Más información sobre Parallel Computing en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by