// PageTable class // this class models a page table for implementing virtual memory // // public methods: // PageTable(int logSize, int physSize); // constructor: must specify sizes // // of logical & physical memory // bool GetValid(int index); // returns valid bit for entry // void SetValid(int index, bool status); // sets valid bit for entry // int GetFrameNumber(int index); // returns frame number stored at entry // void SetFrameNumber(int index, int page); // sets frame number at entry // bool FreeRemaining(); // returns true if physical frame free // int GetFree(); // returns frame number of free frame // int GetOldest(); // returns index of oldest page /////////////////////////////////////////////////////////////////////////////////////// #ifndef _PAGE_TABLE_ #define _PAGE_TABLE_ #include using namespace std; class PageTable { public: PageTable(int log, int phys); bool GetValid(int index); void SetValid(int index, bool status); int GetFrameNumber(int index); void SetFrameNumber(int index, int page); bool FreeRemaining(); int GetFree(); int GetOldest(); private: int currentTime; vector pageMap; vector valid; vector timeStamp; vector freeFrames; }; #endif