页面置换算法(FIFO算法 LRU算法)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("%3c",f[i]);
}
五、 实验结果
1、FIFO(四内存块)
2、LRU(五内存块)
六、 实验心得
通过这次实验,进一步了解了什么是缺页中断,以及处理缺页中断的 调度算法。通过自己编程,加深了对理论学习的理解。
{
q=0;
while((ym[i]!=mem[q])&&(q!=m)) q++;
if(q==m) flag='*';
//缺页,则置标志flag为‘*’
else flag=' ';
for(j=q;j>0;j--)
mem[j]=mem[j-1];
mem[0]=ym[i];
for(j=0;j<m;j++)
table[j][i]=mem[j];
f[i]=flag;
}
printf("输出结果为下表(0代表为空,*代表有缺页):\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%3d",table[i][j]);
printf("\n");
}
for(i=0;i<n;i++)
四、 实验程序
1、FIFO算法
#include "stdio.h"
#define n 20
#define m 4
void main()
{
int ym[n],i,j,q,mem[m]={0},table[m][n];
char flag,f[n];
printf("请输入页面访问序列\n");
for(i=0;i<n;i++)
{
wk.baidu.com
int ym[n],i,j,q,mem[m]={0},table[m][n];
char flag,f[n];
printf("请输入页面访问序列\n");
for(i=0;i<n;i++)
scanf("%d",&ym[i]);
printf("\n");
for(i=0;i<n;i++)
//查页表,看是否缺页
{
for(j=m-1;j>0;j--)
//淘汰最先调入的页面调入当前访问的
mem[j]=mem[j-1];
mem[0]=ym[i];
}
for(j=0;j<m;j++)
table[j][i]=mem[j];
f[i]=flag;
}
printf("输出结果为下表(0代表为空,*代表有缺页):\n");
for(i=0;i<m;i++)
实验四 页面置换算法
一、 实验目的
理解并掌握模拟分页式虚拟存储管理的缺页中断,以及选择页面调度算法处 理缺页中断。
二、 实验内容及要求
选择一种或几种页面置换算法进行编程以实现该算法。
三、 实验流程图
输入页面访问序列
取访问的页号
查页表
是
否
是否缺页?
置缺页标志 flag 为’*’
按算法不同淘汰一页面 调入所访问的页面
scanf("%d",&ym[i]);
printf("\n");
for(i=0;i<n;i++)
//查页表,看是否缺页
{
q=0;
while((ym[i]!=mem[q])&&(q!=m)) q++;
if(q==m) flag='*';
//缺页,则置标志flag为‘*’
else flag=' ';
if(flag=='*')
{
for(j=0;j<n;j++)
printf("%3d",table[i][j]);
printf("\n");
}
for(i=0;i<n;i++)
printf("%3c",f[i]);
}
2、LRU 算法
#include "stdio.h"
#define n 20
#define m 5
void main()