- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
页面置换算法 实验七报告精要
操作系统实验七
先进先出页面置换算法
实验提示:
内存块数由用户手动输入;
页面序列号可随机生成,也可以让用户手动输入;
输出内存块存放页面的情况;
输出缺页次数和缺页率。
实验要求:
实验报告中要给出流程图和源程序,源程序中要附有详细的注释,
给出程序运行时的输入值和运行结果
总结收获或对该题的改进意见和见解。
流程图:
源程序:
#include stdio.h
#include stdlib.h
#include math.h
#include conio.h
#include time.h
#define TRUE 1
#define FALSE 0
#define NULL 0
#define total_instruction 20
#define total_vp 10
typedef struct
{
int pn,pfn;
}pv_type;
pv_type pv[10];
typedef struct pf_struct
{
int pn,pfn;
struct pf_struct *next;
}pf_type;
pf_type pf[20],*free_head,*busy_head,*busy_tail,*q;
int page[total_instruction];
int total_pf;
int count;
void initialiaze()
{
int i;
count=0;
for(i=0;itotal_vp;i++)
{
pv[i].pn=i;
pv[i].pfn=-1;
}
printf(请输入实页数目:);
scanf(%d,total_pf);
for(i=0;i=total_pf-1;i++)
{
pf[i].next=pf[i+1];
pf[i].pfn=i+1;
pf[i].pn=-1;
}
pf[total_pf-1].next=NULL;
free_head=pf[0];
printf(随机产生的页地址流为:\n);
for(i=0;itotal_instruction;i++)
{
page[i]=rand()%10;
printf(%2d,page[i]);
}
}
void FIFO()
{
int i,j;
pf_type *p;
q=busy_head=busy_tail=NULL;
for(i=0;i=total_instruction-1;i++)
{
printf(\n第%d次执行:,i+1);
if(pv[page[i]].pfn==-1)
{
count+=1;
printf(缺页,缺页次数count=%d,,count);
if(free_head==NULL)
{
printf(实页%d中的页面%d将被置换出去,busy_head-pfn,busy_head-pn);
p=busy_head-next;
pv[busy_head-pn].pfn=-1;
free_head=busy_head;
free_head-next=NULL;
busy_head=p;
}
p=free_head-next;
free_head-next=NULL;
free_head-pn=page[i];
pv[page[i]].pfn=free_head-pn;
if(busy_tail==NULL)
busy_head=busy_tail=free_head;
else
{
busy_tail-next=free_head;
busy_tail=free_head;
}
free_head=p;
}
else
printf(命中,缺页次数不变,仍为count=%d,count);
printf(\npfn pn);
for(j=0;j=total_pf-1;j++)
{
if(pf[j].pn!=-1)
printf(\n%d%8d,pf[j].pfn,pf[j].pn);
}
}
printf(\n先进先出算法的命中率为:%6.4f\n缺页总次数为%d\n,1-(float)count/20,count);
}
void main()
{
srand((unsigned)time(NULL));
initialiaze();
FIFO();
};
输入值:
运行结果:
总结收获:
这次实验的目的是模拟虚拟存储的页面置换算法,请求页式虚存管理是常用的虚拟存储管理方案之一。通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。
这次实验采用的是先进先出算法。先进先出(FIFO)置换算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需
您可能关注的文档
最近下载
- 西门子 go topCT 中文版.pdf VIP
- 复合材料【全套课件】.ppt VIP
- 复合材料 第八章 先进复合材料.ppt VIP
- 人教版八年级物理第九单元《压强》测试题及答案.doc VIP
- 《复合材料学》全套教学课件.pptx
- 复合材料复合材料导论.ppt VIP
- 2025年闽教版(2024)小学英语四年级上册(全册)教学设计(附目录P123).docx
- 冠心病的介绍与治疗PPT.pptx VIP
- 2025云南昆明巫家坝建设发展有限责任公司及下属公司第三季度招聘23人笔试参考题库附答案解析.docx VIP
- 2.2.3 气候——特征和影响因素(课件)八年级地理上册(人教版).pptx VIP
文档评论(0)