All pastes #929671 Raw Edit

Stuff

public c v1 · immutable
·published 2008-03-05 22:36 UTC
rendered paste body
/*   The parser piece for the scheduler assignment*/#include <stddef.h>#include <string.h>#include <stdio.h>#include <unistd.h>#include <fcntl.h>/* You will need the integer queue */#include "IQueue.h"int main(int argc, char* argv[]){  int fd;  FILE *f;  char line[80];  int start_time, duration;  int i;		  struct process_struct  {    int process_id;    int start_time;    int duration;    int time_left;  };  struct process_struct process_list[80];  int process_count;  if (argc !=2)  {    printf("usage a.out file_name\n");    return 0;  };  f = fopen(argv[1],"r");  process_count = 0;  while(fgets(line,sizeof(line),f) != NULL)  {    sscanf(line, "%d %d", &start_time, &duration);    process_list[process_count].process_id = process_count;    process_list[process_count].start_time = start_time;    process_list[process_count].duration = duration;    process_list[process_count].time_left = duration;    process_count++ ;  }int currentTime = 0;int timeSlice = 5;while(1){for(i = 0 ; i < process_count; i++){if currentTime == proccess_list[i].start_time){IQueueStore(process_list[i].process_id);}if(int IQueueSize()==0){printf("IDLE");}else{IQueueRetrieve();printf("processing");process_list[i].time_left = process_list[i].time_left-5;if(process_list[i].time_left>0){IQueueStore(process_list[i].process_id);}currentTime = currentTime + 5;}if(IQueueSize()==0){break;}}}			  //print!!!  for (i = 0 ; i < process_count ; i++)  {      printf("process %d, start  %d, duration %d, left %d \n",      process_list[i].process_id,      process_list[i].start_time,      process_list[i].duration,      process_list[i].time_left);  }  printf("DONE\n");  close(fd);};