// CPUScheduler.h Dave Reed 1/28/06 /////////////////////////////////////////////////////////////////////////////// #ifndef _CPU_SCHEDULER_ #define _CPU_SCHEDULER_ #include #include #include "Job.h" #include "Die.h" using namespace std; class CPUScheduler { public: CPUScheduler(int delay, int slice); int getTime() const; bool jobsRemaining() const; // RETURNS TRUE IF JOBS IN EITHER QUEUE void addNewJob(Job newJob); // ADDS NEW JOB TO READY QUEUE void execute(); // EXECUTES CURRENT JOB, UPDATES QUEUES private: queue readyQueue; // JOBS READY TO EXECUTE int loadDelay, timeSlice; // SIMULATION PARAMETERS int currentTime; // CURRENT TIME IN SIMULATION int sliceTimeRemaining, loadTimeRemaining; // TIME REMAINING IN JOB SLICE, LOADING void finishJob(); // PRIVATE HELPER METHOD void interruptJob(); // PRIVATE HELPER METHOD }; #endif