1 / 10
文档名称:

页面置换操作系统实验报告.docx

格式:docx   大小:176KB   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

页面置换操作系统实验报告.docx

上传人:mazhuangzi1 2022/5/20 文件大小:176 KB

下载得到文件列表

页面置换操作系统实验报告.docx

文档介绍

文档介绍:: .
实验二页面置换算法实现
一、实验目的
(1)了解内存分页管理策略
(2)掌握调页策略
(31,inti,intt,Prop[L])//记录当前内存块中页面离下次使用间隔长度{
Pro*page=newPro[M];
page=page1;
intcount=0;
for(intj=i;j<L;j++)
{
if(page[t].num==p[j].num)break;〃当前页面再次被访问时循环结束elsecount++;//否贝Ucount+1
}
returncount;//返回count的值}intmain()
intc;
intm=0,t=0;
floatn=0;
Prop[L];
m=Input(m,p);〃调用input函数,返回m值coutvv"请输入分配的物理块m(2〜6):";cout«endl«endl;
do{cin>>M;if(M>6||M<2){cout«endl;cout«"物理块m必须在2〜6之间"<<endl«endl;cout«"请重新输入m:";}elsebreak;
}while(1);
Pro*page=newPro[M];
do{for(inti=0;i<M;i++)〃初始化页面基本情况{page[i].num=0;page[i].time=m-1-i;}i=0;cout«endl;
cout«"1:FIFO页面置换2:LRU页面置换"<<endl;cout«"3:OPT页面置换4:退出"<<endl;
coutvv"请选择页面置换算法:"<<endl;cin>>c;if(c==l)//FIFO页面置换{n=0;
coutvv"FIFO算法页面置换情况如下:"<<endl;coutvvendl;
while(i<m){if(Search(p[i].num,page)>=0)//当前页面在内存中{cout<<p[i].num<<"";//输出当前页p[i].numcoutvv"不缺页"<<endl;i++;//i加1}else//当前页不在内存中{if(t==M)t=0;else{n++;〃缺页次数加1
page[t].num=p[i].num;//把当前页面放入内存中cout«p[i].num<<"";
print(page);〃打印当前页面
t++;//下一个内存块i++;//指向下一个页面}}}cout«endl;cout«"缺页次数:"<<*<"缺页率:"<<n/m«endl«endl;}if(c==2)//LRU页面置换{n=0;coutvv"LRU算法页面置换情况如下:"vvendl;cout«endl;while(i<m){inta;t=Search(p[i].num,page);if(t>=0)//如果已在内存块中{page[t].time=0;//把与它相同的内存块的时间置0for(a=0;a<M;a++)
if(a!=t)page[a].time++;//其它的时间加1cout<<p[i].num<<"";
coutvv"不缺页"<<endl;}else//如果不在内存块中{
n++;〃缺