[ [ 计算机] ] 先进先出页面置换算法实验报告电子版
《操作系统》上机实验报告 专业和 班级 成绩 姓名 学号
课程名操作系统 实验名称 先进先出页面置换算法 称
实
验
目 在进程运行过程中,若其所要访问的页面不在内存而需把它们调入内存,但内存 的 已无空闲空间时,为保证该进程能正常运行,系统必须从内存中调出一页程序或 和 数据送磁盘的对换区中。须根据一定的算法来确定应将那个页面调出。
要
求
实 先进先出页面置换算法,该算法淘汰最先进入内存的页面,即选择在内存中驻留验 时间最久的页面予以淘汰。
内
容
#include "stdafx.h"
#include<stdio.h>
#define M 20
#define N 3
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;i<N;i++)
{
实 a[i]=b[i]; 验 for(j=0;j<=i;j++) 步 { 骤
printf("%d ",a[j]);
} printf("\n");
}
k=N;
for(j=N;j<M;j++)
{
for(i=0;i<N;i++)
if(b[j]==a[i])
{
c[j]=1;
break;
}
if(c[j]==1)
{
for(i=0;i<N;i++)
printf("%d ",a[i]);
}
if(c[j]==0)
{ a[k%N]=b[j];
k++;
for(i=0;i<N;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};
int b[M]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};
FIFO(a,b);
}
通过实验更加了解了各种页面置换算法之间的区别。在实验中~不知道如何来研 选择是否要置换~后想到可以另加一个数组存 0,1~用以标记是否发生缺页中断。
究
与
探
讨