Implement a CPU scheduling algorithm using first come first serve in c++ using f
ID: 3677811 • Letter: I
Question
Implement a CPU scheduling algorithm using first come first serve in c++ using folliwing assumptions and data.
Assumptions:
All processes are activated at time 0
Assume that no process waits on I/O devices.
After completing an I/O event, a process is transferred to the ready queue.
Waiting time is accumulated while a process waits in the ready queue.
Process Data:
process goes {CPU burst, I/O time, CPU burst, I/O time, CPU burst, I/O time,…….., last CPU burst}
P1 {4,24,5,73,3,31,5,27,4,33,6,43,4,64,5,19,2}
P2 {18,31,19,35,11,42,18,43,19,47,18,43,17,51,19,32,10}
P3 {6,18,4,21,7,19,4,16,5,29,7,21,8,22,6,24,5}
P4 {17,42,19,55,20,54,17,52,15,67,12,72,15,66,14}
P5 {5,81,4,82,5,71,3,61,5,62,4,51,3,77,4,61,3,42,5}
P6 {10,35,12,41,14,33,11,32,15,41,13,29,11}
P7 {21,51,23,53,24,61,22,31,21,43,20}
P8 {11,52,14,42,15,31,17,21,16,43,12,31,13,32,15}
Explanation / Answer
#include<iostream>
usingnamespace std;
int main()
{
int n,bt[20],wt[20],tat[20],avwt=0,avtat=0,i,j;
cout<<"Enter total number of processes(maximum 20):";
cin>>n;
cout<<"nEnter Process Burst Timen";
for(i=0;i<n;i++)
{
cout<<"P["<<i+1<<"]:";
. cin>>bt[i];
}
wt[0]=0;
//waiting time for first process is 0
//calculating waiting time
for(i=1;i<n;i++)
{
wt[i]=0;
for(j=0;j<i;j++)
wt[i]+=bt[j];
}
cout<<"nProcessttBurst TimetWaiting TimetTurnaround Time";
//calculating turnaround time
for(i=0;i<n;i++)
{
tat[i]=bt[i]+wt[i];
avwt+=wt[i];
avtat+=tat[i];
cout<<"nP["<<i+1<<"]"<<"tt"<<bt[i]<<"tt"<<wt[i]<<"tt"<<tat[i];
}
avwt/=i;
avtat/=i;
cout<<"nnAverage Waiting Time:"<<avwt;
cout<<"nAverage Turnaround Time:"<<avtat;
return0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.