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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

操作系统课程设计实验报告模板.docx

1、操作系统课程设计实验报告模板操作系统课程设计实验报告书题 目:页面置换算法之先进先出题目编号:18院 系:信息科学与技术学院班 级:12级1班小组成员:组长:张海洋学号:12051004组员:李奔学号:120510052014-12-31目 录一、课程设计任务划分 1二、基本原理 2(一)页面置换算法定义(二)所使用的算法(三)设计思想三、基本思路 3(一)流程图(二)变量(三)所用函数四、调试及实验结果 4五、个人体会 5一、课程设计任务划分 (此处编辑小组成员的具体分工)成员具体分工张海洋设计项目流程程序合并实验报告书书写李奔程序调试网上搜索程序资料心得体会二、基本原理(题目所涉及课程内容

2、,用到了那种算法,该算法的基本原理是什么?500字以上,可加页,下同)(一)页面置换算法定义在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。(二)所使用的算法 1) 最佳置换算法(OPT):将以后永不使用的或许是在最 长(未来)时间内 不再被访问的页面换出。 2) 先进先出算法(FIFO):淘汰最先进入内存的页面,即 选择在内存中驻留时间最久的页面予以淘汰。 3) 最近最久未使用算法(LRU):淘汰最近最久未被使用 的页面。(三)设计思

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

4、pSIZE存储页面号序列,memerymSIZE是存储装入物理块中的页面。数组flag10标记页面的访问时间。每当使用页面时,刷新访问时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的页面。三、基本思路(源代码中定义了哪些变量,用到了哪些函数,画出流程图) 总的流程图源代码实验环境:vc+,编程语言:c语言#include #include /*全局变量*/int mSIZE; /*物理块数*/int pSIZE; /*页面号引用串个数*/static int memery10=0; /*物理块中的页号*/static int page100=0; /*页面号引用串*/st

5、atic int temp10010=0; /*辅助数组*/*置换算法函数*/void FIFO();void LRU();void OPT();/*辅助函数*/void print(unsigned int t);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(cl

6、s); system(color 0B); printf(请输入物理块的个数(M=10):); scanf(%d,&mSIZE); printf(请输入页面号引用串的个数(P=100):); scanf(%d,&pSIZE); 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);

7、getch(); system(cls); while (code!=4); getch();/*载入数据*/void download() int i; system(color 0D); printf(n); 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) un

8、signed int i; for(;Delay0;Delay-) for(i=0;i124;i+) printf( b); /*显示设计者信息*/ void designBy() printf(n); printf( 页面置换算法 n); printf( 12级1班 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+

9、1)%20)&(i=pSIZE-1) printf(%dn,pagei); else printf(%d ,pagei); for(j=0;jmSIZE;j+) for(i=20*k;(imSIZE+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

10、|,tempij); /*每行显示20个*/ if(i%20=0) continue; printf(n); printf(-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)

11、printf(bbbbbb bbbbbb); else printf(); for(i=0;i+30;printf(b); for(i=0;i+30;printf( ); for(i=0;i+30;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; fo

12、r(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+; /*计算换出页*/ max=time0time1?0:1; for(m=2;mmSIZE;m+) if(timemtimemax) max=m; memerymax=pagei; timemax=i; /*记录该页进入物理块的时间*/ for(j=0;jmSIZE;j+) tempij=mem

13、eryj; else for(j=0;jmSIZE;j+) tempij=memeryj; compute(); print(count);/*最近最久未使用置换算法*/void LRU() 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=m

14、SIZE;ipSIZE;i+) /*判断新页面号是否在物理块中*/ for(j=0,k=0;jmSIZE;j+) if(memeryj!=pagei) k+; else flagj=i; /*刷新该页的访问时间*/ 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(

15、j=0;jmSIZE;j+) tempij=memeryj; compute(); print(count);/*最佳置换算法*/void OPT() int memery10=0; int next10=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+) /*判断新页面号是否在物理

16、块中*/ for(j=0,k=0;jmSIZE;j+) if(memeryj!=pagei) k+; if(k=mSIZE) /*如果不在物理块中*/ count+; /*得到物理快中各页下一次访问时间*/ 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

17、(); print(count);四、调试及实验结果(此处放源代码编辑执行后截图,可多张图片)第一组数据:1.运行结果2. 按任意键进行初始化: 3. 载入数据:4. 进入置换算法选择界面:5.运算中延迟操作:6. 三种算法演示结果 7.退出算法第二组数据:1.运行结果2按任意键进行初始化:3.载入数据:4.进入置换算法选择界面:5.运算中延迟操作: 6. 三种算法演示结果 7.退出算法五、个人体会 给出设计文档和调试编码的感受,或对原理知识的理解。(100字以上) 由于时间有限,本次设计完成的并不是很完美,下面从以下几点来说明本次课程设计的个人体会: 1.本次课程设计中做的比较好的地方:做的

18、好的地方就是在于对题目意思的正确理解,以及在此基础上的模型设计。最开始一看题目的时候感觉很迷茫,有点不知道如何着手,等静下心来仔细分析了程序,明确了目标,明确了思路,才对程序有了一个较为完整的实现。2.做得不太好的地方,以及以后如何改正: 做得不太好的地方就是不能把自己所学的C知识和本次课程设计的相关知识很好的结合起来,以至于没有很好的表达出本次课程设计的细节。在以后的过程中,我会运用本次课程设计中所学的知识,以及思考问题的方式和方法,争取能够发扬优点,尽量克服不细心,不严谨等缺点。 3.从本次设计中得到的收获: 通过本次课程设计,我学会了综合运用所学相关知识的能力,动手能力以及独立思考问题的能力。下面具体的收一个边学程序是遇到的困难,首先就是如何把想法变为做法的问题,最开始一拿到题目,我就觉得无从下手,因为我的阅历,不知道如何把这样一个问题变成程序,变成能够让人一目了然的东西,于是,我就先写下了p,v操作的实现过程,因为这个对我来说简单一些,然后,在此基础之上,就好办了,结果最后用了2个函数就解决问题了,所以,我觉得有时候思考问题不要太死脑筋,换一个角度的话,也许会更好,说不定就能达到事半功倍的效果。

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

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