diff --git a/src/sys/include/ubixos/schedule.h b/src/sys/include/ubixos/schedule.h index 601d5c6..4f04b2f 100755 --- a/src/sys/include/ubixos/schedule.h +++ b/src/sys/include/ubixos/schedule.h @@ -68,6 +68,7 @@ int id; int status; int usedMath; + int cpuTime; }; extern struct taskStruct taskList[numTasks]; diff --git a/src/sys/kernel/idlethread.c b/src/sys/kernel/idlethread.c index 77c5472..901d512 100755 --- a/src/sys/kernel/idlethread.c +++ b/src/sys/kernel/idlethread.c @@ -5,7 +5,11 @@ $Id$ **************************************************************************************/ +#include + void idleThread() { /* This thread is for maintinance */ - while (1); + while (1) { + //checkTasks(); /* Looks for run away proccesses and kills thems */ + } } \ No newline at end of file diff --git a/src/sys/kernel/schedule.c b/src/sys/kernel/schedule.c index 4811b4d..a915fda 100755 --- a/src/sys/kernel/schedule.c +++ b/src/sys/kernel/schedule.c @@ -25,6 +25,7 @@ taskList[i].id = i; taskList[i].status = AVAILABLE; taskList[i].usedMath = 0; + taskList[i].cpuTime = 0; } currentProc = -1; setVector(timerInt, mVec, (dInt + dPresent + dDpl3)); @@ -59,6 +60,7 @@ currentProc = proc; _current = &taskList[proc]; taskList[proc].status = ACTIVE; + taskList[proc].cpuTime++; memAddr = (unsigned int)&taskList[proc].tss; GDT[4].descriptor.access = 0x89; GDT[4].descriptor.baseLow = (memAddr & 0xFFFF);