




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程设计说明书 题目: 页面置换算法程序设计 院 系: 计算机科学与工程 专业班级: 学 号: 学生姓名: 指导教师: 2014年 11月 21 日 计算机 院系 计算机 教研室学 号学生姓名专业(班级)设计题目页面置换算法程序设计设计技术参数系统平台:Windows 7/Windows XP开发工具:VC+6.0设计要求编写程序实现:(1)先进先出页面置换算法(FIFO)(2)最近最久未使用页面置换算法(LRU)(3)最佳置换页面置换算法(OPT)设计一个虚拟存储区和内存工作区,编程序演示以上三种算法的具体实现过程,并计算访问命中率。演示页面置换的三种算法。通过随机数产生一个指令序列,将指令序列转换成为页地址流。计算并输出各种算法在不同内存容量下的命中率。工作量 要求设计说明书的字数在3000字以上。工作计划2014.12.01-12.02 根据课程设计的要求,查找相关资料,完成需求分析;2014.12.03-12.05 进行系统的概要设计;2014.12.06-12.11 进行系统的详细设计和源代码的书写;2014.12.12-12.14 对系统进行调试分析,写出课程设计报告。参考资料1 龚沛曾等编.C/C+程序设计教程.北京:高等教育出版社,2004.2 谭浩强编著.C程序设计(第二版).北京:清华大学出版社,1999.3 张尧学等编著.计算机操作系统教程.北京:清华大学出版社,2011.4 孟庆昌等编. 操作系统. 北京:电子工业出版社,2009.5 刘腾红等编著. 操作系统. 北京:中国铁道出版社,2008.6 汤子瀛等编著. 计算机操作系统.西安:西安电子科技大学出版社,2011指导教师签字教研室主任签字2014年11月21日指导教师评语:成绩: 指导教师: 年 月 日安徽理工大学课程设计(论文)成绩评定表目 录1 问题描述12 需求分析13 概要设计13.1 设计思路13.2 功能模块设计23.3 算法流程图24 详细设计44.1 相关知识44.2 置换算法函数代码设计44.3 辅助函数代码设计105 调试分析126 测试结果137 设计体会15参考文献15II1 问题描述编写程序实现:(1)先进先出页面置换算法(FIFO)(2)最近最久未使用页面置换算法(LRU)(3)最佳置换页面置换算法(OPT)设计一个虚拟存储区和内存工作区,编程序演示以上三种算法的具体实现过程,并计算访问命中率。演示页面置换的三种算法。通过随机数产生一个指令序列,将指令序列转换成为页地址流。计算并输出各种算法在不同内存容量下的命中率。2 需求分析在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。在进程运行过程中,若其所要访问的页面不在内存需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据,送磁盘的对换区中。但应将哪个页面调出,所以需要根据一定的算法来确定。常用的算法有先进先出置换算法(FIFO)、最近最久未使用置换算法(LRU)和最佳置换算法(OPT),该设计是在VC+6.0环境下用上述三种算法来实现页面置换算法的模拟程序,然后计算访问命中率,并测试结果。3 概要设计3.1 设计思路选择置换算法,先输入所有页面号,为系统分配物理块,依次进行置换:FIFO基本思想:是用队列存储内存中的页面,队列的特点是先进先出,与该算法是一致的,所以每当发生缺页时,就从队头删除一页,而从队尾加入缺页。或者借助辅助数组timemSIZE记录物理块中对应页面的进入时间,每次需要置换时换出进入时间最小的页面。LRU基本思想:是用一维数组pagepSIZE存储页面号序列,memerymSIZE是存储装入物理块中的页面。数组flag10标记页面的访问时间。每当使用页面时,刷新访问时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的页面。OPT基本思想:是用一维数组pagepSIZE存储页面号序列,memerymSIZE是存储装入物理块中的页面。数组nextmSIZE记录物理块中对应页面的最后访问时间。每当发生缺页时,就从物理块中找出最后访问时间最大的页面,调出该页,换入所缺的页面。3.2 功能模块设计(1)置换算法函数:void FIFO( ):先进先出页面置换算法void LRU( ):最近最久未使用置换算法void OPT( ):最佳置换算法(2)辅助函数:void output(int t):计算输出void showInfo( ):显示信息voiddownload( ):载入数据voidmDelay(int Delay):设置延迟void compute( ):计算过程延迟3.3 算法流程图算法流程图如图1所示。图1 算法流程图4 详细设计4.1 相关知识(1)虚拟存储器的引入:局部性原理:程序在执行时在一较短时间内仅限于某个部分;相应的,它所访问的存储空间也局限于某个区域,它主要表现在以下两个方面:时间局限性和空间局限性。(2)虚拟存储器的定义:虚拟存储器是只具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。(3)虚拟存储器的实现方式:分页请求系统,它是在分页系统的基础上,增加了请求调页功能、页面置换功能所形成的页面形式虚拟存储系统。请求分段系统,它是在分段系统的基础上,增加了请求调段及分段置换功能后,所形成的段式虚拟存储系统。(4)页面分配:平均分配算法,是将系统中所有可供分配的物理块,平均分配给各个进程。按比例分配算法,根据进程的大小按比例分配物理块。考虑优先的分配算法,把内存中可供分配的所有物理块分成两部分:一部分按比例地分配给各进程;另一部分则根据个进程的优先权,适当的增加其相应份额后,分配给各进程。(5)页面置换算法:常用的页面置换算法有FIFO、LRU、OPT等。4.2 置换算法函数代码设计(1)先进先出页面置换算法设计算法思想:借助辅助数组timemSIZE记录物理块中对应页面的进入时间,每次需要置换时换出进入时间最小的页面。其功能实现代码如下: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+)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=memeryj;elsefor(j=0;jmSIZE;j+)tempij=memeryj;compute();output(count);(2)最近最久未使用置换算法设计算法思想:用一维数组pagepSIZE存储页面号序列,memerymSIZE是存储装入物理块中的页面。数组flag10标记页面的访问时间。每当使用页面时,刷新访问时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的页面。其功能实现代码如下: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=mSIZE;ipSIZE;i+)/*判断新页面号是否在物理块中*/for(j=0,k=0;jmSIZE;j+)if(memeryj!=pagei)k+;elseflagj=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;elsefor(j=0;jmSIZE;j+)tempij=memeryj;compute();output(count);(3)最佳置换算法设计算法思想:用一维数组pagepSIZE存储页面号序列,memerymSIZE是存储装入物理块中的页面。数组nextmSIZE记录物理块中对应页面的最后访问时间。每当发生缺页时,就从物理块中找出最后访问时间最大的页面,调出该页,换入所缺的页面。其功能实现代码如下: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+)/*判断新页面号是否在物理块中*/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;elsefor(j=0;jmSIZE;j+)tempij=memeryj;compute();output(count);4.3 辅助函数代码设计(1)计算输出void output(int t)函数设计其功能实现代码如下:void output(int t)int i,j,k,l;int flag;for(k=0;k=(pSIZE-1)/20;k+)/*每行显示20个*/for(i=20*k;(ipSIZE)&(i20*(k+1);i+)if(i+1)%20=0)|(i+1)%20)&(i=pSIZE-1)printf( %dn,pagei);elseprintf( %d ,pagei);for(j=0;jmSIZE;j+)for(i=20*k;(imSIZE+20*k)&(i=j)printf(|%d|,tempij);elseprintf(| |);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( );elseprintf(|%d|,tempij);if(i%100=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);(2)计算过程延迟void compute( )函数设计其功能实现代码如下: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;printf(b);5 调试分析(1)系统主界面如图2所示。图2 系统主界面(2)初始化数据如图3所示。图3 初始化数据(3)选择界面如图4所示。图4 选择界面6 测试结果(1) 测试先进先出(FIFO),结果正确,如图5所示。图5 先进先出(FIFO)测试(2)测试最近最久未使用(LRU),结果正确,如图6所示。图6 最近最久未使用(LRU)测试(3)测试最佳(OPT),结果正确,如图7所示。图7 最佳(OPT)测试7 设计体会通过两周时间的课程设计,我对计算机操作系统主存管理以及C语言的使用都有了更深的了解。当然也遇到不少问题,也正是国为这些问题引发的思考给我带来了收获。从当初不喜欢上机写程序到现在能主动写程序,从当初拿着程序不知从何下手到现在知道如何分析问题,如何用专业知识解决实际问题的转变。我发现无论是专业知识还是动手能力,自己都有很大程度的提高。在实际上机操作过程中,不仅是让我了解三种页面置换算法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 双方协议离婚抚养权约定书模板
- 私立小学教师国际文化交流与合作聘用协议
- 私立医院与外籍医生工作许可聘用合同
- 离婚财产分配与子女监护权争夺解决合同
- 2025-2030功能性运动鞋技术专利布局与行业标准演进趋势报告
- 2025-2030共享经济背景下自助设备行业政策风险与机遇研究报告
- 2025-2030年新能源行业新能源与传统能源融合发展报告
- 2025年储能系统在风力发电领域的应用与创新趋势报告
- 2025版医疗器械三方协议
- 2025土石方工程分包合同范本
- 康复伦理问题
- 配位化学-本科生版智慧树知到答案章节测试2023年兰州大学
- 华北电力大学授予本科生学士学位名单
- 学生休学证明模板
- 机电安装工程技术标书(模板)
- 无机及分析化学第2章-化学热力学基础1
- GB/T 2930.1-2017草种子检验规程扦样
- 会计学原理模拟试题一套
- 第一章-宗教社会学的发展和主要理论范式课件
- 国内外新能源现状及发展趋势课件
- 高速公路改扩建桥梁拼宽施工技术及质量控制
评论
0/150
提交评论