操作系统课程设计报告

  • 格式:doc
  • 大小:96.00 KB
  • 文档页数:24

下载文档原格式

  / 24
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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块物理块,读取一个页面顺序: