ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:31.48KB ,
资源ID:28560187      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28560187.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验四页面置换算法代码一.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验四页面置换算法代码一.docx

1、实验四页面置换算法代码一实验四页面置换算法模拟(2)一.题目要求:设计一个虚拟存储区和内存工作区,编程序演示下述算法的具体实现过程, 并计算访问命中率:要求设计主界面以灵活选择某算法,且以下算法都要实现1) 最佳置换算法(OPT):将以后永不使用的或许是在最长(未来)时间内不再 被访问的页面换出。2) 先进先出算法(FIFO):淘汰最先进入内存的页面,即选择在内存中驻留 时间最久的页面予以淘汰。3) 最近最久未使用算法(LRU):淘汰最近最久未被使用的页面。4) 最不经常使用算法(LFU)实验目的:1、 用C语言编写OPT FIFO、LRU LFU四种置换算法2、 熟悉内存分页管理策略。3、

2、了解页面置换的算法。4、 掌握一般常用的调度算法。5、 根据方案使算法得以模拟实现。6、 锻炼知识的运用能力和实践能力。3.相关知识:1 虚拟存储器的引入:局部性原理:程序在执行时在一较短时间内仅限于某个部分;相应的,它所 访问的存储空间也局限于某个区域, 它主要表现在以下两个方面:时间局限性和 空间局限性。2.虚拟存储器的定义:虚拟存储器是只具有请求调入功能和置换功能,能从逻辑上对内存容量进行 扩充的一种存储器系统。3.虚拟存储器的实现方式:分页请求系统,它是在分页系统的基础上,增加了请求调页功能、页面置换 功能所形成的页面形式虚拟存储系统。请求分段系统,它是在分段系统的基础上,增加了请求调

3、段及分段置换功能 后,所形成的段式虚拟存储系统。4.页面分配:平均分配算法,是将系统中所有可供分配的物理块,平均分配给各个进程。按比例分配算法,根据进程的大小按比例分配物理块。考虑优先的分配算法,把内存中可供分配的所有物理块分成两部分:一部分 按比例地分配给各进程;另一部分则根据个进程的优先权,适当的增加其相应份 额后,分配给各进程。5.页面置换算法:常用的页面置换算法有 OPT FIFO、LRU Clock、LFU PBA等。4.设计思想:选择置换算法,先输入所有页面号,为系统分配物理块,依次进行置换:OPT基本思想:是用一维数组pagepSIZE存储页面号序列,memerymSIZE是存储

4、装入物理 块中的页面。数组nextmSIZE记录物理块中对应页面的最后访问时间。每当发 生缺页时,就从物理块中找出最后访问时间最大的页面, 调出该页,换入所缺的页面。【特别声明】若物理块中的页面都不再使用,则每次都置换物理块中第一个位置的页面。FIFO基本思想:是用队列存储内存中的页面,队列的特点是先进先出,与该算法是一致的, 所以每当发生缺页时,就从队头删除一页,而从队尾加入缺页。或者借助辅助数 组timemSIZE记录物理块中对应页面的进入时间,每次需要置换时换出进入时 间最小的页面。LRU基本思想:是用一维数组pagepSIZE存储页面号序列,memerymSIZE是存储装入物理 块中的

5、页面。数组flag1O标记页面的访问时间。每当使用页面时,刷新访问 时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的 页面。5.流程图:如下页所示六.源代码:如下页所示【使用C语言】#i nclude #in elude vconi o.h#i nclude /*全局变量*/int mSIZE; /* 物理块数 */int pSIZE; /* 页面号引用串个数*/static int memery10=0; /* 物理块中的页号 */ static int page100=0; /* 页面号引用串 */static int temp10010=0; /* 辅助数组 */*

6、置换算法函数*/void FIFO();void LRU();void OPT();/*辅助函数*/void print(un sig ned int t);void desig nBy();void dow nl oad();void mDelay (un sig ned int Delay);/*主函数*/ void mai n()int i,k,code;system(color 0A);desig nBy();printf(丨请按任意键进行初始化操作 n);printf( 1 n);printf( );getch();system(cls);system(color 0B);print

