You are on page 1of 4

1.

Shortest Remaining Task First (SRTF)


#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cout<<"Number of Processor: ";
cin>>n;
int CPUT[n],WT[n]= {0},TT[n],AT[n],pro[n],TCPUT[n],counter=0,timer=0,smalest=9;
double avgW=0,sumW=0,avgT=0,sumT=0;
for(int i=0; i<n; i++) {
pro[i]=i+1;
cout<<"CPU Time of P "<<i+1<<": ";
cin>>CPUT[i];
TCPUT[i]=CPUT[i];
cout<<"AT Time of P "<<i+1<<": ";
cin>>AT[i];
}
CPUT[smalest]=9999;
for(timer=0; counter!=n; timer++) {
smalest=9;
for(int i=0; i<n; i++) {
if(AT[i]<=timer && CPUT[i]<CPUT[smalest] && CPUT[i]>0){
smalest=i;
}
}
CPUT[smalest]--;
if(CPUT[smalest]==0) {
counter++;
int endcounter;
endcounter=timer+1;
TT[smalest]=endcounter-AT[smalest];
}
}
for(int j=0; j<n; j++){
sumT+=TT[j];
WT[j]=TT[j]-TCPUT[j];
sumW+=WT[j];
}
cout << "\nPRO\tAT\tBT\tWT\tTAT\n";
for(int i=0; i<n; i++) {
cout << "P" << pro[i] << "\t" << AT[i] << "\t" << TCPUT[i] << "\t" << WT[i] << "\t" << TT[i] << endl;
}
cout << "\nAverage WT: " << sumW/n << endl;
cout << "Average TAT: " << sumT/n << endl;
}

Output:
2. Round Robin
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, tq;
cout << "Number of process: ";
cin >> n;
int p[n], tat[n], wt[n], cpu[n], rem_cpu[n], timer = 0, counter = 0, i = 0, flag = 0;
double sumw=0,sumt=0;
for (int i = 0; i < n; i++) {
p[i] = i + 1;
cout << "CPU time of P" << p[i] << ": ";
cin >> cpu[i];
rem_cpu[i] = cpu[i];
}
cout << "\nTime Quantam: ";
cin >> tq;
for (timer = 0, i = 0; counter != n;) {
flag = 0;
if (rem_cpu[i] <= tq && rem_cpu[i] > 0) {
timer += rem_cpu[i];
rem_cpu[i] = 0;
flag = 1;
}
else if (rem_cpu[i] > 0) {
timer += tq;
rem_cpu[i] -= tq;
}

if (rem_cpu[i] == 0 && flag == 1) {


counter++;
tat[i] = timer;
}
i++;
i = i % n;
}
for (int j = 0; j < n; j++) {
sumt+=tat[j];
wt[j] = tat[j] - cpu[j];
sumw+=wt[j];
}
cout << "\nPRO\tCPU\tTAT\tWT\n";
for (int j = 0; j < n; j++) {
cout << p[j] << "\t" << cpu[j] << "\t" << tat[j] << "\t" << wt[j] << endl;
}
cout << "\nAverage WT: " << sumw/n << endl;
cout << "Average TAT: " << sumt/n << endl;
}

Output:

You might also like