操作系统课程设计报告DOC

上传人:gao****ang 文档编号:139250674 上传时间:2022-08-22 格式:DOCX 页数:38 大小:382.58KB
收藏 版权申诉 举报 下载
操作系统课程设计报告DOC_第1页
第1页 / 共38页
操作系统课程设计报告DOC_第2页
第2页 / 共38页
操作系统课程设计报告DOC_第3页
第3页 / 共38页
资源描述:

《操作系统课程设计报告DOC》由会员分享,可在线阅读,更多相关《操作系统课程设计报告DOC(38页珍藏版)》请在装配图网上搜索。

1、课程设计报告题目模拟请求页式管理课程名称:计算机操作系统学院:信息工程学院专业:计算机科学与技术班级:14计本(1)学生XX:*学号:201403031*指导教师:*成绩:开课时间:2016-2017学年一学期模拟请求页式管理第1章需求分析1.1 设计要求请求页式管理是一种常用的虚拟存储管理技术。本设计通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。本实验要求用Vc+或其他高级语言编写和调试。编写程序实现:(1)先进先出页面置换算法(FIFO)(2)最近最久未使用页面置换算法(LRU)最佳置换页面置换算法(OPT)设计一个虚拟存储区和内存工作

2、区,编程序演示以上三种算法的具体实现过程,并计算访问命中率。1.2 解决方案首先确定实现语言使用c#实现图形化界面,后确定要实现哪些功能,比如算法选择,页面添加,模拟控制。然后确定输出结构以便于程序的测试和验证。将基本框架建立后再进行编程。编程前进行算法结构分析最后编程实现。1.3 算法实现原理1、先进先出置换算法(FIFO):发生缺页中断时按照页面进入内存顺序总是淘汰最先进入内存的页面。2、最近最久未使用置换算法(LRU):发生缺页中断时总是淘汰存在内存中最长时间未被使用的页面。3、最佳置换算法(OPT):发生缺页中断时若一个或几个页面将来将不会被调用则按先进先出原则淘汰页面,若将来都有调用

3、则比较调用时刻选择最远时刻页面淘汰。4、缺页率:缺页次数占页面调用次数的百分比。第2章概要设计2.1数据设计常变量:调用页面最大数量(MaxN),内存最大页面数(MaxM)待调用页面数组:page_ddMaxN存放等待调用的页面号页面数组专用指针page_p,用于指向page_dd数组中正需调入内存的页号内存块数组:MemeryMaxM,存放内存当前存放的页号缺页计数器:count,记录缺页次数内存块状态数组:M1MaxN,M2MaxN,M3MaxN,记录每次页面调用结束后内存各块的状态缺页记录数组sMaxN,用于记录页面调用时是否产生缺页中断,初始化为是2.2函数设计1、页面添加函数:voi

4、dbtnAdd_Click(objectsender,EventArgse)用于实现通过点击按钮实现数据输入。2、内存初始化函数:init(inta,intb,intm1,intm2,intm3)参数有页面数组、内存数组、状态数组,采用先进先出算法对内存先进行装满服务于先进先出页面置换函数和最佳置换函数。3、输出函数:voiddisplaynta,intm1,intm2,intm3,charc)用于输出模拟结果,参数有页面数组,内存数组,状态数组,缺页记录数组。再模拟之后调用。4、模拟控制函数:voidbtnmo_ClickQbjectsender,EventArgse)用于实现通过单击模拟按

5、钮,根据用户所选算法进行模拟并显示结果。5、先进先出算法模拟函数:voidFIFO(nta,intb,intm1,intm2,intm3,chars)用于实现先进先出算法模拟,参数有页面数组,内存数组、内存状态记录数组,缺页记录数组。在模拟函数中调用。6、最近最久未使用算法模拟函数:voidLRU(nta,intb,intm1,intm2,intm3,chars)用于实现最近最久未使用算法模拟,参数有页面数组,内存数组,内存状态记录数组,缺页记录数组。在模拟函数中被调用。7、最近最久未使用函数辅助函数:voidLUR_I(inta,inte)用于对最近最久未使用算法中所用辅助数组(记录页面存在

6、时长)进行调整,参数有辅助数组及需调整的数据下标。在最近最久未使用函数中调用。8、最佳置换算法模拟函数:voidOPT(nta,intb,intm1,intm2,intm3,chars)用于模拟最佳置换算法。参数有页面数组,内存数组,内存状态记录数组,缺页记录数组。在模拟函数中被调用。9、最佳置换算法辅助函数:voidOPT_Fi(nta,inte)用于对最佳置换算法中的辅助数组进行调整。参数有辅助数组,需调整数据下标。在最佳置换算法中被调用。10、重置函数:voidbtncz_ClickObjectsender,EventArgse)用于重新选择算法进行新的模拟。2.3 主要算法设计1、初始

