赞
踩
NRU页面置换算法
最近未使用页面置换算法(NRU)算法,找到最久没有使用的页面置换出去
没找到例子,自己试着理解了一下,可能存在错误理解。
和OPT算法相似的,OPT寻找最远或者不在需要的页面替换
则 NRU是寻找最久未使用,则应该向前寻找谁没有距离被置换处最远,则将其置换出
大概是这个样子
#include <iostream> #define N 3 using namespace std; int main() { int ym[]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1}; int size=20; int opt[N]={1,0,7 }; int len[N]={0,0,0}; int sum; int dq=3; int flag=0; int allchagetime=0; do{ for(int i=0;i<N;i++) { cout<<opt[i]<<" "; } cout<<endl; for(int i=0;i<N;i++) { sum=0; if(ym[dq]==opt[0]||ym[dq]==opt[1]||ym[dq]==opt[2]) { flag=1; break; } else{ flag=0; for(int j=dq-1;j>=0;j--) { sum++; if(opt[i]==ym[j]||j==0) { len[i]=sum; break; } } } } if(flag==0) { int max=len[0]; int res; for(int t=0;t<N;t++) { if(len[t]>=max) { res=t; max=len[t]; } } opt[res]=ym[dq]; allchagetime++; } dq++; }while(dq!=21); cout<<"缺页"<<allchagetime+3-1<<"次,"<<"置换"<<allchagetime-1<<"次"<<endl; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。