Untitled
unknown
c_cpp
21 days ago
1.9 kB
4
Indexable
#include <iostream> #include <deque> #include <unordered_set> using namespace std; void simulatePaging(const deque<int>& pageSequence, int numFrames) { deque<int> memory; unordered_set<int> pageSet; for (int page : pageSequence) { cout << "Accessing page: " << page << endl; // If the page is not in memory and there's space if (pageSet.find(page) == pageSet.end()) { if (memory.size() < numFrames) { memory.push_back(page); pageSet.insert(page); cout << "Page " << page << " loaded into memory." << endl; } else { // If memory is full, remove the least recently used page int removedPage = memory.front(); memory.pop_front(); pageSet.erase(removedPage); memory.push_back(page); pageSet.insert(page); cout << "Memory is full! Replaced page " << removedPage << " with page " << page << "." << endl; } } else { cout << "Page " << page << " is already in memory." << endl; } // Display current state of memory cout << "Current memory state: "; for (int p : memory) cout << p << " "; cout << endl << "-----------------------------" << endl; } } int main() { int numFrames; cout << "Enter the number of frames in memory: "; cin >> numFrames; int pageCount; cout << "Enter the number of pages to simulate: "; cin >> pageCount; deque<int> pageSequence; cout << "Enter the page sequence: "; for (int i = 0; i < pageCount; i++) { int page; cin >> page; pageSequence.push_back(page); } simulatePaging(pageSequence, numFrames); return 0; }
Editor is loading...
Leave a Comment