7、化函数算法:第一步:将第一个页面调入内存,调整最佳置换算法辅助数组,缺页计数器加一,保存内存数组状态。第二步:调用下一个页面并判断内存中是否有本页面有转第三步,无转第四步。第三步:更改缺页数组对应下标值,记录当前内存状态,调整最佳置换算法辅助数组,页面指针指向下一页。第四步:将页面调入内存,调整最佳置换算法辅助函数,缺页计数器加一,保存内存数组状态。若内存尚不满转第一步。具体见图1初始化算法流程图。图1初始化算法流程图2、先进先出页面置换算法:第一步:检查内存中是否已有需调用页面,有则转第二步,无则转第三步。第二步:记录当前内存状态,修改缺页数组对应下标值。第三步:内存中无需要调用的页面,进行

8、出队操作,然后进行入队操作,记录内存块状态,缺页计数器加一。第四步:若页面数组未被调用结束转第一步具体见图2先进先出算法流程图开始开始图2先进先出算法流程图3、最近最久未使用置换算法:第一步:将页面调入内存,记录内存状态,缺页计数器加一,调整辅助数组,页面指针加一第二步:检查内存中是否已有所需页面,有转第三步,无转第一步。第三步:修改缺页数组对应下标记录,记录内存状态,调整辅助数组,页面指针加一。第四步:内存是否已满,无则转第一步,是则转第五步。第五步:检查内存中是否有所需页面,有则记录当前内存状态,修改缺页数组对应下标值。无则转第六步。第六步:检查辅助数组找出最大值并记录其下标,置换内存中对

9、应下标的数据,调整辅助数组,缺页计数器加一。第七步:页面是否调用结束未结束则转第五步。具体见图3最近最久未使用算法流程图。图3最近最久未使用算法4、最佳置换算法:第一步:检查内存中是否已有所需页面,有则记录内存状态,修改缺页数组对应下标数值。无则转第二步。第二步:判断内存中各页面的未来调用情况,记录是否还有调用,若有则记录调用时刻。第三步:分析调用情况,内存中页面都在将来不会被调用转第四步,有一个被调用转第五步,有两个被调用转第六步,全被调用转第七步。第四步:查找辅助数组找到内存中存在时间最长的页面进行置换,修改内存状态,缺页计数器加一,修改辅助数组。第五步:查找到不会被调用的页面,并根据辅助

10、数组选择最早进入内存的页面将其置换。修改内存状态,缺页计数器加一,修改辅助数组。第六步:查找辅助数组找到将来不需要在调用的页面将其置换,修改辅助数组,记录内存状态,缺页计数器加一。第七步:查找辅助数组,找寻最晚被调用的页面,将其置换。记录内存状态,修改辅助数组,缺页计数器加一。第八步:页面是否调用完成,否则转第一步。具体见图4最佳置换算法流程图图4最佳置换算法流程图界面设计采用c#设计windows窗体应用程序,使用下拉列表框选择算法,通过按钮添加待调用的页面。通过文本控件显示模拟结果。显示样式:第一行:算法名称;第二行:调用页面顺序;第三行至第五行显示内存在每调用一次页面后的状态;第六行:是

11、否缺页;最后一行显示缺页率;第3章详细设计与实现3.1函数设计1、添加按钮功能实现代码主要功能:实现单击一次添加一个调用页面,并给出相应的提示,如正在输入的是第几次调度页面,在输入为空时能够弹出对话框提示用户,在输入完成时为避免数组越界应在输入完成时隐藏;输入过程中始终保证时输入焦点。privatevoidbtnAdd_Click(objectsender,EventArgse)if(txtAdd.Text!=)/输/入不为空才能继续输入page_ddi_add=Convert.ToInt32(txtAdd.Text);/*将输入值赋值给页面数组*/txtShow.Text+=txtAdd.T

