#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 5
int main(){
int count, head, tail, i;
int queue[MAX][2]; // queue[][0] stands for process's surplus time.
// queue[][1] stands for index of next link.
int brustTime[10], rTime;
int qt;
while(1){
printf("\n<<<<<<<< Enter Ctrl-c to stop this program. >>>>>>>>>\n");
count = MAX; //number of queue
srand(time(NULL));
for(i=0; i<MAX; i++){
brustTime[i] = rand() % 20 + 1;
queue[i][0] = brustTime[i];
queue[0][1] = (i+1) % MAX;
printf("p%d's brust time = %d\n", i+1, queue[i][0]);
}
printf("\n");
printf("Input the Time Quantum : ");
scanf("%d", &qt);
while(count != 0){
for(i=0;; i=queue[i][1]){
if(queue[i][0] == 0) continue;
rTime = 0;
while(rTime < qt){
printf("\tp%d run.\n",i+1);
rTime++;
queue[i][0]--;
if( queue[i][0] == 0){ count--; break; }
}
}
}
printf("over!\n");
}
return 0;
}