void init_system_queues(FILE *ptr_file, queue *q_ready, queue *q_process) { init_ready_queue(ptr_file, q_ready); if (empty_queue(q_ready)) { perror("No jobs were submitted for processing.\nExiting...\n"); exit(EXIT_FAILURE); } process *curr_proc = NULL; while (!(empty_queue(q_ready))) { /* move all processes in the ready queue to the processes queue */ curr_proc = (process *) dequeue(q_ready); enqueue(q_process, curr_proc); } curr_proc = NULL; matrix_t i; for (i = 0; i < NPROC; i++) { /* Move NPROC processes from the processes queue to the ready state */ curr_proc = (process *) dequeue(q_process); curr_proc->row_index = i; /* ensure to give the ready state processes proper indices into the matrices */ increment_row_vector(curr_proc->max_need_vector, claim_matrix[curr_proc->row_index]); enqueue(q_ready, curr_proc); } return; }
void scheduler_init() { init_ready_queue(); currentRunningTask = (TaskDescriptor*)NULL; }