12、ext+;/*显示供用户查阅*/i_add+;txtAdd.Clear();/*清空*/if(i_add=MaxN)/输入结束时txtAdd.ReadOnly=true不允许继续输入btnAdd.Hide();/按钮隐藏return;txtAdd.Focus();/设置为输入焦点label2.Text=第+(i_add+1)+次调度页面:;/*提示用户正在输入的是第几次调度页面*/*输入为空则弹出对话框提示用户输入为空*/elseMessageBox.Show请输入调用页面!,输入为空,MessageBoxButtons.OK,MessageBoxIcon.Warning);txtAdd.Fo

13、cus();2、初始化函数主要功能:将内存一先进先出方式填满,并记录每个页面进入时间,服务于先进先出页面置换算法和最佳置换算法voidinit(inta,intb,intm1,intm2,intm3)/*内存未满时循环*/for(inti=0;iMaxM&page_pMaxN;i+)bi=apage_p;调入内存/调整辅助数组将刚进入内存的页面的对应时间OPT_F(O_Q,;i)count+;缺页计数器加一m1page_p=b0;保存内存状态m2page_p=b1;m3page_p=b2;page_p+;/调用下一页面/检查内存中是否原先就有需要的页面;for(intj=0;j=i&page_

14、pMaxN;j+)if(bj=apage_p)/找到这样的页面spage_p=F;/缺页数组对应数据更改m1page_p=b0;/记录内存状态m2page_p=b1;m3page_p=b2;OPT_F(O_Q,-1);/调/整最佳置换算法辅助函数page_p+;/调用下一页j=-1;/重新开始寻找3、先进先出页面置换函数主要功能:根据先进先出算法要求在产生缺页中断时采用先进先出方式确定淘汰页面,并在每次页面调用时记录下内存状态,缺页次数;采用循环队列使得每次出队的一定是最先进入内存的。privatevoidFIFO(inta,intb,intm1,intm2,intm3,chars)intFp

15、age_p=page_p;intfront,rear;/定义队列对手和对尾指针并初始化front=0;rear=MaxM-1;intsa;/定义页面处理标志为1则表明此页面已处理for(;Fpage_pMaxN;Fpage_p+)/从当前位置开始往后扫描sa=0;for(inti=0;iMaxM;i+)/检查内存中是否已有要调用的页面。/有需要的页面则保存内存状态,修改缺页数组对应位值if(bi=aFpage_p)m1Fpage_p=b0;m2Fpage_p=b1;m3Fpage_p=b2;sFpage_p=F;sa=1;break;/找到就退出应为只可能有一个符合页面if(sa=0)/未找到

16、一致页面产生缺页中断进行出队操作淘汰最早进入内存的页面/并记录内存状态,计数器加一front=(front+1)%MaxM;rear=(rear+1)%MaxM;brear=aFpage_p;m1Fpage_p=b0;m2Fpage_p=b1;m3Fpage_p=b2;count+;elsecontinue;/内存原有一样的页面则结束本次循环4、最近最久未使用函数主要功能:实现对最近最久页面置换算法的模拟,记录缺页次数和每次页面对应的内存状态。privatevoidLRU(inta,intb,intm1,intm2,intm3,chars)intL_Q=newintMaxM3,3,3;/辅助数

17、组记录页面存在时间,初始值都是3,每次对应位置有新页面进入就刷/新为1,比原来值小的加一大于原来值得不变intsa;/页面已调用标志for(inti=0;iMaxM&page_pMaxN;i+)/内存不满时执行将内存装满因其于先进先出不符合故不能调用初始化函数bi=apage_p;/调入内存count+;m1page_p=b0;保存内存状态m2page_p=b1;m3page_p=b2;LUR_I(L_Q,i);/调整辅助数组page_p+;for(intj=0;j=i&page_pMaxN;j+)/判断已在内存中的页面中是否有与将要调用页面一致的页面if(bj=apage_p)/有则修改缺页

