Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "NRU.h"
- #include <time.h>
- time_t seconds = time(0);
- int NRU::findVirtualPageToEvict(TableEntry *pageTable)
- {
- int pageToEvict;
- bool pageRef;
- int tracking;
- bool modified;
- while (pageRef==false){
- pageRef = pageTable[pages.at(0)].used;
- tracking = pageTable[pages.at(0)].timeLastUsed;
- if (tracking < pageTable[pages.at(0)+1].timeLastUsed){
- pages.push_back(pages.at(0));
- pages.erase(pages.begin());
- }
- }
- pageToEvict=pages.at(0);
- return pageToEvict;
- }
- void NRU::virtualPageEvicted(TableEntry *pageTable, int virtualPage)
- {
- for (int i=0; i<pages.size(); i++){
- if (pages.at(i)==virtualPage){
- pages.erase(pages.begin()+i);
- }
- }
- }
- void NRU::virtualPageLoaded(TableEntry *pageTable, int virtualPage)
- {
- pages.push_back(virtualPage);
- }
- void NRU::virtualPageAccessed(TableEntry *pageTable, int virtualPage, bool modified)
- {
- pageTable[virtualPage].used=true;
- pageTable[virtualPage].timeLastUsed=seconds;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement