版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验四页面置换算法模拟(2)一.题目要求:设计一个虚拟存储区和内存工作区,编程序演示下述算法的具体实现过程, 并计算访问命中率:要求设计主界面以灵活选择某算法,且以下算法都要实现1)最佳置换算法(OPT):将以后永不使用的或许是在最长(未来)时间内不再 被访问的页面换出。2)先进先出算法(FIFO):淘汰最先进入内存的页面,即选择在内存中驻留 时间最久的页面予以淘汰。3)最近最久未使用算法(LRU):淘汰最近最久未被使用的页面。4)最不经常使用算法(LFU).实验目的:1、用C语言编写OPT FIFO、LRU LFU四种置换算法2、熟悉内存分页管理策略。3、了解页面置换的算法。4、掌握一般常用
2、的调度算法。5、根据方案使算法得以模拟实现。6、锻炼知识的运用能力和实践能力。三. 相关知识:1. 虚拟存储器的引入:局部性原理:程序在执行时在一较短时间内仅限于某个部分;相应的,它所 访问的存储空间也局限于某个区域, 它主要表现在以下两个方面:时间局限性和 空间局限性。2. 虚拟存储器的定义:虚拟存储器是只具有请求调入功能和置换功能,能从逻辑上对内存容量进行 扩充的一种存储器系统。3. 虚拟存储器的实现方式:分页请求系统,它是在分页系统的基础上,增加了请求调页功能、页面置换 功能所形成的页面形式虚拟存储系统。请求分段系统,它是在分段系统的基础上,增加了请求调段及分段置换功能 后,所形成的段式
3、虚拟存储系统。4. 页面分配:平均分配算法,是将系统中所有可供分配的物理块,平均分配给各个进程。 按比例分配算法,根据进程的大小按比例分配物理块。考虑优先的分配算法,把内存中可供分配的所有物理块分成两部分:一部分 按比例地分配给各进程;另一部分则根据个进程的优先权,适当的增加其相应份 额后,分配给各进程。5. 页面置换算法:常用的页面置换算法有 OPT FIFO、LRU Clock、LFU PBA等。四. 设计思想:选择置换算法,先输入所有页面号,为系统分配物理块,依次进行置换:OPT基本思想:是用一维数组pagepSIZE存储页面号序列,memerymSIZE是存储装入物理 块中的页面。数组
4、nextmSIZE记录物理块中对应页面的最后访问时间。每当发 生缺页时,就从物理块中找出最后访问时间最大的页面,调出该页,换入所缺的页面。【特别声明】若物理块中的页面都不再使用,则每次都置换物理块中第一个位置的页面。FIFO基本思想:是用队列存储内存中的页面,队列的特点是先进先出,与该算法是一致的, 所以每当发生缺页时,就从队头删除一页,而从队尾加入缺页。或者借助辅助数 组timemSIZE记录物理块中对应页面的进入时间,每次需要置换时换出进入时 间最小的页面。LRU基本思想:是用一维数组pagepSIZE存储页面号序列,memerymSIZE是存储装入物理 块中的页面。数组flag1O标记页
5、面的访问时间。每当使用页面时,刷新访问 时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的 页面。五. 流程图:如下页所示六.源代码:如下页所示【使用C语言】#i nclude <stdio.h> #in elude vconi o.h> #i nclude <stdlib.h>/*全局变量*/int mSIZE; /*物理块数 */int pSIZE; /*页面号引用串个数*/static int memery10=0; /* 物理块中的页号 */ static int page100=0; /*页面号引用串 */static int tem
6、p10010=0; /*辅助数组 */*置换算法函数*/void FIFO();void LRU();void OPT();/*辅助函数*/void print(un sig ned int t);void desig nBy();void dow nl oad();void mDelay(unsigned int Delay);/*主函数*/ void mai n()int i,k,code;system("color 0A");desig nBy();printf("丨请按任意键进行初始化操作n");printf(" 1n");p
7、rintf(" >>>");getch();system("cls");system("color 0B");printf("请输入物理块的个数(M<=10):");sca nf("%d",&mSIZE);printf("请输入页面号引用串的个数(P<=100):");sca nf("%d",&pSIZE);puts("请依次输入页面号引用串(连续输入,无需隔开):");for(i=0;iv
8、pSIZE;i+)sca nf("%1d",&pagei);dow nl oad();system("cls");system("color 0E");doputs("输入的页面号引用串为:");for(k=0;kv=(pSIZE-1)/20;k+)for(i=20*k;(i<pSIZE )&&(i<20*(k+1);i+)if(i+1)%20=0)|(i+1)%20)&&(i=pSIZE-1)prin tf("%dn",pagei);else
9、prin tf("%d ",pagei);prin tf("* * * * * * * * * * * * * * * * * * * * * * *n")prin tf("*请选择页面置换算法:ttt *n");prin tf("*n");printf("* 1.先进先出(FIFO) 2. 最近最久未使用(LRU) *n");prin tf("* 3. 最佳(OPT) 4. 退出*n");prin tf("* * * * * * * * * * * * * * *
10、 * * * * * * * *n")prin tf("请选择操作:bb");sca nf("%d",&code);switch(code)case 1:FIFO();break;case 2:LRU();break;case 3:OPT();break;case 4:system("cls");system("color 0A");designBy(); /*显示设计者信息后退出*/prin tf("丨谢谢使用页面置换算法演示器!正版授权 I n");printf("
11、; 1"1 n");exit(0);default:prin tf("输入错误,请重新输入:");prin tf("按任意键重新选择置换算法:>>>");/getch();system("cls");while (code!=4); getch();/*载入数据*/void dow nl oad()int i;system("color 0D");prin tf("i1 n");printf("丨正在载入数据,请稍候! I n"); pr
12、in tf("11 n");prin tf("Loadi ng.n");prin tf("O");for(i=0;i<51;i+)prin tf("b");for(i=0;i<50;i+)mDelay(pSIZE+mSIZE)/2);prin tf(">");>>>");prin tf("nFi ni sh.n载入成功,按任意键进入置换算法选择界面:getch();/*设置延迟*/void mDelay (un sig ned int De
13、lay)un sig ned int i;for(;Delay>0;Delay-)for(i=0;i<124;i+)prin tf(" b");/*显示设计者信息*/void desig nBy()printf(" in");printf("丨页面置换算法n");printf(" |n");void print(un sig ned int t)int i,j,k,l;int flag;for(k=0;k<=(pSIZE-1)/20;k+)for(i=20*k;(i<pSIZE )&
14、&(i<20*(k+1);i+)if(i+1)%20=0)|(i+1)%20)&&(i=pSIZE-1) prin tf("%dn",pagei);elseprin tf("%d ",pagei);for(j=0;j<mSIZE;j+)for(i=20*k;(i<mSIZE+20*k)&&(i<pSIZE);i+)if(i>=j)prin tf(" |%d|",tempij);elseprin tf(" | |"); for(i=mSIZE+20
15、*k;(i<pSIZE)&&(i<20*(k+1);i+) for(flag=0,l=0;l<mSIZE;l+) if(tempil=tempi-1l) flag+;if(flag=mSIZE)/*页面在物理块中*/printf("");elseprin tf(" |%d|",tempij);/*每行显示20个*/if(i%20=0)con ti nue;prin tf("n");prin tf("-n");printf("缺页次数:%dtt",t+mSIZE)
16、;printf("缺页率:%d/%dn",t+mSIZE,pSIZE);printf("置换次数:%dtt",t);printf("访问命中率:%d%n",(pSIZE-(t+mSIZE)*100/pSIZE);printf("n");/*计算过程延迟*/void compute。int i;printf("正在进行相关计算,请稍候");for(i=1;i<20;i+)mDelay(15);if(i%4=0)prin tf("bbbbbbbbbbbb");elsepri
17、n tf("O");for(i=0;i+<30;pri ntf("b");for(i=0;i+<30;pri ntf(” ");for(i=0;i+<30;pri ntf("b");/*先进先出页面置换算法*/void FIFO()int memery10=0;int time10=0; /*记录进入物理块的时间*/int i,j,k,m;int max=0; /*记录换出页*/int count=0; /*记录置换次数*/*前mSIZE个数直接放入*/for(i=0;i<mSIZE;i+)memer
18、yi=pagei;timei=i;for(j=0;j<mSIZE;j+) tempij=memeryj;for(i=mSIZE;i<pSIZE;i+)/*判断新页面号是否在物理块中*/for(j=0,k=0;j<mSIZE;j+)if(memeryj!=pagei)k+; if(k=mSIZE) /*如果不在物理块中*/coun t+;/*计算换出页*/max=time0<time1?0:1;for(m=2;m<mSIZE;m+) if(timem<timemax) max=m;memerymax=pagei;timemax=i; /*记录该页进入物理块的时
19、间*/for(j=0;j<mSIZE;j+)tempij=memeryj;elsefor(j=0;j<mSIZE;j+)tempij=memeryj;compute();prin t(co un t);/*最近最久未使用置换算法*/void LRU()int memery10=0;int flag10=0; /*记录页面的访问时间*/int i,j,k,m;int max=0; /*记录换出页*/int count=0; /*记录置换次数*/*前mSIZE个数直接放入*/for(i=0;i<mSIZE;i+)memeryi=pagei;flagi=i;for(j=0;j<
20、;mSIZE;j+) tempij=memeryj;for(i=mSIZE;i<pSIZE;i+)/*判断新页面号是否在物理块中*/for(j=0,k=0;j<mSIZE;j+)if(memeryj!=pagei)k+;elseflagj=i; /*刷新该页的访问时间*/if(k=mSIZE) /* 如果不在物理块中*/coun t+;/*计算换出页*/max=flag0vflag1?0:1; for(m=2;m<mSIZE;m+) if(flagmvflagmax) max=m;memerymax=pagei;flagmax=i; /*记录该页的访问时间*/for(j=0;j<mSIZE;j+) tempij=memeryj;elsefor(j=0;j<mSIZE;j+) tempij=memeryj;compute();prin t(co un t);/*最佳置换算法*/void OPT()int memery10=0;int next10=0; /*记录下一次访问时间*/int i,j,k,l,m;int max; /*记录换出页*/int count=0; /*记录置换次数*/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025关于公司合作经营合同
- 2025上海市微型计算机商品采购合同(合同范本)
- 2025各行业劳动合同范本
- 科技企业的合作伙伴关系管理与优化策略研究
- 校园创新文化与素质拓展教育策略
- 教育新模式下的学生问题解决能力培养
- 科技助力下的老年人日常健康监测与管理
- 跨文化交流与学生国际视野的培养
- 【平安证券】24年全球服务器出货恢复增长AI服务器占比有望达12%
- 二零二五年度窗帘清洗消毒与环保材料使用合同范本3篇
- 【寒假预习】专题04 阅读理解 20篇 集训-2025年人教版(PEP)六年级英语下册寒假提前学(含答案)
- 2024年智能监狱安防监控工程合同3篇
- 2024年度窑炉施工协议详例细则版B版
- 幼儿园篮球课培训
- 【企业盈利能力探析的国内外文献综述2400字】
- 统编版(2024新版)七年级《道德与法治》上册第一单元《少年有梦》单元测试卷(含答案)
- 100道20以内的口算题共20份
- 高三完形填空专项训练单选(部分答案)
- 护理查房高钾血症
- 项目监理策划方案汇报
- 《职业培训师的培训》课件
评论
0/150
提交评论