18、状态函数并记录当前内存状态spage_p=F;m1page_p=b0;m2page_p=b1;m3page_p=b2;LUR_I(L_Q,j);page_p+;j=-1;for(;page_pMaxN;page_p+)/内存装满后从当前位置向后调用页面sa=0;for(inti=0;iMaxM;i+)/检查内存中是否已有要调用的页面。if(bi=apage_p)/有则记录内存状态修改缺页数组调整辅助函数m1page_p=b0;m2page_p=b1;m3page_p=b2;spage_p=F;LUR_I(L_Q,i);sa=1;break;if(sa=0)for(inti=0;iMaxM;i+

19、)/产生缺页中断if(L_Qi=3)/查找辅助数组找到值为3的位置对应下标并/替换此下标代表的内存块页面并记录内存状态,调整辅助函数,计数器加一bi=apage_p;m1page_p=b0;m2page_p=b1;m3page_p=b2;LUR_I(L_Q,i);break;count+;elsecontinue;5、最佳置换算法主要功能:模拟实现最佳页面置换算法,淘汰内存中永远不会调用的页面,如果有多个则采用先进先出原则进行置换,若多个页面在以后都有调用则淘汰最后被调用的页面,记录每次页面调用后内存状态,记录缺页中断数privatevoidOPT(inta,intb,intm1,intm2,

20、intm3,chars)intsa;页面调用处理标志intO_p;/页面数组辅助指针intOcount;/辅助计数变量intOPT_I=newintMaxM-1,-1,-1;/辅助数组记录页面将来调用与否intOPT_J=newintMaxMMaxN,MaxN,MaxN;/辅助数组记录页面将来被调用时刻for(;page_pMaxN;page_p+)for(inti=0;iMaxM;i+)OPT_Ji=MaxN;sa=0;for(inti=0;iMaxM;i+)/检查内存中是否已有要调用的页面。/将要调用页面存在于内存中if(bi=apage_p)/记录内存状态修改缺页数组,调整辅助数组m1p

21、age_p=b0;m2page_p=b1;m3page_p=b2;OPT_F(O_Q,-1);spage_p=F;sa=1;break;if(sa=0)/缺页Ocount=0;/向后查找页面调用情况用辅助数组记录O_p=page_p+1;for(;O_pO_Qtemp)temp=i;btemp=apage_p;m1page_p=b0;m2page_p=b1;m3page_p=b2;OPT_F(O_Q,temp);count+;break;case1:/有一个页面将在以后调用,比较两个不会被调用的页面谁先进入内存并置换之temp=0;for(inti=0;iO_Qtemp)temp=i;btem

22、p=apage_p;m1page_p=b0;m2page_p=b1;m3page_p=b2;OPT_F(O_Q,temp);count+;break;case2:/有两个页面将在以后被调用,直接淘汰将来不会调用的那个for(inti=0;iMaxM;i+)if(OPT_Ii=-1)bi=apage_p;m1page_p=b0;m2page_p=b1;m3page_p=b2;OPT_F(O_Q,i);count+;break;case3:/所有页面都将被调用,查找辅助函数,得到最晚被调用的页面并淘汰之for(inti=0;iOPT_Jp)p=i;bp=apage_p;m1page_p=b0;m2

23、page_p=b1;m3page_p=b2;OPT_F(O_Q,p);count+;break;6、输出函数主要功能:按既定形式输出模拟结果,并计算缺页率并输出privatevoiddisplay(inta,intm1,intm2,intm3,charc)lblshow.Text=;lblshow.Text=boBox1.Text+:n;/输出算法名称for(inti=0;iMaxN;i+)/输出页面调用输出顺序lblshow.Text+=ai.ToString()+;lblshow.Text+=n;for(inti=0;iMaxN;i+)/输出1号内存块变换情况if(m1i=-1)lblsh

24、ow.Text+=;elselblshow.Text+=m1i.ToString()+lblshow.Text+=n;for(inti=0;iMaxN;i+)/输出2号内存块变换情况if(m2i=-1)lblshow.Text+=;elselblshow.Text+=m2i.ToString()+lblshow.Text+=n;for(inti=0;iMaxN;i+)/输出3号内存块变换情况if(m3i=-1)lblshow.Text+=;elselblshow.Text+=m3i.ToString()+lblshow.Text+=n;for(inti=0;iMaxN;i+)/输出缺页情况lb

25、lshow.Text+=ci+;/计算并输出缺页率Iblshow.Text+=r缺页率:+count*100/MaxN+%;3.2界面设计程序执行开始显示本程序具体模拟内容如图5进入模拟界面所示图5进入模拟界面点击开始模拟按钮进入主界面,如图6所示主界面包含提示文本如“算法选择”,“第1次调度页面”、“页面调度顺序”。包含三个按钮分别为添加按钮用于添加调用页面,重置按钮清除当前操作,以便重新模拟。模拟按钮,单击即可开始模拟。图6模拟主界面第4章调试分析4.1实验步骤及结果第一步:运行程序显示模拟入口如图7模拟入口所示模拟请求页式管理图7模拟入口第二步:单击开始模拟进入主界面,可以看出程序默认是

