请求页式管理缺页中断模拟设计--lru、随机淘汰算法_第1页
请求页式管理缺页中断模拟设计--lru、随机淘汰算法_第2页
请求页式管理缺页中断模拟设计--lru、随机淘汰算法_第3页
请求页式管理缺页中断模拟设计--lru、随机淘汰算法_第4页
请求页式管理缺页中断模拟设计--lru、随机淘汰算法_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学号课程设计题目请求页式管理缺页中断模拟设计LRU、随机淘汰算法学院计算机学院专业班级姓名指导教师课程设计任务书学生姓名指导教师工作单位计算机科学与技术学院题目请求页式管理缺页中断模拟设计LRU、随机淘汰算法初始条件1预备内容阅读操作系统的内存管理章节内容,了解有关虚拟存储器、页式存储管理等概念,并体会和了解缺页和页面置换的具体实施方法。2实践准备掌握一种计算机高级语言的使用。要求完成的主要任务(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1实现指定淘汰算法。能够处理以下的情形能够输入给作业分配的内存块数;能够输入给定的页面,并计算发生缺页的次数以及缺页率;缺页时,如果发生页面置换,输出淘汰的页号。2设计报告内容应说明需求分析;功能设计(数据结构及模块说明);开发平台及源程序的主要部分;测试用例,运行结果与运行情况分析;自我评价与总结I)你认为你完成的设计哪些地方做得比较好或比较出色;II)什么地方做得不太好,以后如何改正;III)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);IV)完成本题是否有其他方法(如果有,简要说明该方法);时间安排设计安排一周周1、周2完成程序分析及设计。周2、周3完成程序调试及测试。周4、周5验收、撰写课程设计报告。(注意事项严禁抄袭,一旦发现,一律按0分记)指导教师签名年月日系主任(或责任教师)签名年月日请求页式管理缺页中段模拟设计LRU、随机淘汰算法1概述11原理页式存储管理把内存分割成大小相等位置固定的若干区域,叫内存页面,内存的分配以“页”为单位,一个程序可以占用不连续的页面,逻辑页面的大小和内存页面的大小相同,内外存的交换也以页为单位进行,页面交换时,先查询快表,若快表中找不到所需页面再去查询页表,若页表中仍未找到说明发生了缺页中断,需先将所需页面调入内存再进行存取。12目的通过分析、设计和实现页式虚拟存储管理缺页中断的模拟系统,熟悉和掌握请求分页式存储管理的实现过程,重点掌握当请求页面不在内存而内存块已经全部被占用时的替换算法,熟悉常见替换算法的原理和实现过程,并利用替换算法的评价指标缺页次数和缺页率,来对各种替换算法进行评价比较。2需求分析用一种计算机高级语言来实现请求页式管理缺页中段模拟设计的LRU和随机淘汰算法,设计要求如下(1)能够输入给作业分配的内存块数;(2)能够输入给定的页面调用次序;(3)缺页时,如果发生页面置换,输出淘汰的页号。(4)能统计页面调用缺页次数和缺页率请求分页流程图2功能设计21数据结构(1)用结构体定义页表表项STRUCTPAGEINTBLOCKID/块号INTSTATUS/状态,1为空闲,1为占用开始选择调入页面号是否在内存中是调入内存内存块是否有空闲是选择空闲物理块使用页面替换算法,替换已有页面是是否还有请求页面否结束(2)用结构体定义内存块表项STRUCTBLOCKINTPAGEID/块内存放页号INTSTATUS/是否空闲,1为空闲,1为占用2算法中涉及到的主要变量DEFINEMAX_BLOCK50DEFINEMAX_PAGE100INTPAGEMAX_PAGE/记录页的走向BOOLINSIDEMAX_PAGE/记录是否缺页,缺FALSEINTREPLACEMAX_PAGE/记录替换次序,无替换为1,有替换为被替换页号BLOCKBLOCKMAX_BLOCK/记录物理块PAGEPAGETABLEMAX_PAGE/记录页表INTPAGENUM/页面个数INTPAGESUM/实际页调用次数INTBLOCKSUM/实际块数INTLACKSUM/缺页次数FLOATLACKRATE/缺页率INTRESULTTABLEMAX_PAGEMAX_BLOCK/用于存放程序执行过程状态表22模块说明3LRU淘汰算法VOIDLRU1、查看当前页面是否在内存中,如果是则记录当前页面调用状态,将相应的值赋给记录状态数组,返回2、当前页面不在内存中,判断内存中是否存在空闲块,如果有空闲块,将当前页面调入内存中,并更新页表、块表,以及记录状态数组中返回3、如果当前内存块满,且当前页面不在内存中。使用最久最近未使用算法,在当前内存块内的页中向前查找,最久未使用的权值最大,将权值最大的页面号和所在内存号返回使用当前页面替换权值最大的页面,并更新页表和块表以及记录状态数组,返回4随机淘汰算法VOIDRANDOM1、查看当前页面是否在内存中,如果是则记录当前页面调用状态,将相应的值赋给记录状态数组,返回2、当前页面不在内存中,判断内存中是否存在空闲块,如果有空闲块,将当前页面调入内存中,并更新页表、块表,以及记录状态数组中返回3、如果当前内存块满,且当前页面不在内存中。使用随机算法,随机选择一个内存块,将所选择的内存块内页面的的页面号和所在内存号返回使用当前页面替换权值最大的页面,并更新页表和块表以及记录状态数组,返回3开发平台及源程序主要部分31开发平台(1)使用系统WINDOWS7(2)使用语言C(3)开发工具VISUALSTUDIO201032源程序主要部分最近最久未使用算法VOIDLRU/最近最久未使用INTPFORP0P0PIFBLOCKBPAGEIDPAGEPWEIGHTPBREAKIFWEIGHTFLAGIFFLAG1LRURESULTLACKSUM,LACKRATEPRINTTABLEELSEIFFLAG0RANDOMRESULTLACKSUM,LACKRATEPRINTTABLEELSECOUTFLAGIFFLAG0BREAKRETURN04调试报告41测试用例给定内存物理块数为3给定页面数为5输入的页面号序列为12341251234542运行结果及分析最近最久未使用淘汰算法的运行结果如下随机淘汰算法的运行结果如下5总结在本次操作系统课程设计,我使用C实现请求页式管理缺页中断模拟设计的随机和LRU淘汰算法。在了解了虚拟存储器和页式存储管理的有关内容的基础上,掌握了随机和LRU淘汰算法的核心思想及算法的执行流程。然后结合所掌握的C编程方法和技巧,编写正确的算法,模拟出请求页式缺页中断的随机和LRU淘汰算法。算法的设计主要是要把请求页式管理的执行步骤理解清晰,然后根据请求页式管理的结构,设计出符合实际的数据结构,如页表和块表以及记录状态使用的数组等,然后根据执行流程模拟出各个算法。LRU算法的执行过程还是比较清晰的,我通过对内存中内存块的页,按照当前的页面顺序向前查找,记录此页上次执行的顺序号。遍历所有内存块后,执行顺序号最小的即为权值最大的,将此页的页号和所在内存块号返回,替换。随机算法比较简单,使用随机算法,在内存块中随机选择块号,替换出内存。本次的课程设计让我巩固了操作系统的相关知识,加深了对课本上理论知识的理解深度,特别是对请求式页式管理的理解。在编写程序之前,我查阅了有关请求页式管理的相关资料,对请求页式管理的数据结构有了更加清晰的认识,这直接关系到程序编写的正确性,因为程序的运行结果正确并不代表程序完全正确,只用在使用了正确的数据结构的基础上运行结果正确才算是正确的程序。但是在编写的过程中还是遇到了类似的问题,由于对页表的理解不够深入,最开始编写的程序虽然能够得到正确的结果,但是没有正确的页表,就不算是模拟了请求页式管理。后来我又修改了数据结构,增加了页表,这使得我的程序更加的完善了。在修改程序的时候,我发现虽然修改了数据结构,但是并未对其他部分的程序有太大的影响,这得益于程序功能的模块划分。在编写程序的时候,我尽量将程序细化,划分成小的模块,比如我将程序划分为初始化数据结构、页式管理算法执行、总程序流程控制三个模块,其中算法执行模块中,我又分了算法基本流程、计算权值、打印状态转移表三个模块。每个模块之间功能相对独立,这样就使得程序的结构比较清晰,维护性比较好。所以我修改了数据结构并未对其他部分的程序造成太大的影响。这些实践中得到的知识将转化为一种能力为我以后的发展做能力支撑。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论