All pastes #933223 Raw Edit

Stuff

public c v1 · immutable
·published 2008-03-08 04:59 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;int ii;  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;int psleft = process_count;int PID = 0;while(psleft>0){		printf("\n\ncurrent time is :  %d\n", currentTime);		for(ii=0; ii<psleft; ii++){		if(process_list[ii].start_time == currentTime){				IQueueStore(ii);				}		}					if(IQueueSize()==0){		printf("idle\n);		}				if(IQueueSize()>0){		PID = IQueueRetrieve();		printf("running process %d for 5 timesharess \n", PID);		process_list[PID].time_left = process_list[PID].time_left-timeSlice;		}		if(process_list[PID].time_left>0){		IQueueStore(PID);		}currentTime = currentTime +5;sleep(2);}//end while///////v  printf("DONE\n");  close(fd);};