ghorardim

FIFO Page Replacement

Nov 12th, 2017
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const long long mx=1e5;
  5.  
  6. int n;
  7. int frame_size;
  8. int pages[mx+5];
  9.  
  10. void fifo_page_replacement(void)
  11. {
  12. vector<int>frames;
  13. int i,k,page_faults;
  14.  
  15. page_faults = 0;
  16. for(i=1; i<=n; i++)
  17. {
  18. for(k=0; k<frames.size(); k++)
  19. {
  20. if(frames[k] == pages[i]) break;
  21. }
  22.  
  23. if(k == frames.size())
  24. {
  25. page_faults++;
  26. frames.push_back(pages[i]);
  27. if(frames.size() > frame_size) frames.erase(frames.begin());
  28.  
  29. printf("Reference to page %d caused a page fault\n",pages[i]);
  30. }
  31. else
  32. {
  33. printf("Reference to page %d did not cause a page fault\n",pages[i]);
  34. }
  35. }
  36. printf("\nTotal Page Faults: %d\n",page_faults);
  37. return;
  38. }
  39.  
  40. int main()
  41. {
  42. int i;
  43.  
  44. printf("Number of Frames: ");
  45. cin>>frame_size;
  46.  
  47. printf("Page Reference Stream Length: ");
  48. cin>>n;
  49.  
  50. printf("Page Reference Stream:\n");
  51. for(i=1; i<=n; i++) cin>>pages[i];
  52.  
  53. fifo_page_replacement();
  54.  
  55. return 0;
  56. }
Add Comment
Please, Sign In to add comment