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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

请求页式存储管理中常用页面置换算法.docx

1、请求页式存储管理中常用页面置换算法计算机操作系统实 验 报 告课程名称计算机操作系统实验项目名称请求页式存储管理中常用页面置换算法模拟学号20111214034班级计1103姓名韩瑶专业计算机科学与技术实验地点12J-661实验室 济南大学信息科学与技术学院2013年xx月xx日一、实验概述1. 实验名称 请求页式存储管理中常用页面置换算法管理2. 实验目的(1)了解内存分页管理策略(2)掌握调页策略(3)掌握一般常用的调度算法 (4)学会各种存储分配算法的实现方法。(5)了解页面大小和内存实际容量对命中率的影响3. 实验内容(1)采用页式分配存储方案,通过分别计算不同算法的命中率来比较算法的

2、优劣,同时也考虑页面大小及内存实际容量对命中率的影响;(2)实现OPT 算法 (最优置换算法)、LRU 算法 (Least Recently)、 FIFO 算法 (First IN First Out)的模拟;(3)使用某种编程语言模拟页面置换算法。二、实验环境C语言三、实验过程1. 设计思路和流程图选择置换算法,先输入所有页面号,为系统分配物理块,依次进行置换将页号放入物理块中,编号加1引用串编号大于物理块数?载入页号序列,从第0个得到页号开始页号在物理块中?根据选择的置换算法完成置换页号序列载完?结束是否是是是是2. 算法实现(1)OPT基本思想:是用一维数组pagepSIZE存储页面号序

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

4、用页面时,刷新访问时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的页面。3.源程序并附上注释#include #include /*全局变量*/int mSIZE; /*物理块数*/int pSIZE; /*页面号引用串个数*/static int memery10=0; /*物理块中的页号*/static int page100=0; /*页面号引用串*/static int temp10010=0; /*辅助数组*/*置换算法函数*/void FIFO();void LRU();void OPT();/*辅助函数*/void print(unsigned int t)

5、;void designBy();void download();void mDelay(unsigned int Delay);/*主函数*/void main() int i,k,code; system(color 0A); designBy(); printf(请按任意键进行初始化操作. n); printf(n); printf( ); getch(); system(cls); system(color 0B); printf(请输入物理块的个数(M=10):); scanf(%d,&mSIZE); printf(请输入页面号引用串的个数(P=100):); scanf(%d,&p

6、SIZE); puts(请依次输入页面号引用串(连续输入,无需隔开):); for(i=0;ipSIZE;i+) scanf(%1d,&pagei); download(); system(cls); system(color 0E); do puts(输入的页面号引用串为:); for(k=0;k=(pSIZE-1)/20;k+) for(i=20*k;(ipSIZE)&(i); getch(); system(cls); while (code!=4); getch();/*载入数据*/void download() int i; system(color 0D); printf(n);

7、printf(正在载入数据,请稍候 !n); printf(n); printf(Loading.n); printf( O); for(i=0;i51;i+) printf(b); for(i=0;i); printf(nFinish.n载入成功,按任意键进入置换算法选择界面:); getch();/*设置延迟*/void mDelay(unsigned int Delay) unsigned int i; for(;Delay0;Delay-) for(i=0;i124;i+) printf( b); /*显示设计者信息*/ void designBy() printf(n); print

8、f( 课题三:页面置换算法 n); printf( 学号:20111214034 n); printf( 姓名:韩瑶 n); printf(n);void print(unsigned 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) printf(%dn,pagei); else printf(%d ,pagei); for(j=0;jmSIZE;j+) for(i=20*k;(imSIZ

9、E+20*k)&(i=j) printf( |%d|,tempij); else printf( | |); 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( ); else printf( |%d|,tempij); /*每行显示20个*/ if(i%20=0) continue; printf(n); printf(-n); printf(缺页次数:%dtt,t+mSIZE); prin

10、tf(缺页率:%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) printf(bbbbbb bbbbbb); else printf(); for(i=0;i+30;printf(b); for(i=0;i+30;printf( ); for(i=0;i+30

11、;printf(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;jmSIZE;j+) i

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

13、t 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+; else flagj=i; /*刷新

14、该页的访问时间*/ if(k=mSIZE) /*如果不在物理块中*/ count+; /*计算换出页*/ max=flag0flag1?0:1; for(m=2;mmSIZE;m+) if(flagmflagmax) max=m; memerymax=pagei; flagmax=i; /*记录该页的访问时间*/ for(j=0;jmSIZE;j+) tempij=memeryj; else for(j=0;jmSIZE;j+) tempij=memeryj; compute(); print(count);/*最佳置换算法*/void OPT() int memery10=0; int ne

15、xt10=0; /*记录下一次访问时间*/ 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) /*如果不在物理块中*/ count+; /*得到物理快中各页下一次访

16、问时间*/ for(m=0;mmSIZE;m+) for(l=i+1;l=next1?0:1; for(m=2;mnextmax) max=m; /*下一次访问时间都为pSIZE,则置换物理块中第一个*/ memerymax=pagei; for(j=0;jmSIZE;j+) tempij=memeryj; else for(j=0;jmSIZE;j+) tempij=memeryj; compute(); print(count);6. 程序运行时的初值和运行结果1. 按任意键进行初始化:2. 载入数据:3. 进入置换算法选择界面:4.运算中延迟操作5.三种算法演示结果:四、实验体会掌握了一般的调度算法,了解了页面大小和内存实际容量对命中率的影响

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

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