页面置换算法实验报告 下载本文

}

page[j].time=j;

if(m_iFifo==0) //FIFO页面置换

{ 换,缺页数加一

float n=0;

//记录缺页数

int i=0;

CString str3,tmp3; str3=\

m_yemian.SetWindowText(_T(str3)); while(i=0) ++i;//找到相同的页面 else { n++;

page[t].num=p[i].num/10;//如果没有找到相同的页,则进行页面替 //—————————— tmp3=\

m_yemian.GetWindowText(_T(str3)); for(int i=0;i

} else { tmp3.Format(\ str3+=tmp3;

}

str3+=\

m_yemian.SetWindowText(_T(str3));

//—————————— t=(++t)%N;

}

}

16

}

MZL=1-n/M;

if(m_iFifo==1) //LRU页面置换 {

int p2;

float n=0;//记录缺页数 int i=0; int t1=t=0; CString str3,tmp3; str3=\

m_yemian.SetWindowText(_T(str3)); while(i

int k;

k=Search(p[i].num,page,N); if(k>=0) { } else {

if(t1

n++;

page[t].num=p[i].num/10;//如果没有找到相同的页,则进行页++t1; t++;

page[t].time=0;

//—————————— tmp3=\

m_yemian.GetWindowText(_T(str3)); for(int i=0;i

if(page[i].num==-1) {

17

page[k].time=0; for(p2=0;p2

if(p2!=k) page[p2].time++;

面替换,缺页数加一

} {

} else { }

tmp3.Format(\str3+=tmp3;

tmp3.Format(\str3+=tmp3;

str3+=\

m_yemian.SetWindowText(_T(str3));

//—————————— else{ }

n++;

t=Max(page,N); page[t].num=p[i].num/10; page[t].time=0;

//—————————— tmp3=\

m_yemian.GetWindowText(_T(str3)); for(int i=0;i

if(page[i].num==-1) { } else { }

str3+=\

m_yemian.SetWindowText(_T(str3));

tmp3.Format(\str3+=tmp3;

tmp3.Format(\str3+=tmp3;

//——————————

for(p2=0;p2

18

}

}

} i++;

MZL=1-n/M;

if(m_iFifo==2)//OPT页面置换 {

int i=0;

float n=0;//记录缺页数 int t=0,t1=0; CString str3,tmp3; str3=\

m_yemian.SetWindowText(_T(str3)); while(i

if(Search(p[i].num,page,N)>=0)i++; else {

if(t1

n++; ++t1; t++; i++;

//—————————— tmp3=\

m_yemian.GetWindowText(_T(str3)); for(int i=0;i

if(page[i].num==-1) { } else { }

19

page[t].num=p[i].num/10;//如果没有找到相同的页,则进行页面替换,缺页数加1

tmp3.Format(\str3+=tmp3;

tmp3.Format(\str3+=tmp3;

}

}

}

str3+=\

m_yemian.SetWindowText(_T(str3));

//——————————

else if(t1>=N)

{ }

int temp=-1,cn;

for(t=0;t

if(temp

page[cn].num=p[i].num/10; n++;

//—————————— tmp3=\

m_yemian.GetWindowText(_T(str3)); for(int i=0;i

if(page[i].num==-1) { } else { }

str3+=\

m_yemian.SetWindowText(_T(str3));

tmp3.Format(\str3+=tmp3;

tmp3.Format(\str3+=tmp3; { }

cn=t;//最远的页面号

temp=Compfu(page,i,t,p);//下次命中经历的页面计数

//——————————

else break;

MZL=1-n/M;

20