Advertisement
Guest User

Untitled

a guest
Nov 28th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. #include "NRU.h"
  2. #include <time.h>
  3.  
  4. time_t seconds = time(0);
  5.  
  6. int NRU::findVirtualPageToEvict(TableEntry *pageTable)
  7. {
  8. int pageToEvict;
  9. bool pageRef;
  10. int tracking;
  11. bool modified;
  12.  
  13. while (pageRef==false){
  14. pageRef = pageTable[pages.at(0)].used;
  15. tracking = pageTable[pages.at(0)].timeLastUsed;
  16. if (tracking < pageTable[pages.at(0)+1].timeLastUsed){
  17. pages.push_back(pages.at(0));
  18. pages.erase(pages.begin());
  19. }
  20. }
  21.  
  22.  
  23. pageToEvict=pages.at(0);
  24.  
  25. return pageToEvict;
  26. }
  27.  
  28. void NRU::virtualPageEvicted(TableEntry *pageTable, int virtualPage)
  29. {
  30. for (int i=0; i<pages.size(); i++){
  31. if (pages.at(i)==virtualPage){
  32. pages.erase(pages.begin()+i);
  33. }
  34. }
  35. }
  36.  
  37. void NRU::virtualPageLoaded(TableEntry *pageTable, int virtualPage)
  38. {
  39. pages.push_back(virtualPage);
  40. }
  41.  
  42. void NRU::virtualPageAccessed(TableEntry *pageTable, int virtualPage, bool modified)
  43. {
  44. pageTable[virtualPage].used=true;
  45. pageTable[virtualPage].timeLastUsed=seconds;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement