最近最少使用(LRU)中的页面错误

最近最少使用(LRU)中的页面错误

分页是与操作系统相关的内存管理过程。它通过使用页面段将一些进程数据从辅助数据存储器存储或检索到主数据存储器或内存中。分页过程发生在进程在页面上遇到任何错误时,我们不能在此处使用新的空闲页面来满足分配过程。LRU过程生成了特定的替换算法需求。当进程产生一个新页面时,它决定哪个页面需要被替换。让我们举个例子 -

输入的内容用于该过程 -

N = 9, C = 4 登录后复制

  • 步骤10 - 步骤9增加了频率的过程。

  • 第11步 - 否则,内存已经完全满了。删除第一个元素并减少频率。

  • 第12步 - 计数增加。

  • 第13步 - 比较频率结果。

  • 第14步 - 根据页面的频率和基于时间的结果进行排序。

  • 第15步 - 如果我们得到相同的频率,那么页面将首先到达。

  • 第16步 - 重复这个过程。

  • 步骤 17 - 返回结果。

  • 第18步 - 终止进程。

  • 计算LRU中的页面错误的语法

    int main() { int capacity = 4; int arr[] = {7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2}; deque q(capacity); int count=0; int page_faults=0; deque::iterator itr; q.clear(); for(int i:arr) { itr = find(q.begin(),q.end(),i); if(!(itr != q.end())) { ++page_faults; if(q.size() == capacity) { q.erase(q.begin()); q.push_back(i); } else{ q.push_back(i); } } else { q.erase(itr); q.push_back(i); } } cout nopages; //it will store the numer of Pages cout page[i]; } cout > nofaults; int frame[nofaults], fcount[nofaults]; for (i = 0; i < nofaults; i++) { frame[i] = -1; fcount[i] = 0; } i = 0; while (i < nopages) { int j = 0, flag = 0; while (j < nofaults) { if (page[i] == frame[j]) { flag = 1; fcount[j] = i + 1; } j++; } j = 0; cout