课程设计 页面置换算法--先进先出算法精要.docxVIP

  • 7
  • 0
  • 约2.99千字
  • 约 16页
  • 2017-05-11 发布于湖北
  • 举报

课程设计 页面置换算法--先进先出算法精要.docx

课程设计 页面置换算法--先进先出算法精要

课程设计 PAGE \* MERGEFORMAT16 淮阴工学院 操作系统课程设计报告 选题名称: 页面置换算法 系(院): 管理工程学院 专 业: 信息管理与信息系统 班 级: 信管1131 姓 名: 周夏青 、张婷婷 学 号: 1131807102 、1131807103 指导教师: 陆华奇、邱军林 学年学期: 2015 ~ 2016 学年 第 1 学期 2015 年 12 月 20 日 页面置换算法 ——先进先出算法 一、实验目的 “操作系统课程设计”是理解和巩固操作系统基 理论、原理和方法的重要实践环节。主要任务是实现操作系统和相关系统软件的设计,其中涉及进程创建,同步,进程间通信,存储管理,文件系统等操作系统概念。先进先出算法给出页面访问的顺序与分配给作业的主存块数,使用队列作为数据结构编写算法,实现统计缺页次数与页面置换操,用C语??编程并用文档形式给出算法分析与实现过程。 二、实验要求 1、输入当前要调用的页面号a[i] 2、判断该页面是否已在队列内, (1)若在队列内,不执行任何操作 (2)若不在队列内。则执行以下操作 3、判断队列是否已满 (1)若队列未满,直接把该页面号a[i]存入队列 (2)若队列已满,删除并返回队头元素,然后把该页面号a[i]存入队列 4、输出置换次数,依次输出置换出的页面 三、实验内容 FIFO算法总是淘汰最先调入主存的页面,即淘汰在主存中驻留时间最长的页面,认为驻留时间最长的页不再使用的可能性较大。 代码如下: #includestdio.h #define M 24 #define N 4 void FIFO(int a[N],int b[M]) { int i,j,k; int c[M]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; float s; for(i=0;iN;i++) { a[i]=b[i]; for(j=0;j=i;j++) { printf(%d ,a[j]); } printf(\n); } k=N; for(j=N;jM;j++) { for(i=0;iN;i++) if(b[j]==a[i]) { c[j]=1; break; } if(c[j]==1) { for(i=0;iN;i++) printf(%d ,a[i]); } if(c[j]==0) { a[k%N]=b[j]; k++; for(i=0;iN;i++) printf(%d ,a[i]); } printf(\n); } s=k*1.0/M; printf(中断次数为:%d\n,k); printf(缺页率为:%f\n,s); } void main() { int a[N]={0,0,0,0}; int b[M]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1,5,2,6,4}; FIFO(a,b); }(如图1-2) 图  SEQ 图 \* ARABIC 1 图  SEQ 图 \* ARABIC 2 其运行结果如下: 图  SEQ 图 \* ARABIC 3 若改变置换总次数,其运行如下:(如图4-6) 图  SEQ 图 \* ARABIC 4 图  SEQ 图 \* ARABIC 5 图  SEQ 图 \* ARABIC 6 若改变物理块,其运行结果如下:(如图7-9) 图  SEQ 图 \* ARABIC 7

文档评论(0)

1亿VIP精品文档

相关文档