#include #include struct Process{ int Process_ID; int Arrival_Time; int Burst_Duration; int Priority; int TurnAroundTime; int WaitTime; }; //********************************************************** struct Gantt { int Process_ID; int Arrival_Time; int End_Time; }; void File_Content(struct Process Processes[], int number); void FCFS(struct Process Processes[], int number); void SJFP(struct Process Processes[], int number); void PRIORITY(struct Process Processes[], int number); void RR(struct Process Processes[], int number, int quantum); void Display_Output(struct Process Processes[],int number,struct Gantt Rows[],int count, char* filename); int main(int argc, char **argv) { int number_of_pross = 0; if (argc != 2) { printf("Incorrect number of arguments.\n"); return -1; } FILE* file1 = fopen(argv[1], "r"); while(!feof(file1)) { char ch = fgetc(file1); if(ch == '\n') { number_of_pross++; } } struct Process Processes[number_of_pross]; fseek(file1, 0, SEEK_SET); number_of_pross=0; while(fscanf(file1, "%d,%d,%d,%d",&Processes[number_of_pross].Process_ID,&Processes[number_of_pross].Arrival_Time,&Processes[number_of_pross].Burst_Duration,&Processes[number_of_pross].Priority) != EOF ) { number_of_pross++; } fclose(file1); File_Content(Processes,number_of_pross); FCFS(Processes,number_of_pross); SJFP(Processes,number_of_pross); PRIORITY(Processes,number_of_pross); return 0; } //-------------------------------------------------------- void File_Content(struct Process Processes[], int number) { int i; printf("PROCESS ID\tARRIVAL TIME\tBURST DURATION\tPRIORITY\n"); for(i=0;i