Subscribe Us

Responsive Advertisement

Advertisement

round robin scheduling algorithm without arrival time using c


 #include<stdio.h>


int main()

{


    int quntum,i;

    printf("Enter time quantum : ");

    scanf("%d",&quntum);

     printf("Enter number of process : ");

     int n;

     scanf("%d",&n);

     int process[n],burst[n];

     int queue[10000];

     int posc[100000];

     printf("enter process and burst time : \n");

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

     {

          scanf("%d%d",&process[i],&burst[i]);

          queue[i]=burst[i];

          posc[i]=process[i];

     }

     int pos=0;

     int rem=n;

     int com[n];

     int anspos[n];

     int k=0;

     int time=0;

     while(1)

     {

         if(rem<=0)break;

         if(queue[pos]<=quntum&&queue[pos]>0)

         {

              anspos[k]=posc[pos];

                time+=queue[pos];

              com[k]=time;

              queue[pos]=-1;

              k++;

              rem--;

              pos++;

         }

         else

         {

             time+=quntum;

            queue[pos]-=quntum;


           queue[pos+rem]=queue[pos];

           posc[pos+rem]=posc[pos];

           pos++;


         }





     }

     int turn[n];

     int wt[n];

     double avet=0.0;

     double avew=0.0;

     printf("position\t\tturnaround time\t\twaiting time : \n");

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

         {

            // printf("%d %d\n",anspos[i],com[i]);

              turn[i]=com[i];

              avet+=turn[i];


              wt[i]=turn[i]-burst[anspos[i]-1];

              avew+=wt[i];

               printf("%d\t\t\t%d\t\t\t%d\n",anspos[i],turn[i],wt[i]);

         }

         avet/=n;

         avew/=n;

         printf("average turn around time : %.2lf\n",avet);

        printf("average waiting time : %.2lf\n",avew);


}


Post a Comment

0 Comments