《操作系统实验报告存储管理(共5页).doc》由会员分享,可在线阅读,更多相关《操作系统实验报告存储管理(共5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上操作系统上机实验报告实验名称:存储管理实验目的:通过请求页式存储管理页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理页面置换算法。实验内容:1设计一个虚拟存储区和内存工作区;例如内存工作区大小为9个内存块,假设系统中最多可运行3个进程,每个进程分配3个内存块;2模拟实现FIFO、LRU、OPT算法,给出页面走向,可计算缺页率;3根据实验结果比较几种算法的差别。实验步骤及分析:(一)FIFO算法实现提示定义一个常量total_instruction来记录页面总共使用的次数;定义一个变量diseffect记录总共换入页面的次数。利用公式diseffect
2、/total_instruction*100%可以得到缺页率。(1)初始化。设置两个数组pageap和pagecontrolpp分别表示进程页面数和内存分配的页面数,并产生一个随机数序列pageordertotal_instruction (这个序列由page的下标随机构成)表示待处理的进程页面顺序,diseffect置0。(2)看pageorder中是否有下一个元素,若有,就由pageorder中获取该页面的下标,并转到(3);如果没有就转到(7)。(3)如果该page已在内存中,就转到(2);否则就到(4),同时未命中的diseffect加1。(4)观察pagecontrol是否占满,如果
3、占满须将使用队列中最先进入的pagecontrol单元“清干净”,同时将对应的page单元置为“不在内存中”。(5)将该page与pagecontrol建立关系。可以改变pagecontrol的标志位,也可以采用指针链接,总之至少要使对应的pagecontrol单元包含两个信息:一是它被使用了,二是哪个page单元使用的。Page单元也包含两个信息:对应的pagecontrol 单元号和本 page单元已在内存中。(6)将用到的pagecontrol置入使用队列,返回(2)。(7)计算缺页率。(二)LRU算法实现提示(1)初始化。主要是进程页面page和分配的内存页面pagecontrol,同
4、时产生随机序列pageorder,diseffect置0。(2)看pageorder是否有下一个元素,若有,就由pageorder中获取该页面的下标,并转到(3);如果没有就转到(6)。(3)如果该page已在内存中便改变页面属性,使它保留“最近使用”的信息,转到(2);否则转到(4),同时diseffect加1。(4)判断是否有空闲的内存页面,若有,就返回页面指针,转到(5);否则,在内存页面中找出最长时间没有使用到的页面,将其“清干净”,并返回该页面指针。(5)在需要处理的page与(4)中得到的pagecontrol之间建立联系,同时让对应的page单元保存“最新使用”的信息,返回(2)
5、。(6)如果序列处理完成,计算缺页率。(三)OPT算法实现提示为了简易实现OPT,可以为每个进程页面设一个“间隔”属性cDistance表示CPU将在第几步处理到该页面,如果页面不再被CPU处理,可以被设为某个很大的值(如32767),这样每次换出的就是vDistance最大的那个页面。(1)初始化。设置两个数组pageap和pagecontrolpp分别表示进程页面数和内存分配的页面数,并产生一个随机数序列pageordertotal_instruction (这个序列由page的下标随机构成)表示待处理的进程页面顺序,diseffect置0。然后扫描整个页面访问序列,对vDistanceT
6、OTAL_VP数组进行赋值,表示该页面将在第几步被处理。(2)看pageorder是否有下一个元素,若有,就由pageorder中获取该页面的下标,如果没有就转到(6)。(3)如果该页面已经在内存中了,就转到(2);否则转到(4)。(4)看是否有空闲的内存页面,如果有就直接返回该页面指针;如果没有,遍历所有未处理的进程页面序列,如果有位于内存中的页面,而以后CPU不再处理的,首先将其换出,返回页面指针;如果没有这样的页面,找出CPU最晚处理到的页面,将其换出,返回该内存页面指针。(5)在内存页面和待处理的进程页面之间建立联系,返回(2)。(6)计算缺页率。代码编写过程:创建.c文件和.h文件即代码编写:由于代码比往次实验多,所以课堂时间不够用,课下把四个文件编写完成,运行结果如下图:实验总结:在实验中很多粗心造成的问题,比如指令输错字母,代码写错字母,没有注意是否需要空格等。通过课堂的理论知识学习和实验课的上机实验,让我更能理解操作系统的知识。专心-专注-专业