26、选择先进先出页面置换算法,显示页面调用顺序处不可随意修改。如图8主界面所示图8主界面第三步:选择先进先出算法进行模拟,添加页面调度序列如图9所示。期间若输入空字符则弹出对话框如图10所示,点击确定继续输入,输入完成则禁止输入如图11所示;图9页面添加图10输入为空警告对话框图11输入结束第四步:单击模拟按钮可以看见模拟结果如图12所示。按照算法原理页面置换过程应为:其中3,5,1号页面进入内存是因为原本内存中没有所以产生了三次中断。2号页面调用时产生缺页中断,这是3号页面最先进入内存故将3号页面置换出去。3号页面调用时产生缺页中断,此时5号在内存中时间最长故将5号页面置换出去1号页面进入时,内

27、存中本来就有故不产生中断。5号页面进入时产生中断,此时1号页面存留时间最长故置换出去。1号页面调用时产生中断,此时2号页面存留时间最长故置换出去。2号页面调用时产生中断,将3号页面置换出去。3号页面调用时产生中断,置换处5号。4号页面调用时产生中断,置换出1号页面。1号页面调用产生中断置换出2号。3号页面调用不产生中断。1号调用不产生中第1瞅调度页面:页面调mi?:先进先出页面置换算法1413341314131413341314135415TTTFTTTTTTrFT缺页率:80%模拟.I图12先进先出算法模拟结果第五步:单击重置按钮,将算法改为最近最久未使用算法并单击模拟按钮,显示结果如图13

28、所示。按照算法原理页面置换过程应为:其中3,5,1号页面进入内存是因为原本内存中没有所以产生了三次中断。2号页面调用时产生缺页中断,这是3号页面最先进入内存且未被使用故将3号页面置换出去。3号页面调用时产生缺页中断,此时5号在内存中时间最长且近期未调用故将5号页面置换出去。1号页面进入时,内存中本来就有故不产生中断。5号页面进入时产生中断,此时2号页面存留时间最长并未使用故置换出去。1号页面调用时不产生中断。2号页面调用时产生中断,将3号页面置换出去。3号页面调用时产生中断,置换处5号。4号页面调用时产生中断,置换出1号页面。1号页面调用产生中断置换出2号。3号页面调用不产生中断。1号调用不产

29、生中图13最近最久未使用算法模拟第六步:单击重置按钮,将算法改为最佳置换算法并单击模拟按钮,显示结果如图14所示。按照算法原理页面置换过程应为:其中3,5,1号页面进入内存是因为原本内存中没有所以产生了三次中断。2号页面调用时产生缺页中断,这是5号页面最晚被再次调用故将5号页面置换出去。3号页面调用时不产生缺页中断。1号页面进入时,内存中本来就有故不产生中断。5号页面进入时产生中断,此时3号页面最晚被再次调用故置换出去。1号页面调用时不产生中断。2号页面调用时不产生中断。3号页面调用时产生中断,置换出2号。4号页面调用时产生中断,置换出5号页面。1号页面调用不产生中断。3号页面调用不产生中断。

30、1号调用不产生中断。5号页面调用置第15次调度页面:页面调J1顺序:最佳置换算法OPT)35123151233333335555TFFFT55222222311111111TTTTFFTFFT缺页率:53%图14最佳置换算法总结参考资料1.王万森,孙卫真,温绍洁,霍其润,汪国安.计算机操作系统原理:高等教育,20072.罗福强,白忠建,杨剑.VisualC#.NE1程序设计.:人民邮电,2012附录usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Windows.Forms;namespaceyes

