Simulate the SJF Nonpreemptive Scheduling Algorithms. Using this scheduling algorithms find the min & max waiting time.

Simulate the SJF Nonpreemptive Scheduling Algorithms. Using this scheduling algorithms find the min & max waiting time.

Simulate the SJF Non preemptive Scheduling Algorithms. Using this scheduling algorithm find the min & max waiting time.

 

#include<stdio.h>

int main()

{

int bt[20],p[20],wt[20],tat[20],i,j,n,total=0,pos,temp, maxWatingTime=0,

minWatingTime=0;

float avg_wt,avg_tat;

printf("Enter number of process:");

scanf("%d",&n);

printf("\nEnter Burst Time:\n");

for(i=0;i<n;i++)
{
printf("p%d:",i+1);
scanf("%d",&bt[i]);
p[i]=i+1;

}

//sorting of burst times

for(i=0;i<n;i++)

{

pos=i;

for(j=i+1;j<n;j++)

{

if(bt[j]<bt[pos])

pos=j;

}

temp=bt[i];

bt[i]=bt[pos];

bt[pos]=temp;

temp=p[i];

p[i]=p[pos];

p[pos]=temp;

}

wt[0]=0;

for(i=1;i<n;i++)

{

wt[i]=0;

for(j=0;j<i;j++)

wt[i]+=bt[j];

total+=wt[i];

}

avg_wt=(float)total/n;

total=0;

printf("\nProcess\t Burst Time \tWaiting Time\tTurnaround Time");

for(i=0;i<n;i++)

{

tat[i]=bt[i]+wt[i];

total+=tat[i];

printf("\np%d\t\t %d\t\t %d\t\t\t%d",p[i],bt[i],wt[i],tat[i]);

}

          avg_tat=(float)total/n;

printf("\n\nAverage Waiting Time=%f",avg_wt);

printf("\nAverage Turnaround Time=%f\n",avg_tat);

maxWatingTime = wt[0];

for(i=0;i<n;i++)

{

if(wt[i] > maxWatingTime)

{

maxWatingTime = wt[i];

}

if(wt[i] < maxWatingTime)

{

minWatingTime = wt[i];

}

}

printf("Maximum Wating Time : %d\n", maxWatingTime);

printf("Minimum Wating Time : %d\n", minWatingTime);

}


Output: