操作系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海电力学院
计算机操作系统原理
课程设计报告
题目名称:编写程序模拟虚拟存储器管理
姓名:杜志豪.学号:
班级: 2012053班 .
同组姓名:孙嘉轶
课程设计时间:——
评语:
成绩:
目录
一、设计内容及要求 (4)
1. 1 设计题目 (4)
1.2 使用算法分析: (4)
1. FIFO算法(先进先出淘汰算法) (4)
1. LRU算法(最久未使用淘汰算法) (5)
1. OPT算法(最佳淘汰算法) (5)
分工情况 (5)
二、详细设计 (6)
原理概述 (6)
主要数据结构(主要代码) (6)
算法流程图 (9)
主流程图 (9)
Optimal算法流程图 (10)
FIFO算法流程图 (10)
LRU算法流程图 (11)
.1源程序文件名 (11)
. 2执行文件名 (11)
三、实验结果与分析 (11)
Optimal页面置换算法结果与分析 (11)
FIFO页面置换算法结果与分析 (16)
LRU页面置换算法结果与分析 (20)
四、设计创新点 (24)
五、设计与总结 (27)
六、代码附录 (27)
课程设计题目
一、设计内容及要求
编写程序模拟虚拟存储器管理。假设以M页的进程分配了N
块内存(N 输入:设定系统分配的块数,以及进程页面引用序列(也可随即产生)。 输出:显示每一次页面引用内存状态,最终显示产生缺页中断的次数及页面置换的次数(假设初始状态内存没有装入任何页面)。 必须分别使用以下置换算法完成模拟: (1)FIFO页面置换算法; (2)LRU页面置换算法; (3)最佳(Optimal)页面置换算法。 使用算法分析: FIFO页面置换算法: 该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面以淘汰。该算法实现简单,只需把 一个进程已调入内存的页面,按照先后次序链接成一个队 列,并设置一个指针,称为替换指针,使它总是指向最老 的页面。但该算法并不是都适合实际情况,因为在进程中,有些页面经常被访问,比如,含有全局变量、常用函数,例程等得页面,FIFO算法并不能保证这些页面不被淘汰。 1.2.2LRU页面置换算法: 最近最久未使用(LRU)的页面置换算法是根据页面 调入内存后的使用情况进行决策的。由于无法预测各页面 将来的使用情况,只能利用“最近的过去”作为“最近的 将来”的近似,因此,LRU置换算法是选择最近最久未使 用的页面予以淘汰。该算法赋予每个页面一个访问字段, 用来记录一个页面自上次被访问以来所经历的时间t,当 须淘汰一个页面时,选择有页面中t值最大的,即最近最 久为使用的页面以淘汰。 1.2.3最佳(Optimal)页面置换算法: Optimal算法是一种理论的算法,其所选择的被淘汰页面将是以后永久不使用的,或许是在最长(未来)时 间内不再被访问的页面。采用最佳置换算法,通常可保证 获得最低的缺页率。但由于人目前还无法预知一个进程在 内存的若干个页面中,哪一个页面是未来最长时间内不再 被访问的,因而该算法是无法实现的,便可以利用此算法 来评价其他算法。 分工情况:共同讨论并构思,杜志豪负责FIFO和LRU算法的编程,孙嘉轶负责窗体界面和OPT算法的编写。编程中遇到困难共同讨论并解决。 二、详细设计 2.1原理概述 定义一个整型变量int buffer=0来记录内存分块数,定 义一个string 类型的算法 string suanfa来选择具体 的算法;用一个数组int[]xulie来存储页面序列,长度 为20;用一个数组int[]kuai来存储内存分配的物理块 个数,长度为5;用int s来记录具体的步骤数,用int num 来记录页面中断次数。空白表示物理块没有被使用。 2.2主要数据结构(代码)结构体: 输入的页面序列号: 2.3 public Form1() pp 执行文件名:虚拟存储器管理.exe 三、实验结果与分析(要有结果截图) Optimal页面置换算法结果与分析 最佳页面置换算法是指:其选择的被淘汰的页面将是以后永不使用,或许是在最长时间内不被访问的页面。 假设系统分配了3块物理块,读取一个页面顺序: 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 前面三个直接进入内存即:7 0 1。由于7是未来最长时间不被使用,因此把7置换成2即为:2 0 1。由于0已经在内存里面,不需置换。1是未来最长时间不被使用的,所以把1置换成3得到:2 0 3。由于0在已经在内存里面,不需置换。0是未来最长时间不被使用的,所以把0换成4得到:2 4 3。由于2、3已经在内存里面,所以不用置换。由于4以后不被使用,所以把4置换成0得到:2 0 3。又由于3、2已在里面无需置换。由于3以后不被使用,把3置换成1得到:2 0 1。又因为2、0、1已在内存里面,所以无需置换。又由于2以后不被使用,所以把2置换成7得到:7 0 1。又因为0、1已经在内存里面,所以不用置换。分配完成。页面中断次数为6。实验结果与猜想一致,成功。 假设系统分配了4块物理块,读取一个页面顺序: