diff --git a/code/threads/system.cc b/code/threads/system.cc index 5455f8a..1655be6 100644 --- a/code/threads/system.cc +++ b/code/threads/system.cc @@ -12,6 +12,10 @@ #include #endif +#ifdef CHANGED +#include "synch.h" +#endif // CHANGED + // This defines *all* of the global data structures used by Nachos. // These are all initialized and de-allocated by this file. @@ -37,6 +41,8 @@ Machine *machine; // user program memory and registers #ifdef CHANGED // Define our consoledriver Object ConsoleDriver *consoledriver; PageProvider *pageProvider; +int processes; +Semaphore * semProcessesCounter; #endif // CHANGED #endif // USER_PROGRAM @@ -188,6 +194,8 @@ Initialize (int argc, char **argv) #ifdef CHANGED pageProvider = new PageProvider((int)(MemorySize/PageSize)); + processes = 0; + semProcessesCounter = new Semaphore("Count Processes",1); #endif //CHANGED #endif #ifdef FILESYS diff --git a/code/threads/system.h b/code/threads/system.h index c0d2dda..b9bc2c2 100644 --- a/code/threads/system.h +++ b/code/threads/system.h @@ -15,6 +15,9 @@ #include "interrupt.h" #include "stats.h" #include "timer.h" +#ifdef CHANGED +class Semaphore; +#endif //CHANGED // Initialization and cleanup routines extern void Initialize (int argc, char **argv); // Initialization, @@ -39,6 +42,9 @@ extern Machine *machine; // user program memory and registers extern ConsoleDriver *consoledriver; // add console driver #include "pageprovider.h" extern PageProvider *pageProvider; // add our page provider +// count Processes +extern Semaphore * semProcessesCounter; +extern int processes; #endif //CHANGED #endif