实验一:分页存储管理模拟实验.docx
《实验一:分页存储管理模拟实验.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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 分页 存储 管理 模拟