文档介绍:合肥学院
计算机科学与技术系
实验报告
2011〜2012学年第一学期
课 程
用先进先出(FIFO)页面调度算法
课程设计名称 处理缺页中断
学
生
姓
名
学
号
专
业
班
级
指
导试分析:
理论上说,要实现“发生页面置换时总是置换先进入的页面”,就 要记录一下每个页面被装入的时间,在发生置换时比较这些时间,找 到时间最前的。但本程序没有这样做,因为本程序本着这样一个规则 总是把新进入的页面放到内存最后面,内存满时就替换最久的,最久 的页面就是 index 位置的。
本程序不能显示具体的错误或无意义的结果信息。有待改进。
改进设想:是否能让内存块中的页号始终按照“在内存中驻留时
间最久的页面,在内存中驻留时间第二久的页面,在内存中驻留时间 第三久的页面,・・・,在内存中驻留时间最短的页面”的顺序输出?
(5) 测试结果:
正常正确的结果:
g "F:\Debug\fif6exe"
At
个数泠
韻个作业麵号"3
12 5
ress
装入页号
1
2
3
0
无
1
内存块
1
1
1
0
0
Q
Q
无
0
an<j key to
2
2
2
2
1
1
1
1
Q
3
3
2
2
2
2
5
5
continiw
内存块数为0的错误结果:
内存块数与页面数相等的结果
輕"FADebueXfifo-exe'1
:3:3啥可 数数帑 个K』入 番削装1 内作"号 入入入页
an
内存块数大于页面数的结果:
小"F:\Debug\"
请请贏无无
页面数为 0 的无意义结果:
输入得页号个数大于所要求的个数的结果:
1
:3:8曙万 数数豁 个芻入 内作R-7'号 入入入页
0无无5
:1 303051410
内存块
1
1 3
13 0
13 0
13 0
5 3 0
1
(6) 使用说明: 输入的内存块的个数应为一个大于等于 1 的整数,输入的作业的页数也应 是一个大于等于 1 的整数,当依次输入作业的页号时,要特别注意输入的个数是 否与要求输入的个数相等。
4. 实验总结:
本次的实验花费了我们整个小组不少的精力,虽然每个人的分工不同, 有轻有重,但我们每一个人都还是尽心尽力去完成自己的任务,实验的过程中, 让我们深刻体会到即使是再怎么简单的原理,要想写出一个完整且完美的程序也 还是很困难的。我们都只能力所能及的去做到最好。
5. 附录:
#include <iostream> #include <iomanip> #include <cstdlib> using namespace std;
int *memory = NULL;//内存块数组(块数由用户输入决定) int *process = NULL;//
进程页面