Thursday, 10 January 2019

Program on CPU SCHEDULING - ROUND ROBIN ( NON PREEMPTIVE)

/* Program to implement ROUND ROBIN CPU SCHEDULING */
#include<stdio.h>
void main()
{
  int st[10],bt[10],wt[10],tat[10],n,tq;
  int i,count=0,swt=0,stat=0,temp,sq=0;
  float awt=0.0,atat=0.0;

  printf("Enter number of processes:");
  scanf("%d",&n);
  printf("Enter burst time for sequences:");
  for(i=0;i<n;i++)
   {
     scanf("%d",&bt[i]);
     st[i]=bt[i];
   }
   printf("\nEnter time quantum:");
   scanf("%d",&tq);
   while(1)
   {
     for(i=0,count=0;i<n;i++)
     {
       temp=tq;
       if(st[i]==0)
       {
     count++;
     continue;
       }
       if(st[i]>tq)
    st[i]=st[i]-tq;
       else
    if(st[i]>=0)
    {
      temp=st[i];
      st[i]=0;
    }
    sq=sq+temp;
    tat[i]=sq;
     }
     if(n==count)
     break;
   }
   for(i=0;i<n;i++)
   {
    wt[i]=tat[i]-bt[i];
    swt=swt+wt[i];
    stat=stat+tat[i];
   }
   awt=(float)swt/n;
   atat=(float)stat/n;
   printf("\n\tPno\tBT\tTAT\tWT\n");
   for(i=0;i<n;i++)
    printf("\n\t%d\t%d\t%d\t%d",i+1,bt[i],tat[i],wt[i]);
    printf("\n Avg wait time is %f \n Avg turn around time is %f\n",awt,atat);

}

























 

No comments:

Post a Comment