Program For Page Replacement
Program For Page Replacement
#include <vector>
#include <list>
#include <unordered_set>
list<int> frameList;
unordered_set<int> frameSet;
int pageFaults = 0;
if(frameSet.find(page) == frameSet.end()) {
if(frameList.size() == frames) {
frameSet.erase(front);
frameList.pop_front();
frameList.push_back(page);
frameSet.insert(page);
pageFaults++;
}
// Function to perform LRU page replacement algorithm
list<int> frameList;
unordered_set<int> frameSet;
int pageFaults = 0;
if(frameSet.find(page) == frameSet.end()) {
if(frameList.size() == frames) {
frameSet.erase(back);
frameList.pop_back();
frameList.push_front(page);
frameSet.insert(page);
pageFaults++;
} else {
frameList.remove(page);
frameList.push_front(page);
int pageFaults = 0;
for(int i = 0; i < pages.size(); ++i) {
if(frame[j] == pages[i]) {
pageFound = true;
break;
if(!pageFound) {
int farthest = i;
int k;
if(frame[j] == pages[k]) {
break;
if(k == pages.size()) {
pageToReplace = j;
break;
farthest = k;
pageToReplace = j;
}
frame[pageToReplace] = pages[i];
pageFaults++;
int main() {
int frames = 3;
cout << "FIFO Hit Ratio: " << hitRatioFIFO * 100 << "%" << endl;
cout << "LRU Hit Ratio: " << hitRatioLRU * 100 << "%" << endl;
cout << "Optimal Hit Ratio: " << hitRatioOptimal * 100 << "%" << endl;
return 0;