// vm.cpp Dave Reed 3/20/06 // // Virtual Memory Simulator - currently uses FIFO page replacement /////////////////////////////////////////////////////////////////// #include #include "PagingUnit.h" using namespace std; int main() { int logSize; cout << "Enter number of pages in logical memory: " << endl; cin >> logSize; int physSize; cout << "Enter number of frames in physical memory: " << endl; cin >> physSize; PagingUnit MMU(logSize, physSize); // CREATE THE PAGE TABLE int numFaults = 0; cout << "Enter the page-reference string (terminated by -1): " << endl; int pageNum; cin >> pageNum; while (pageNum != -1) { // REPEAT UNTIL END OF INPUT if (!MMU.isValid(pageNum)) { // IF PAGE IS NOT IN MEMORY, MMU.loadPage(pageNum); // THEN SWAP IT IN numFaults++; } MMU.accessPage(pageNum); // ACCESS THE PAGE cin >> pageNum; // READ NEXT INPUT VALUE } cout << endl << "Total number of page faults = " << numFaults << endl; return 0; }