实验5分页式存储管理

实验5分页式存储管理

ID:35544139

大小:145.00 KB

页数:12页

时间:2019-03-26

实验5分页式存储管理_第1页
实验5分页式存储管理_第2页
实验5分页式存储管理_第3页
实验5分页式存储管理_第4页
实验5分页式存储管理_第5页
资源描述:

《实验5分页式存储管理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验五分页式存储管理一、实验目的通过编写分页式存储管理的模拟程序,加深对页式存储管理方式的理解,熟悉逻辑地址到物理地址的转换过程,掌握虚拟存储管理中的页面调度算法,认识分页式虚拟存储系统中缺页中断的处理过程。二、实验内容1、设计一个分页式虚拟存储系统,用程序模拟实现,假设页面大小为1K,每个作业分配三个页面。2、页面调度分别采用FIFO调度算法和最佳置换算法。(淘汰页面时直接将该页面从内存中直接淘汰,不考虑该页面是否被修改,是否需要保存到外存。)3、假设当前作业的页表如下:4、假设逻辑指令格式为:+10113051操作符页号1页内地址1页号2页内

2、地址2例如:表示将页面1内地址为011单元的内容和页面2中地址为051的单元的内容相加。例如:(0100)+(1101)现有指令序列如下:5、编写模拟程序,执行上述指令,若当前页面不在内存,则使用页面调度算法,淘汰之前内存中相应页,然后该页放进内存。6、要求每执行上述指令流中的一条逻辑指令,输出相应的物理指令,若页表有修改,则显示修改后的页表。这次试验是用Java写的。首先,在页表类中,该类定义为:Page.java:package操作系统;publicclassPage{privateintpageNo;//表示页号码privateintmar

3、k;//表示标志privateintblockNo;//表示主存块号publicPage(intpageNo,intmark,intblockNo){super();this.pageNo=pageNo;this.mark=mark;this.blockNo=blockNo;}publicintgetPageNo(){returnpageNo;}publicvoidsetPageNo(intpageNo){this.pageNo=pageNo;}publicintgetMark(){returnmark;}publicvoidsetMark(in

4、tmark){this.mark=mark;}publicintgetBlockNo(){returnblockNo;}publicvoidsetBlockNo(intblockNo){this.blockNo=blockNo;}}其次,我将操作指令封装成一个类,该类为:Command.java:package操作系统;publicclassCommand{privatestaticintfifoindex=0;//下面有解释privatestaticintoptimalIndex=0;//跟上面一个一样privateintpageNo;//表示

5、页号privateStringpageAdd;//表示业内地址publicCommand(){}publicCommand(intpageNo,StringpageAdd){super();this.pageNo=pageNo;this.pageAdd=pageAdd;}publicintgetPageNo(){returnpageNo;}publicvoidsetPageNo(intpageNo){this.pageNo=pageNo;}publicStringgetPageAdd(){returnpageAdd;}publicvoidsetP

6、ageAdd(StringpageAdd){this.pageAdd=pageAdd;}前面部分就是设置与获取操作指令中的私有属性。下半部分分别是Fifo算法和最优置换算法。//该函数用来判断指令中的页号是否在主存当中booleanisInMain(Pagepage[],Commandfirst){if(page[first.getPageNo()].getMark()==1){returntrue;}returnfalse;}//用来输出当前主存中的页表voidprintPage(Pagepage[],Commandfirst,Commands

7、econd,Stringoper){System.out.println("当前主存的页表为:");System.out.println("页号"+"标志"+"主存块号");for(inti=0;i<3;i++){System.out.print(""+page[i].getPageNo());System.out.print(""+page[i].getMark());System.out.println(""+page[i].getBlockNo());}System.out.println();System.out.println("当前的

8、物理指令为:"+oper+""+first.getPageNo()+""+first.getPageAdd()+""+second.ge

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

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

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