实验一:分页存储管理模拟实验.docx

上传人:lao****ou 文档编号:128137 上传时间:2023-04-05 格式:DOCX 页数:5 大小:10.50KB
下载 相关 举报
实验一:分页存储管理模拟实验.docx_第1页
第1页 / 共5页
实验一:分页存储管理模拟实验.docx_第2页
第2页 / 共5页
实验一:分页存储管理模拟实验.docx_第3页
第3页 / 共5页
实验一:分页存储管理模拟实验.docx_第4页
第4页 / 共5页
实验一:分页存储管理模拟实验.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验一:分页存储管理模拟实验.docx》由会员分享,可在线阅读,更多相关《实验一:分页存储管理模拟实验.docx(5页珍藏版)》请在第一文库网上搜索。

1、实验一:分页存储管理模拟实验1 .实验要求:掌握分页存储管理的基本概念和实现方法。要求编写一个模拟的分页管理程序,能对一个已有的程序实现分页显示。2 .数据结构:(1)数据文件:在磁盘上创建一个包含1000个数据的文件datatxt从。开始,每100个数为一页。(2)页面映像表包括:页号、中断位、块号。(3)内存缓冲区:申请存放3()()个字的缓冲区,设每1()()个字为一个内存块。初始状态:将数据文件的第一个页面装入到该缓冲区的第0块。(4)页面置换表:页面置换表的表项为3项,一个替换指针。采用先进先出页面置换算法。3 .程序算法:(1 )主程序:建立一个用户数据文件,初始化操作系统的数据结

2、构;并装入用户数据文件的第一页。(2)调页程序:当读入数据的逻辑地址对应的块不在内存时,调用调页程序。该程序负责从数据文件中调入所需的页。(3)置换算法:当内存缓冲区中没有空闲块时,依置换策略选择一个可置换的页。4 .源程序#include#includestruct data(int page;int block;int flag;number10;struct rename(int block;int page;name4;int main()(FILE *fp;int count 1 ,count2,replace=0;int buffer l10100 ,buffer210100;ch

3、ar num;for(countl =0;countl 10;countl +)for(count2=0;count2 100;count2+)buffer 1 count lcount2= 100*count 1 +count2;if(fp=fopen(ndata.txt,wb)=NULL)(fprintf(stderr,error opening filesystem, pause)exit(l);if(fwrite(bufferl,sizeof(int), 1000,fp)!=1000)fprintf(stderr,nerror writing fileexit(l);if(fclose

4、(fp)=EOF) printf(nclose file error*);exit(l);)printf(The page & The blocknu);for(countl =0;countl 4;countl +)(if(fp=fopen(,data.txt,7,rb,)=NULL)(fprintf(stderr,error opening fileexit(l);)fseek(fp, 100*sizeof(int)*countl ,0);if( fread(buffer2countl,sizeof(int),l OO,fp)!=100) fprintf(stderr,error writ

5、ing fileexit(l);)if(fclose(fp)=EOF)(printf(,nclose file error);exit(l);)printf(, %d%dnu,count 1,count 1);for(countl =0;countl 10;countl +)(if(countl4)(numbercountl .page=countl;number count 1 hblock=countl;numbercount 1 .flag=0;)elsenumbercountl.page=countl;number count 1 hblock=countl;numbercount 1

6、 .flag= 1;)for(countl =0;countl 4;countl +)namecount 1 .page=count 1;namecount 1 .block=count 1;)while(l)(printf(Input the address: number page(0-9) nn);scanf(H%dH,&countl);printf(Input the address: department(0-99)n);scanf(n%dn,&count2);if(count 1 9) continue;if(count299) continue;if(numbercountl f

7、ag=0)printf(l,The address: %dn,buffer2namecountl .blockcount2);elsenumber replace .block=count 1;numberreplace.flag=l;numbercount 1 .flag=O;namereplace.block=replace;if(fp=fopen(,data.txt,V,rb)=NULL)(fprintf(stderr5error opening file J);exit(l);fseek(fp, 100*sizeof(int)*count 1,0);if(fread(buffer2 r

8、eplace ,sizeof(int),l OO,fp)!=100)(fprintf(stderr,error writing fileexit(l);)if(fclose(fp)=EOF)(printf(,nclose file error”);exit(l);)printf(,The address: %dn,buffer2replacecount2);replace=(replace 1)%4;)namecount 1 .page=count 1;namecount 1 .block=count 1;)while(l)(printf(Input the address: number p

9、age(0-9) nn);scanf(H%dH,&countl);printf(Input the address: department(0-99)n);scanf(n%dn,&count2);if(count 1 9) continue;if(count299) continue;if(numbercountl fag=0)printf(l,The address: %dn,buffer2namecountl .blockcount2);elsenumber replace .block=count 1;numberreplace.flag=l;numbercount 1 .flag=O;

10、namereplace.block=replace;if(fp=fopen(,data.txt,V,rb)=NULL)(fprintf(stderr5error opening file J);exit(l);fseek(fp, 100*sizeof(int)*count 1,0);if(fread(buffer2 replace ,sizeof(int),l OO,fp)!=100)(fprintf(stderr,error writing fileexit(l);)if(fclose(fp)=EOF)(printf(,nclose file error”);exit(l);)printf(,The address: %dn,buffer2replacecount2);replace=(replace 1)%4;)printf(,The page & The blocknH);for(count 1 =0;countl 4;countl +)printf(, %d%d n,countl,numbercountl.block);)return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服