Non Preemptive sortest job first CPU scheduling algorithm program using C

#include<stdio.h>
struct pr
{
   char name[10];
   int arr_time;
   int burst_time;
   int com_time;
   int tat_time;
   int wt_time; 
   int flag;
};
int main()
{
struct pr p[10],temp;
int n,i,t=0,j,tat=0,wt=0,compt=0,temp1;
printf("\n how many process \t");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n enter process_name arrival_time and burst_time for process  ");
scanf("%s",&p[i].name);
scanf("%d",&p[i].arr_time);
scanf("%d",&p[i].burst_time);
}
for(i=0;i<n;i++)
{
printf("\n process name %s: arrival=%d burst=%d",p[i].name,p[i].arr_time,p[i].burst_time);
     
}
printf("\n");
for(i=0;i<n;i++)
    temp1=p[i].arr_time;
for(j=i+1;j<n;j++)
{
          if(p[j].arr_time<=compt&&p[j].burst_time<p[i].burst_time)
 {
     temp=p[i];
p[i]=p[j];
p[j]=temp;
   }        
}
compt=compt+p[i].burst_time;
}
for(i=0;i<n;i++)
{
printf("\n process name %s: arrival=%d          burst=%d",p[i].name,p[i].arr_time,p[i].burst_time);
     
}
    for(i=0;i<n;i++)
{
       t=t+p[i].burst_time;
  p[i].com_time=t;
  p[i].tat_time=p[i].com_time-p[i].arr_time;
  p[i].wt_time=p[i].tat_time-p[i].burst_time;
  tat=tat+p[i].tat_time;
  wt=wt+p[i].wt_time;
}
printf("\n result");
for(i=0;i<n;i++)
{
printf("\n process name %s: arrival=%d burst=%d tat=%d wt=%d ",p[i].name,p[i].arr_time,p[i].burst_time,p[i].tat_time,p[i].wt_time);      
}
printf("\n average turn around=%f  average waiting time=%f",(float)tat/n,(float)wt/n);

Comments

Popular posts from this blog

BYTE STUFFING PROGRAM USING C

Rotate a matrix 270 degree AntiClockWise

Finding the length of connected cells of 1's (regions) in an matrix of 1's and 0's