Professional Documents
Culture Documents
Priority
Priority
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
int i,j,temp1,temp2,temp3;
char * ptemp;
int n=5;
int RBT[n];
int ET[n];
for (i=0;i<n-1;i++)
for(j=0;j<n-1;j++)
if(AT[j]>AT[j+1])
//Swapping ATs
temp1 = AT[j];
AT[j] = AT[j+1];
AT[j+1] = temp1;
//Swapping Process
ptemp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = ptemp;
//Swapping BTs
temp2 = BT[j];
BT[j] = BT[j+1];
BT[j+1] = temp2;
//Swapping prioritys
temp3 = P[j];
P[j] = P[j+1];
P[j+1] = temp3;
for(i=0;i<n;i++)
RBT[i] = BT[i];
//Status array
int status[6]={0,0,0,0,0,0};
printf("Process\tAT\tBT\tP\tRBT\n");
for(i=0;i<n;i++)
printf("%s\t%d\t%d\t%d\t%d\n",arr[i],AT[i],BT[i],P[i],RBT[i]);
}
//Ending Time
//int ET[n];
//Algorithm
int time;
for(time = 1;;time++)
int max=-999;
int pos;
for(i=0;i<n;i++)
if(max<P[i])
max = P[i];
pos = i;
if(max==-999)
printf("\nIDLE TIME:%d\n",time);
continue;
if(RBT[pos] == 0)
status[pos] = 1;
ET[pos] = time;
printf("Time : %d\n",time);
printf("Process\tAT\tBT\tP\tRBT\tstatus\n");
for(i=0;i<n;i++)
printf("%s\t%d\t%d\t%d\t%d\t%d\n",arr[i],AT[i],BT[i],P[i],RBT[i],status[i]);
int fg=1;
for(i=0;i<n;i++)
if(status[i]==0)
fg = 0;
if(fg == 1)
break;
}
//printf("Time : %d\n",time);
printf("Process\tAT\tBT\tRBT\tET\tstatus\n");
for(i=0;i<n;i++)
printf("%s\t%d\t%d\t%d\t%d\t%d\n",arr[i],AT[i],BT[i],RBT[i],ET[i],status[i]);
int WT[n];
int TAT[n];
float wtsum=0,tatsum=0;
for(i=0;i<n;i++)
WT[i] =ET[i]-BT[i]-AT[i];
wtsum += WT[i];
tatsum += TAT[i];
float wtavg,tatavg;
wtavg = wtsum/n;
tatavg = tatsum/n;
printf("Process\tAT\tBT\tET\tWT\tTAT\n");
for(i=0;i<n;i++)
printf("%s\t%d\t%d\t%d\t%d\t%d\n",arr[i],AT[i],BT[i],ET[i],WT[i],TAT[i]);
return 0;