先进先出FIFO页面置换算法2

更新时间:2023-10-14 13:35:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《操作系统》 课外实践报告

项 目 名 称: 页面置换算法 所 在 班 级: 姓名: 学号: 组长: 小 组 成 员: 指 导 教 师: 支丽平 成 绩 评 定:

页面置换算法中的先进先出算法

一 实验目的

了解最佳页面置换算法与先进先出FIFO页面置换算法,并掌握其基本原理 二 实验目标

用C++模拟最佳页面置换算法与先进先出FIFO页面置 换算法 三 实验步骤

第一步,输入系统为进程分配的物理块数(m<=10) 第二步,输入总页面数(n<=30) 第三步,输入页面号引用串 第四步,系统自动给出演示数据 第五步,分析数据

第六步,重复一到五步骤 四 技术难点及解决方案 技术难点:如何找到最久页面 解决方案:建立一个时间数组,做标记

五 关键数据和算法流程

代码如下:

#include \

#include \ //使用setw()时用到的头文件 #include \#include \

#include \使用getchar()时用到的头文件 using namespace std;

#define Max 30 //某进程调入内存中的最大页面数 #define Size 10 //系统为某进程分配的最大物理块数

void Init(int Block[],int m) //初始化物理块 { int i;

for(i=0;i

Block[i]=-1; } }

void creat(int Page[],int n) //输入页面串引用号

{ int i;

for(i=0;i

cin>>Page[i]; } }

void FIFO(int Page[],int Block[],int n,int m)

{//max_stay:比较当前内存中页面驻留的最久时间,count:统计页面置换次数 //get:某物理块是否等待驻入新页面(-1:否)

//flag:标记当前序号页面是否已驻入内存(-1:否)

//block_num:驻留内存时间最长的页面所在的物理块序号 //time[]标记对应序号的物理块中页面驻留时间 int i,j,max_stay=0,count=0;

int get=-1,flag=-1,block_num=-1; int time[Size];

for(i=0;i

for(i=0;i

{ for(j=0;j

get=j; //物理块j即将(/等待)驻入新页面 break; } }

for(j=0;j

{ if(Block[j]==Page[i])//物理块j中页面与当前期望调入内存的页面相同 {

flag=j; break; } }

for(j=0;j

if(time[j]>max_stay) {

max_stay=time[j];

block_num=j; //block_num标记当前序号物理块中页面驻留时间最久 } }

if(flag==-1) //不存在相同页面

{ if(get!=-1) //物理块即将(/等待)驻入新页面

本文来源:https://www.bwwdw.com/article/fpmf.html

Top