请求调页存储管理方式的模拟

请求调页存储管理方式的模拟

ID:30925204

大小:112.25 KB

页数:12页

时间:2019-01-04

请求调页存储管理方式的模拟_第1页
请求调页存储管理方式的模拟_第2页
请求调页存储管理方式的模拟_第3页
请求调页存储管理方式的模拟_第4页
请求调页存储管理方式的模拟_第5页
资源描述:

《请求调页存储管理方式的模拟》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验3请求调页存储管理力式的模拟1实验冃的通过对页而、页表、地址转换和页而置换过程的模拟,加深对请求调页系统的原理和实现过程的理解。2实验内容(1)假设每个页面屮可存放10条指令,分配给一作业的内存块数为4。(2)模拟一作业的执行过程。该作业共有32()条指令,即它的地址空间为32页,目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令己经在内存小,则显示其物理地址,并转下一条指令。如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。如果4个内存块屮均己装入该作业,则需进行页面置换。

2、最后显示其物理地址,并转下一条指令。在所有32()条指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。(3)置换算法:请分别考虑OPT、FIFO和LRU算法。(4)作业屮指令的访问次序按下述原则生成:•50%的指令是顺序执行的。•25%的指令是均匀分布在前地址部分。•25%的指令时均匀分布在后地址部分。代码:packagemainDart;importjava.util.ArrayUst;importjava.util.List;importjava.util.Random;publicclassFIFO{priva

3、testaticinttimes=0;〃记录置换内存页而的次数/***随机产生0-319Z间的数*产主320条指令**@return包含320条指令的数组*/publicstaticint[]productNumber(){intorder[]=newint[320];〃数组存储的数字表示指令Randomrand=newRandom();for(inti=0;i<320;i++)jf(i%4==0)order[i]=rand.nextlnt(319);//0<=order<319}elseif(i%4==l){order[

4、i]=order[i-l]+l;//l<=order<320}elseif(i%4==2){order[i]=rand.nextlnt(order[i-l]);}elseif(i%4==3){order[i]=order[i-l]+rand.nextlnt(320-order[i-l]);}returnorder;}/***打印链表*@paramlist*/publicstaticvoidprintList(Listlist){for(inttemt:list){System.out.print(temt

5、+"t");}System.out.println();}*先进先出算法*总是淘汰最先进入内存的页面*在实现的时候,记录上一次所替换的页而在内存的下标,则木次要替换的位置就是上次下标+1的位置,并仇下标是0~3循环的*@parammemoryNum*@parampagepublicstaticvoidFIFOChangePagefListvlnteger>memoryNumJntpage){intindex=FIFOChangePage(memoryNum,page,++times);memoryNum.remove(i

6、ndex);memoryNum.add(index,page);}/***返回本次替换的页面在内存中的位置*@parammemoryNum*@parampage*@paramtimes记录替换页面的次数,第一次替换的是内存第0个单元*(©return*/publicstaticintFIFOChangePage(Listvlnteger>memoryNumjntpage,inttimes){if(times==l){return0;}intindex=(FIFOChangePage(memoryNum,page,times

7、-l)+l)%4;returnindex;}publicstaticvoidmain(String[]args){int[]order=productNumber();System.out.println("320条随机指令数:");for(inti=0;j

8、order[i]/10;if(memoryNum.contains(page))〃若该指令所在页面已经在内存,输出该页面所在内存块的号}else〃没在内存,发生缺页,需要判断内存块是否存满,if(memoryNum.size()<4)〃内存没满,直接将所需页面调入内存{memoryNum.add(pag

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。