操作系统先进先出算法
- 格式:doc
- 大小:113.50 KB
- 文档页数:7
南华大学
计算机科学与技术学院
课程设计报告
(2011~2012学年度 第2学期 )
课程名称 操作系统课程设计
设计题目
请求分页存储器管理系统
成员 朱志强(20104030338)
专业 电气信息 班级
1003
地点 教师 欧阳纯萍
南华大学计算机科学与技术学院 课程设计报告
设计分工
组员学号 20104030338 组员姓名 朱志强 总评成绩
分工描述及自我评价 主要工作是请求分页存储器管理系统的FIFO算法
本次课程设计自己认为已经尽力的做到了最好
同学评价
等级
同学评语
签字:
教师评分等级 教师评语
1.需求分析
1.1题目描述
在请求分页存储器管理系统中,我们需要一个页面置换算法,而先进先出算法
就是最早出现的一种算法,利用该算法可以实现页面的置换,实现内存的充分利
用,使进程可以执行
1.2先进先出(FIFO)
该算法实现简单,只需把一个进程已调入内存的页面,按先后顺序链接成一个
队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。
1、输入当前要调用的页面号
2、判断该页面是否已在队列内,
南华大学计算机科学与技术学院 课程设计报告
若在队列内,不执行任何操作
若不在队列内。则执行以下操作
判断队列是否已满
若队列未满,直接把该页面号存入队列
若队列已满,删除并返回队头元素,然后把该页面号存入队
3、输出置换次数,依次输出置换出的页面
1.3 目的
通过模拟实现请求页式存储管理的基本页面置换算法,了解虚拟存储技术的
特点,掌握虚拟存储请求页式存储管理中基本页面置换算法的基本思想和实现过
程。
2.概要设计
2.1算法思路
在请求分页存储器管理系统设计中,先进先出(FIFO)算法是一种给出页面
访问的顺序与分配给作业的主存块数,使用队列作为数据结构编写算法,实现统
计缺页次数与页面置换操作,该算法总是先淘汰最先进入内存的页面,即选择在
内存中停留时间最久的页面予以淘汰。
2.2先进先出算法步骤
1.设置一些页面参数,
int pagenum=0 内存页面数
int total=0 要访问的页面总数
int lacknumber 缺页的总数
2.设置一个队列
int seque[20]={0}; 队列长度设置为20 ,且初值设为0
3.执行算法
输入1,2,3,4,1,2,5,1,2,3,4,5
以输入-1结束
2.3 数据结构
Array[0][20] 定义一个数组
Void main ( ) 系统主函数
Cin>> pagenum 键盘输入 页号
3.详细设计
南华大学计算机科学与技术学院 课程设计报告
*********程序流程图**********
4.程序调试
4.1程序源代码
#include
using namespace std;
int pagenum=0; ///内存的页面数
int total=0; ///要访问的叶面总数
int lacknumber=0; ///缺页的总数
void main()
{
int array[1][20]; //0代表没有内容
for(int y=0;y<2;y++)
for(int x=0;x<20;x++)
{array[y][x]=-1;}
int seque[20]={0};
cout<<"请输入内存的页面数:";
cin>>pagenum;
cout<<"请输入页面的访问顺序(输入-1结束):";
for(int i=0;i<20;i++)
{
int num;
cin>>num;
if(num!=-1)
开始
检查内存是否有
空闲块
选择最先进入
的页面置换
读入访问页面
信息
存入页面
输出置换出的页面序号
结
束
未读完
已读完
有
无
南华大学计算机科学与技术学院 课程设计报告
{
seque[i]=num;
total++;
}
Else
{seque[i]=num;break;}
}
cout<<"总的页面数为"<
for(i=0;i
if(i
array[0][i]=seque[i];
cout<<"页面"<
for(int j=0;j
cout<
int kk=0;
for(i=pagenum;i
int flag=0;
for(int k=0;k
if(array[0][k]==seque[i])
{flag=1;break;}
}
cout<
{ cout<<"页面"<
for(int j=0;j
cout<
{
int tem=array[0][kk];
array[0][kk]=seque[i];
cout<<"页面"<
for(int j=0;j
lacknumber++; //缺页数
if(kk==pagenum)
{kk=0;}
南华大学计算机科学与技术学院 课程设计报告
}
}
lacknumber=pagenum+lacknumber;
cout<<"缺页率
="<
}
4.2实验截图
南华大学计算机科学与技术学院 课程设计报告
5.总结分析
(每个同学负责的部分都要写相应总结分析)
这次试验让我深刻的体会到先进先出算法在页面置换中的作用,它
总是把最先进去的页面最早的置换出来,提高了进程在执行的速率。
使我对存储器管理有了更深刻的理解。