You are on page 1of 22

计算机科学与技术学院课程设计成绩单

课程名称:操作系统课程设计

姓名 性别 学号 班级

电话 综合成绩 成绩等级

程序运行情况
(占总成绩 20%)

程序功能完善程度
(占总成绩 20%)

对问题的答辩情况
(占总成绩 30%)

学生的工作态度与独立工作能力
(占总成绩 10%)

设计报告的规范性
(占总成绩 20%)

A:90~100 分 A-:85~89 分 B+:82~84 分 B:78~81 分 B-:75~77 分


C+:72~74 分 C:68~71 分 C-:64~67 分 D:60~63 分 F:<60 分

【设计目的】

操作系统课程设计是在学生系统地学习了《操作系统》课
程后,通过对操作系统各管理机制功能实现的模拟,进一步深

入理解并掌握操作系统各管理机制的原理及实现。在模拟实现

的过程中不仅让学生能够把学到的知识应用到实际的编程实践

中,而且能够进一步的巩固学生在操作系统课程中学习的理论

知识。

【设计要求】

1、课程设计时间为 1 周;

2、开发语言不限(C++\JAVA\C#\ASP.net…);

3、设计文档书写规范,程序界面友好、健壮性强。

【题目】

页面置换算法模拟实现

1、 设计目的

存储管理的主要功能之一是合理的分配空间。请求页式

存储管理是一种常用的虚拟存储管理技术。通过对请求页式

存储管理中页面置换算法的模拟设计,掌握请求页式存储管

理页面置换算法,并进一步理解虚拟存储技术的原理及特点。
2、 设计内容

设计一个虚拟存储及内存工作区,使用先进先出算法

(FIFO),理想型淘汰算法( OPT),最近最久未使用算法

(LRU)计算不同内存容量下的缺页率,模拟表示出不同算法内

存中页面的变化情况,并对不同内存容量下不同算法的缺页率

进行比较分析(例如,可以采用图表、动画等方式来表示各种

算法的执行过程;可以用图表方式来对比分析不同算法的缺页

率)。

【代码和算法的设计及分析】

本 程 序 采 用 JavaScript 和 CSS 和 html 「 借 用 外 部 作 图 工 具 作

图」,基本实现了页式存储管理中的页面置换算法 ,包括先进

先出(FIFO),理想型淘汰算法(OPT)和最近最久未使用算法

(LRU)

前端页面采用 CSS 和 HTML 设计,比较简单,略过。直接看核

心代码及算法。

首先让用户输入物理块数和页面个数,然后根据用户输入的数

值建立不同容量的数组(实验报告中以物理块数为 3 页面个数

为 6 举例),然后随机生成 1-15 的数字(这里就是 6 个随机

数)供接下来计算缺页以及缺页率,代码如下
有了页数和物理块数就可以分析缺页了

整体流程图
1.先进先出(FIFO)

2.流 程 图

对于先进先出 ,先建立 3 个数组分别为 ARR1 (存放页面序

列),ARR2(存放物理块数)和 ARR3(存放每一步的结果).

在 ARR3 中还包含数组。
(在 FIFO 算法中引用了队列)
第一个存放页面序列的数组依次进入第二个数组,13 首先进入

(进入后会遍历数组 2,发现没有找到与 13 相同的数字),显

示缺页,14 和 6 也是如此,当 1 进入的时候,遍历数组 2 发现

没有找到 1,这时候要替换掉一个数,程序这时候会从数组 1 的

下标开始像前找,向前找到 3 个不同的数字(也就是

13,14,6)

并采用队列的思想,看 13,14,6 谁先进入队列就替换掉谁,

代码执行完毕后,将结果存入数组 3,传到表格中打印出来并

计算出缺页率。
以下是核心代码截图:
2:理想型淘汰算法(OPT)

流 程 图
在理想型淘汰算法中,前面数字的进入,13,14 和 6 会产生缺

页,在 1 进入后,发现数组 2 里没有 1,程序会从 1 向数组 1 之

后遍历,看能不能找到以后永久不被访问的页面,发现之后只

找到 5 和 1,则从头开始,13 是永久不会被访问的页面,所以

替换掉 13 并显示缺页,5 进入后也是如此,替换掉 14 显示缺

页。

所有结果出来后传到表格并显示缺页率

核 心 代 码 如 下 :
3:最近最久未使用(LRU)

流 程 图
在 LRU 算法中,13,14,6 进入后页面显示缺页,当 1 进入的时

候,遍历数组 2 发现没有找到 1,这时候要替换掉一个数,程序

这时候会从数组 1 的下标开始像前找,向前找 3 个不同的数

字,找到对应下标最小的,也就是 13,这时候会把 13 替换掉并

显示缺页。在每一次遍历完数组 2 后,会将结果存入数组 3,算

法执行完毕后,将数组 3 的结果传到表格中显示出来,并计算

出缺页率。

下面是核心代码:
程 序 运 行 截 图 :
实验总结:本次实验中,我深入理解了页面置换的 3 种不同
的算法包括 OPT,FIFO,LRU。对于页面置换的过程有了一
定的认知,通过 JAVASCript 编写程序让我对 JAVASCript 掌握

更熟练,提升了自己的能力

代码中遇到的问题:对第三方库掌握对不够熟练,在写代
码对时候没有那么流畅,对于算法在代码上的实现话费了
太长时间,代码的健壮性还是不够强

You might also like