diff --git a/allocate.c b/allocate.c index 290c4e6f9468862c81fc6137c436c349f01a5520..1894e5b7aac765a7e87be598d7479cf0c392e2c6 100644 --- a/allocate.c +++ b/allocate.c @@ -159,6 +159,7 @@ int main(int argc, char *argv[]) { parableProcess[i].parallelisable = newProcess->parallelisable; parableProcess[i].timeCompleted = -1; parableProcess[i].timeRemaining = parableProcess[i].executionTime; + parableProcess[i].startTime = newProcess->startTime; addProcessToQueue(CPUs[i].processQueue, ¶bleProcess[i], currentTime, i); } numProcessesLeft += 1; @@ -222,7 +223,7 @@ int main(int argc, char *argv[]) { } } -// currentTime += startTime; +// currentTime += deltaTime; } // printf("Completed Queue:"); // llist_print(completedProcesses, (void (*)(void *)) &printQEntry); @@ -342,7 +343,7 @@ void advanceProcessQueue(llist *processQueue, int currentTime, int deltaTime, ll paralizedProcess->timeCompleted = currentTime - deltaTime; paralizedProcess->timeRemaining = 0; headProcess->timeRemaining = 0; - //printf("process had finished: Current time: %d, startTime: %d\n", currentTime, startTime); + //printf("process had finished: Current time: %d, deltaTime: %d\n", currentTime, deltaTime); printf("%d,FINISHED,pid=%s,proc_remaining=%d\n", paralizedProcess->timeCompleted, paralizedProcess->processID, *numProcessesLeft); // Could accumulate statistics here instead of keeping list of completed processes @@ -413,7 +414,7 @@ void addProcessToQueue(llist *processQueue, process *newProcess, int currentTime llist_add_inorder(newProcess, processQueue, (int (*)(void *, void *)) &leastTimeRemaining); headProcess = headData(processQueue); // llist_print(processQueue, (void (*)(void *)) &printQEntry); - if (strncmp(headProcess->processID, newProcess->processID, sizeof (newProcess->processID))) { + if (!strncmp(headProcess->processID, newProcess->processID, sizeof (newProcess->processID))) { headProcess->justStarted = -1; headProcess->startTime = currentTime; }