31、histaticclassProgram/应用程序的主入口点。/STAThreadstaticvoidMain()Application.EnableVisualStyles();Application.SetpatibleTextRenderingDefauflat(lse);Application.Run(newForm1();Application.Run(newForm2();usingSystem;usingSystem.Collections.Generic;usingSystem.ponentModel;usingSystem.Data;usingSystem.Drawing;u

32、singSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceyeshipublicpartialclassForm2:FormconstintMaxM=3;/内存块数constintMaxN=15;/页/面调用个数publicForm2()Initializeponent();intpage_dd=newintMaxN0,0,0,0,0,0,0,0,0,0,0,0,0,0,0待调用页面号数组privateintpage_p=0;/页/面调用数组专用指针intMemery=newintMaxM-1,-1,-1;/内存块数

33、组intM1=newintMaxN;内存1号块状态数组intM2=newintMaxN;内存2号块数组intM3=newintMaxN;内存3号块数组chars=newcharMaxNT,T,T,T,T,T,T,T,T,T,T,T,T,T,T;intO_Q=newintMaxM0,0,0;/最/佳置换算法辅助数组privateintcount=0;/缺页次数计数器privateinti_add=O;/初始化页面调用数组指针变量privatevoidbtnAdd_Click(objectsender,EventArgse)if(txtAdd.Text!=)page_ddi_add=Convert

34、.ToInt32(txtAdd.Text);txtShow.Text+=txtAdd.Text+;i_add+;txtAdd.Clear();if(i_add=MaxN)txtAdd.ReadOnly=true;btnAdd.Hide();return;txtAdd.Focus();label2.Text=第+(i_add+1)+次调度页面:elseMessageBox.Show请输入调用页面!,输入为空MessageBoxButtons.OK,MessageBoxIcon.Warning);txtAdd.Focus();/*函数用于初始化页面调用数组遵循先进先出原则*/voidinit(in

35、ta,intb,intm1,intm2,intm3)for(inti=0;iMaxM&page_pMaxN;i+)bi=apage_p;调入内存OPT_F(O_Q,i);count+;m1page_p=b0;保存内存状态m2page_p=b1;m3page_p=b2;page_p+;for(intj=0;j=i&page_pMaxN;j+)if(bj=apage_p)spage_p=F;m1page_p=b0;m2page_p=b1;m3page_p=b2;OPT_F(O_Q,-1);page_p+;j=-1;/*输出内存状态和缺页率*/privatevoiddisplay(inta,intm

36、1,intm2,intm3,charc)lblshow.Text=;lblshow.Text=boBox1.Text+:n;for(inti=0;iMaxN;i+)lblshow.Text+=ai.ToString()+;lblshow.Text+=n;for(inti=0;iMaxN;i+)if(m1i=-1)lblshow.Text+=;elselblshow.Text+=m1i.ToString()+lblshow.Text+=n;for(inti=0;iMaxN;i+)if(m2i=-1)lblshow.Text+=;elselblshow.Text+=m2i.ToString()+l

37、blshow.Text+=n;for(inti=0;iMaxN;i+)if(m3i=-1)lblshow.Text+=;elselblshow.Text+=m3i.ToString()+lblshow.Text+=n;for(inti=0;iMaxN;i+)lblshow.Text+=ci+;Iblshow.Text+=r缺页率:+count*100/MaxN+%;/*模拟*/privatevoidbtnmo_Click(objectsender,EventArgse)switch(boBox1.SelectedIndex)case0:init(page_dd,Memery,M1,M2,M3)

38、;FIFO(page_dd,Memery,M1,M2,M3,s);break;case1:LRU(page_dd,Memery,M1,M2,M3,s);break;case2:init(page_dd,Memery,M1,M2,M3);OPT(page_dd,Memery,M1,M2,M3,s);break;/*先进先出算法实现*/privatevoidFIFO(inta,intb,intm1,intm2,intm3,chars)intFpage_p=page_p;intfront,rear;front=0;rear=MaxM-1;intsa;for(;Fpage_pMaxN;Fpage_p+

39、)sa=0;for(inti=0;iMaxM;i+)/检查内存中是否已有要调用的页面。if(bi=aFpage_p)m1Fpage_p=b0;m2Fpage_p=b1;m3Fpage_p=b2;sFpage_p=F;sa=1;break;if(sa=0)front=(front+1)%MaxM;rear=(rear+1)%MaxM;brear=aFpage_p;m1Fpage_p=b0;m2Fpage_p=b1;m3Fpage_p=b2;count+;elsecontinue;/*最近最久未使用算法辅助数组调整函数*/privatevoidLUR_I(inta,inte)inttemp;tem

40、p=ae;ae=1;for(inti=0;iMaxM;i+)if(aitemp&i!=e)ai+;/*最佳置换算法辅助数组调整函数*/privatevoidOPT_F(inta,inte)if(e!=-1)ae=0;for(inti=0;iMaxM;i+)if(i!=e)ai+;elsefor(inti=0;iMaxM;i+)ai+;/*最近最久未使用算法*/privatevoidLRU(inta,intb,intm1,intm2,intm3,chars)intL_Q=newintMaxM3,3,3;intsa;for(inti=0;iMaxM&page_pMaxN;i+)bi=apage_p;/调入内存count+;m1page_p=b0;保存内存状态m2page_p=b1;m3page_p=b2;LUR_I(L_Q,i);page_p+;for(intj=0;j=i&page_pMaxN;j+)if(bj=apage_p)spage_p=F;m1page_p=b0;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!