RoundRobin(RR)


C Program For RoundRobin(RR)

#include <stdio.h>
#include <stdlib.h>

struct Process
{
 int id;
 int btime;
 int atime;
 int isdone;
};

int cmp(const void *a, const void *b)
{
 struct Process* a1 = (struct Process*)a;
 struct Process* b1 = (struct Process*)b;
 return (a1->atime - b1->atime);
}

int main()
{
 struct Process* p;
 int i, n, g[20], j;
 printf("Enter Number Of Process: ");
 scanf("%d", &n);

 p = (struct Process*)malloc(sizeof(struct Process) * n);
 
 for(i = 0; i < n; i++) {
     printf("Enter The Brust Time Of Process %d: ", i);
  scanf("%d", &p[i].btime);
  printf("Enter Arrival Time Of Process %d: ", i);
  scanf("%d", &p[i].atime);
  p[i].id = i;
  p[i].isdone = 0;
 }

 qsort(p, n, sizeof(struct Process), cmp);

 printf("Process\tATime\tBTime\n");
 for (i = 0; i < n; ++i) {
  printf("P%d\t%d\t%d\n",p[i].id,p[i].atime,p[i].btime);
 }
 p[n].atime = 0;
 for(i = 0; i < n; i++) {
  for (k = 0)
  printf("|P%d|",p[i].id);
  for (j = p[i].atime; j < p[i+1].atime; j++) {
   printf("-");
   p[i].btime--;
  } 
 }

 return 0;
}


Share:

0 comments