操作系统原理课程设计-页面置换算法模拟程序【实惠】.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《操作系统原理课程设计-页面置换算法模拟程序【实惠】.doc》由会员分享,可在线阅读,更多相关《操作系统原理课程设计-页面置换算法模拟程序【实惠】.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数学与计算机学院课程设计说明书课 程 名 称: 操作系统原理-课程设计 课 程 代 码: 题 目: 页面置换算法模拟程序 年级/专业/班: 学 生 姓 名: 学 号: 开 始 时 间: 2010 年 月 日完 成 时 间: 2011 年 月 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总 分(100)指导教师签名: 年 月 日 目 录 1 引 言11.1 问题的提出1国内外研究的现状1 任务与分析22需求分析23开发平台23.1 开发工具23.1 开发语言24概要设计34.1 总体设计框图35详细设计4代码分析结果65.11 数据结构65
2、.12 FIFO具体函数及设计实现6具体函数及设计实现9调用关系图146测试14进入界面及产生页面走向14算法及查看结果15算法及查看结果16继续进入主界面及产生页面走向16调度算法及结果177 总结与体会18参考文献19摘 要在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。在进程运行过程中,若其所要访问的页面不在内存需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据,送磁盘的对换区中。
3、但应将哪个页面调出,所以需要根据一定的算法来确定。常用的算法有先进先出置换算法(FIFO), 最近最久未使用置换算法(LRU)和最佳置换算法页面置换算法的模拟程序,并测试。关键词:操作系统; 页面置换算法模拟; 进程调度; FIFO; LRU 1 引 言 1.1 问题的提出 随着硬件技术的发展,各式各样的大容量存储设备相继出现,一台计算机上可能存在多种外存储设备。不同存储设备有着不同的读写速度,同一种设备的读写速度有可能也会相差很大。因此在多种具有不同读写速度的外存储设备的环境下,选择一种合适的页面淘汰算法,对整个系统的性能会有很大的提高。在进程运行过程中,若其所要访问的页面不在内存需把它们调
4、入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据,送磁盘的对换区中。但应将哪个页面调出,所以需要根据一定的算法来确定。如果能够很好的使用页面置换将大大节省内存的额外开销。 1966年Belady在理论上提出最优页面置换算法(OPT),此外还有先进先出(FIFO),最少使用置换算法(LRU)。不同存储设备有着不同的读写速度,同一种设备的读写速度有可能也会相差很大。因此在多种具有不同读写速度的外存储设备的环境下,选择一种合适的页面淘汰算法,对整个系统的性能会有很大的提高。任务与分析 本课题主要的目的是编制页面置换算法FIFO和LRU的模拟程序,并模拟其在内
5、存的分配过程。同时根据页面走向,分别采用FIFO和LRU算法进行页面置换,统计缺页率;为简化操作,在淘汰一页时,只将该页在页表中抹去,而不再判断它是否被改写过,也不将它写回到辅存。2需求分析本程序实现了操作系统中页式虚拟存储管理中缺页中断理想型淘汰算法,该算法在访问串中将来再也不出现的或是在离当前最远的位置上出现的页淘汰掉。这样,淘汰掉该页将不会造成因需要访问该页又立即把它调入的现象。该程序能按要求随机确定内存大小,随机产生页面数,进程数,每个进程的页数,给进程分配的页数等,然后运用理想型淘汰算法对每个进程进行计算缺页数,缺页率,被淘汰的序列等功能。3开发平台3.1 开发工具3.1 开发语言V
6、C+语言4概要设计4.1 总体设计框图 进入程序 输入页面数页面走向最少使用置换先进先出置换随即产生用户输入5详细设计 开始输入页面数0手动输入1随机产生(0)FIFO (1)OPT 输入数据输入个数输出FIFO结果输出OPT结果是否输入Y/y结束输出另外一种结果是否继续(N/n)图5.1详细设计框图开始初始化数据,确定页面走向判断页号是否等于页面流号算出内存中各个页号相对于当前位置,并置换了学校,也不免想到自己明年将要离开的情景,心里也感觉到一种凄凉. 原来一直都想着要考研的,经过几个月的考虑,发现自己或许不适合考研吧,复习总是那么得不尽人意。离开了老师的约束和同学的相互促进,我发现自己学习
7、总是静不下心来,效率一直不高。而且我觉得自己对本专业不是很感兴趣,害怕自己又浪费掉三年,而学不到什么东西。一直就这样犹豫着,从三月到六月,现在终于决定放弃我的考研路。考研或许真的就不适合我吧! 决定不考研之后,我就面临着工作的问题,可是我拿什么来面对工作呢?回想起这几年,感觉自己真的学到的太少了。今天和一个老同学聊天,他也这么说,感觉自己在大学又白混了三年。暑假快要到了,我想在学校学点东西,可是具体的又不知道学什么。又怕武汉的天气太热,学不了什么。不过怎么来说,我一定要为工作好好准备一下。的距离淘汰距离最大的那个页号,并进行换页距离是否相等比较出现的次数淘汰出现次数少的页号,并进行换页输出淘汰
8、的页号模块结束否是是否图5.2为置换方法的流程图代码分析结果5.11 数据结构int m, int need,int n, result1020,int state,int count1;5.12 FIFO具体函数及设计实现FIFO流程图开始页面大小m,页面走向放在head结果表result和状态表count赋值为-1Result是否为空有是否在页表内装入页表中,缺页次数count+不在替换出先进入结果表中的页面在步数page+统计缺页数和缺页率输出过程及结果结束FIFO函数实现void FIFO(int m, int need,int n) /m分配物理页面大小,n需要页面数组的最大值int
9、 p=0; /当前请求的页面int del=0; /步数int count120;double count=0;/缺页数double que=0;/缺页率int result1020;/结果表for(int i =0;i=m;i+) for(int j=0;j=p) int k=needp; if(p0) for(int i=0;i=m;i+)resultip=resultip-1; int f1=0; /首先看是否有空位置或者已经存在请求的页面 for(int i =0;i=m;i+) if(resultip=-1) resultip=k; f1=1; i=m+1; count1p=k; c
10、ount=count+1; p=p+1; else if(resultip=k)f1=1;p=p+1;i=m+1; if(f1=1) continue; /这里发生替换 resultdelp=k;count1p=k;count=count+1; p=p+1;del=(del+1)%(m+1); cout*FIFO过程如下表*endl; for(int t3=0;t3=n;t3+)/输出原来的页面coutneedt3 ; coutendl; for(int t0 =0;t0=m;t0+)/判断页表是否填满 for(int t1=0;t1=n;t1+)if(resultt0t1!=-1)coutr
11、esultt0t1 ;else cout ;coutendl; for(int j1=0;j1=n;j1+)/对于缺页的打,否则打 if(count1j1!=-1) cout;else cout; coutendl;que=count/(n+1);/统计缺页次数和缺页率cout缺页次数为:countendl;cout缺页率count/n+1=queendl;cout*endl;LRU流程图开始页面大小m,页面走向放在head给表result和状态表state分配空间Result是否为空有是否在页表内装入页表中,缺页次数num+不在替换出最久没使用结果表中的页面在赋值给hsivek统计缺页数和缺
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实惠 操作系统 原理 课程设计 页面 置换 算法 模拟 程序
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内