欢迎来到天天文库
浏览记录
ID:13966106
大小:70.61 KB
页数:13页
时间:2018-07-25
《请求分页式存储管理的地址转换过程实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第2部分、请求分页式存储管理的地址转换过程实现:●基本要求:在第1部分实验基础上实现进程的分页式内存分配和地址转换过程,并进一步实现请求分页式存储分配和地址转换过程。页面置换算法至少应实现先进先出(FIFO)、最近最久未使用(LRU)等算法。●参考学时:16学时●实验提示:1、建立一个位示图,用来模拟内存的分配情况,位示图的位数与设定的物理块个数相同。程序启动时可利用一组随机0和1填充位示图,表示内存已被占用情况。假设内存容量为64K,块大小为1K,则共有64个块,对应的位示图可能的值如下:第0字节10110011第2字节11100111第4字节00011111第6字节11111
2、000第1字节01101100第3字节10000111第5字节01110011第7字节00000001该位示图表示内存的2(0字节第2位)、3(0字节第3位)、6(0字节第6位)、8(1字节第0位)、9(1字节第1位)、12(1字节第4位)、15(1字节第7位)…等块没有被占用。2、创建进程时输入进程大小,并根据程序中设定的物理块大小为进程分配物理块,同时建立页表。例如,在上图基础上,若要建立一个大小为5000字节的进程,则:l计算出该进程共有“向上取整(5000/1024)=5”个页,需要占用5个内存块;l建立空的页表,即长度为5的一维整数数组;l从位示图中找出前5个“0”位在
3、整个位示图中的位置号(即i字节j位为0,则该位的位置为8*i+j),并将这些号依次填入页表中,同时把前5个“0”改为“1”,以示对应内存块已经分配。1、输入当前执行进程所要访问的逻辑地址,并将其转换成相应的物理地址。2、进程退出时,根据其页表内容向位示图反向回填“1”。3、扩充页表,将其变成支持请求和置换功能的二维页表(增加存在位等)。创建进程时可装入固定的前三页(或键盘输入初始装入页数,不同进程的装入个数可以不同),其余页装入到置换空间内(置换空间大小应为内存空间大小的1.5倍,对其还需建立独立的位示图)。4、分别采用FIFO和LRU置换算法对地址转换过程中遇到的缺页现象进行页
4、面置换,可将多次地址转换过程中所涉及到的页号视为进程的页面访问序列,从而计算置换次数和缺页率。importjava.util.Vector;importjava.io.*;classProcess{Page[]PageTable;VectorPageQueue;privateintsize;privateintPagecount;privateStringname;doublevisit;doublereplacement;publicvoidsetPage(Page[]PageTable){this.PageTable=newPage[PageTable.lengt
5、h];for(inti=0;i6、visit=0;replacement=0;}publicProcess(){}publicProcess(Stringname){this.name=name;}publicStringtoString(){returnname;}}classPage{intflag;intblockNum;intwrited;//xiugaiweiintaccessfield;//fangwenziduanintswapsapce_blockno;//waicundizhiintt;{blockNum=0;writed=0;accessfield=0;t=0;}publicPage(){fl7、ag=1;swapsapce_blockno=-1;}publicPage(intflag,intswapsapce_blockno){this.flag=flag;this.swapsapce_blockno=swapsapce_blockno;}publicintgetBlockNum(){returnblockNum;}publicintgetFlag(){returnflag;}}classOS2{publicstaticVectorready,bloc
6、visit=0;replacement=0;}publicProcess(){}publicProcess(Stringname){this.name=name;}publicStringtoString(){returnname;}}classPage{intflag;intblockNum;intwrited;//xiugaiweiintaccessfield;//fangwenziduanintswapsapce_blockno;//waicundizhiintt;{blockNum=0;writed=0;accessfield=0;t=0;}publicPage(){fl
7、ag=1;swapsapce_blockno=-1;}publicPage(intflag,intswapsapce_blockno){this.flag=flag;this.swapsapce_blockno=swapsapce_blockno;}publicintgetBlockNum(){returnblockNum;}publicintgetFlag(){returnflag;}}classOS2{publicstaticVectorready,bloc
此文档下载收益归作者所有