Round Robin Scheduling algorithm

33 views (last 30 days)
Harishanker
Harishanker on 20 Feb 2014
Answered: Dr R SANJEEV KUMAR on 18 Aug 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 }

Answers (2)

Jamal Nasir
Jamal Nasir on 11 May 2018
Edited: Jamal Nasir on 11 May 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 on 18 Aug 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)

Categories

Find more on Parallel Computing in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!