7、f( 请输入物理块的个数(M=10):);sca nf(%d,&mSIZE);printf( 请输入页面号引用串的个数(P=100):);sca nf(%d,&pSIZE);puts(请依次输入页面号引用串(连续输入,无需隔开):);for(i=0;ivpSIZE;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;(ipSIZE )&(i);/getch();system(cls);while (cod

8、e!=4);getch();/*载入数据*/void dow nl oad()int i;system(color 0D);prin tf( i 1 n);printf(丨正在载入数据,请稍候! I n); prin tf( 1 1 n);prin tf(Loadi ng.n);prin tf( O);for(i=0;i51;i+)prin tf(b);for(i=0;i););prin tf(nFi ni sh.n 载入成功,按任意键进入置换算法选择界面:getch();/*设置延迟*/void mDelay (un sig ned int Delay)un sig ned int i;fo

9、r(;Delay0;Delay-)for(i=0;i124;i+)prin tf( b);/*显示设计者信息*/void desig nBy()printf( i n);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;(ipSIZE )&(i20*(k+1);i+)if(i+1)%20=0)|(i+1)%20)&(i=pSIZE-1) prin tf(%dn,pagei);elseprin tf(%d ,pag

10、ei);for(j=0;jmSIZE;j+)for(i=20*k;(imSIZE+20*k)&(i=j)prin tf( |%d|,tempij);elseprin tf( | |); for(i=mSIZE+20*k;(ipSIZE)&(i20*(k+1);i+) for(flag=0,l=0;lmSIZE;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(-

11、n);printf(缺页次数:%dtt,t+mSIZE);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;i20;i+)mDelay(15);if(i%4=0)prin tf(bbbbbb bbbbbb);elseprin tf( O);for(i=0;i+30;pri ntf(b);for(i=0;i+30;p

12、ri 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;imSIZE;i+)memeryi=pagei;timei=i;for(j=0;jmSIZE;j+) tempij=memeryj;for(i=mSIZE;ipSIZE;i+)/*判断新页面号是否在物理块中*/for(j=0,k=0

13、;jmSIZE;j+)if(memeryj!=pagei)k+;if(k=mSIZE) /* 如果不在物理块中*/coun t+;/*计算换出页*/max=time0time1?0:1;for(m=2;mmSIZE;m+) if(timemtimemax) max=m;memerymax=pagei;timemax=i; /* 记录该页进入物理块的时间*/for(j=0;jmSIZE;j+)tempij=memeryj;elsefor(j=0;jmSIZE;j+)tempij=memeryj;compute();prin t(co un t);/*最近最久未使用置换算法*/void LRU()

14、int memery10=0;int flag10=0; /* 记录页面的访问时间*/int i,j,k,m;int max=0; /* 记录换出页*/int count=0; /* 记录置换次数*/*前mSIZE个数直接放入*/for(i=0;imSIZE;i+)memeryi=pagei;flagi=i;for(j=0;jmSIZE;j+) tempij=memeryj;for(i=mSIZE;ipSIZE;i+)/*判断新页面号是否在物理块中*/for(j=0,k=0;jmSIZE;j+)if(memeryj!=pagei)k+;elseflagj=i; /* 刷新该页的访问时间*/if

15、(k=mSIZE) /* 如果不在物理块中*/coun t+;/*计算换出页*/max=flag0vflag1?0:1; for(m=2;mmSIZE;m+) if(flagmvflagmax) max=m;memerymax=pagei;flagmax=i; /* 记录该页的访问时间*/for(j=0;jmSIZE;j+) tempij=memeryj;elsefor(j=0;jmSIZE;j+) tempij=memeryj;compute();prin t(co un t);/*最佳置换算法*/void OPT()int memery10=0;int next10=0; /* 记录下一次

16、访问时间*/int i,j,k,l,m;int max; /* 记录换出页*/int count=0; /* 记录置换次数*/*前mSIZE个数直接放入*/for(i=0;imSIZE;i+)memeryi=pagei;for(j=0;jmSIZE;j+) tempij=memeryj;for(i=mSIZE;ipSIZE;i+)/*判断新页面号是否在物理块中*/for(j=0,k=0;jmSIZE;j+)if(memeryj!=pagei)k+;if(k=mSIZE) /* 如果不在物理块中*/coun t+;/*得到物理快中各页下一次访问时间*/for(m=0;mmSIZE;m+)for(

17、l=i+1;l=next1?0:1;for(m=2;mn extmax)max=m;/*下一次访问时间都为pSIZE,则置换物理块中第一个*/memerymax=pagei;for(j=0;jmSIZE;j+)tempij=memeryj;else for(j=0;jmSIZE;j+)tempij=memeryj;compute();prin t(co un t);七.参考文献:1.严蔚敏,吴伟民数据结构清华大学出版社,2005.112谭浩强.C语言程序设计.清华大学出版社,2005.113.于帆,赵妮.程序设计基础(C语言版).清华大学出版社,2006.114.汤小丹,梁红兵,哲凤屏,汤子瀛.计算机操作系统.西安电子科技大 学出版社,2007.5欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议, 策划案计划书,学习资料等等打造全网一站式需求

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1