Untitled
unknown
plain_text
2 years ago
1.9 kB
7
Indexable
#include<stdio.h>
int main(){
int n,pid[10],at[10],bt[10],total=0,i,j,t,temp,procs[100],wt[10],ct[10],k;
float avg_tat = 0.0 , avg_wt = 0.0;
printf("Enter the number of processes");
scanf("%d",&n);
for(i =0 ; i<n ; i++){
printf("ENTER THE PROCESS ID\t");
scanf("%d",&pid[i]);
printf("ENTER THE ARRIVAL TIME OF PROCESS\t");
scanf("%d",&at[i]);
printf("ENTER THE BURST TIME OF PROCESS\t");
scanf("%d",&bt[i]);
//initialize waiting time = 0 for all process
wt[i]= 0;
total = total + bt[i];
}
//sort according to at
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(at[i]>at[j]){
temp = at[i];
at[i]=at[j];
at[j]= temp;
temp =bt[i];
bt[i]= bt[j];
bt[j]=temp;
temp = pid[i];
pid[i] = pid[j];
pid[j]= temp;
}
}
}
for(i =0; i <total ; i++){
t =total;
for( j=0 ; j>n ; j++){
if((bt[j]!=0)&&(at[j]<=i)&&(bt[j]<t))
{
t=bt[j];
k=j;
}
}
bt[k]--;
procs[i]=k;
}
k=0;
for(i=0;i<total;i++){
for(j = 0 ; j < n ; j++){
if(procs[i]==j){
ct[j]=i;
wt[j]++;
}
}
}
printf("\tPID\tAT\tBT\tCT\tTAT\tWT\n");
printf("-----------------------------\n");
for(i=0;i<n;i++){
printf("\t%d\t%d\t%d\t%d\t%d\t%d\n",pid[i],at[i],bt[i],ct[i]+1,(ct[i]-at[i])+1,(((ct[i]+1-wt[i])-at[i])));
avg_wt = avg_wt+(((ct[i]+1)-wt[i])-at[i]);
avg_tat = avg_tat + ((ct[i]-at[i])+1);
}
printf("\nAVERAGE TAT ==>\t%f\tAVERAGE WT ==>\t%f\n",(avg_tat/n),(avg_wt/n));
return 0;
}Editor is loading...
Leave a Comment