You are on page 1of 2

void SRTFS(){

int n,i;
float tavg = 0.0, wavg = 0.0;
printf("Enter total number of process:");
scanf("%d",& n);
int burst_time[n], arival_time[n], waiting_time[n];
printf("Enter burst time of each process:\t");
printf("Enter arival time of each process:\t");
int m;
m=0;//m=total burst time
for (i=0;i<n;i++){
printf("BT_P[%d]",i+1);
scanf("%d", &burst_time[i]);
printf("AT_P[%d]",i+1);
scanf("%d", &arival_time[i]);
waiting_time[i] = 0;
m = m + burst_time[i];
}
int j, temp;
for (i=0;i<n;i++){
for (j=1;j<n;j++){
if (arival_time[i] > arival_time[j]){
temp = arival_time[i];
arival_time[i] = arival_time[j];
arival_time[j] = temp;

temp = burst_time[i];
burst_time[i] = burst_time[j];
burst_time[j] = temp;
} } }

int p,k, process[n];


for (i=0;i<m;i++){
for(j=0;j<n;j++) {
if ((burst_time[j]!=0) && (arival_time[j]<=i)) {
p = burst_time[j];
k = j; }}
burst_time[k]--;
process[i] = k;
}
k = 0;
int quit[n];
for(i=0;i<m;i++) {
for(j=0;j<n;j++) {
if (process[i] == j) {
quit[j] = i;
waiting_time[j]++;
} } }
printf("\n PROCESS\t quit_time\t wait_time\n",
float total_average_waiting_time;
for (i=0;i<n;i++){
printf("\n%d:\t%d\t%d\t%d\n",i+1,quit[i] + 1,(quit[i] -
arival_time[i])+1,(((quit[i]+1)
- waiting_time[i]) -
arival_time[i]));
wavg = wavg + (((quit[i] + 1) - waiting_time[i]) -
arival_time[i]);
total_average_waiting_time+=((quit[i] - arival_time[i]) + 1);
}
printf("\n total_average_waiting_time==>\t%f\n",
(total_average_waiting_time / n));
}

You might also like