first

Wednesday, 6 September 2017

shortest job first (SJF) also known as | Shortest job next (SJN) or | shortest process next (SPN) scheduling algorithm | c program error free|

#include<stdio.h>
#define S 20
void main()
{
int bt[S],at[S],sum_bt=0,smallest,n,i,j,wt[S],ct[S],p[S],w=-1;
  int sum_turnaround=0,sum_wait=0;
float awt,att;
  printf("Enter no of processes : ");
  scanf("%d",&n);
  for(i=0;i<n;i++)
  {
    printf("Enter burst time and arrival time for proces P%d : ",i+1);
    scanf("%d %d",&bt[i],&at[i]);
    sum_bt+=bt[i];
  }
  printf("\n\nProcess\t|\tBT\t|\tAT\t|\tCT\t| Waiting Time|Turnaround Time\n\n");
  for(j=0;j<sum_bt;)
  {
    smallest=n-1;
    for(i=0;i<n;i++)
    {
      if(at[i]<=j && bt[i]>0 && bt[i]<bt[smallest])
        smallest=i;
    }
    if(smallest==S-1)
    {
      j++;
      continue;
    }
    printf("P[%d] \t|\t %d \t|\t%d\t|\t%d\t|\t%d\t%d\n",smallest+1,bt[smallest],at[smallest],at[smallest]+j+bt[smallest]-at[smallest],j-at[smallest],j+bt[smallest]-at[smallest]);
w++;
p[w]=smallest+1;
ct[w]=(j+bt[smallest]-at[smallest])+at[smallest];
    sum_turnaround+=j+bt[smallest]-at[smallest];
    sum_wait+=j-at[smallest];
    j+=bt[smallest];
    bt[smallest]=0;
  }
  for(i=0;i<n;i++)
  {
  printf("\tp%d",p[i]);
  }
printf("\nat[\t");
  for(i=0;i<n;i++)
  {
  printf("%d\t",ct[i]);
  /*printf("");*/
  }
awt=sum_wait*1.0/n;
att=sum_turnaround*1.0/n;
  printf("\n\n average waiting time = %f",awt);
  printf("\n\n average turnaround time = %f",att);
}

No comments:

Post a Comment

Round Robin Scheduling program in C | Round Robin scheduling Algorithm with Gantt chart c program|scheduling algorithms

/*Copy right SHYAM REGHU $$http://shyamtr.blogspot.in/*/ #include<stdio.h> int at[100],bt[100],rt[100],temp[100]; float wait_time=0,...