diff --git a/src/sys/kernel/schedule.c b/src/sys/kernel/schedule.c index 63a28f9..6d13317 100755 --- a/src/sys/kernel/schedule.c +++ b/src/sys/kernel/schedule.c @@ -66,6 +66,15 @@ void schedule() { int i,proc = -1,memAddr; outportByte(0x20, 0x20); + + i = currentProc + 1; + while ((taskList[i].status != RUNABLE) && (taskList[i].status != ACTIVE)) + { + i++; + i %= numTasks; + } + proc = i; + /* for (i=currentProc;i= numTasks) { i = -1; } - } + }*/ if (proc != -1) { currentProc = proc; _current = &taskList[proc]; @@ -101,4 +110,4 @@ " call schedule \n" " popa \n" " iret \n" - ); \ No newline at end of file + );