分页管理实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2015-2016学年第二学期

操作系统课程实验设计报告

班级网络2班

学号201414620207

姓名金铖

成绩

指导教师于复兴

1、实验题目:

(1)模拟请求分页存储管理中的硬件地址转换和产生却页中断的过程。

(2)采用先进先出(或LRU)算法实现分页管理的缺页调度。

2、实验目的:

(1)通过实验模拟请求分页存储管理中的硬件地址转换和产生却页中断帮助理解在分页式存储管理中怎样虚拟存储器。

(2)通过采用先进先出(或LRU)算法实现分页管理的缺页调度帮助理解和掌握模拟分页式虚拟存储管理的缺页中断,帮助自己对请求分页管理的概念有一个清楚的理解。3、程序设计及实现过程:

(1)请求分页储存管理是把作业的全部信息存在磁盘上,当作业被选中时,可把作业的开始几页先装入主存并启动运行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表格式为:

其中,标志表示对应页是否已经装入主存,“标志= 0”表示该页尚未装入主存,“标志= 1”表示该页已在主存。

主存块号表示已装入主存的页所占用的块号。

外存地址表示该页在外存的地址。

(2)作业执行完时,指令中的逻辑地址指出了参加运算的操作数存放的页号和单元号,硬件地址转换机构按页号查页表,若该页对应的标志为“1”,则表示该页已在主存。根据关系式:绝对地址=块号*块长+单元号。

计算出欲访问的主存单元地址,将块长设成2的整次幂,可把块号作为地址寄存器的高位部分,单元号作为低位部分。两个拼接形成绝对地址。按计算出的绝对地址取操作数,完成一条指令的执行。

若访问的页对应标志为“0”,则表示不在主存,这时硬件发缺页中断信号,由操作系统按页表中的该页对应的外存地址把该页装入主存后,执行该指令。

(3)设计一个“地址变换”程序来模拟硬件的地址转换工作。当访问的页不在主存时,则形成绝对地址后不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行,当访问的页不在主存时,则输出“*”,表示产生了一次缺页中断。

该算法框图如下:

地址变换算法:假定主存的每块长度为126个字节;现有一个共7页的作业,其中第0页至第3页已装入,其余三页尚未装入主存,该作业的页表为:

页号标志主存块号外存地址

0 1 5 011

1 1 8 012

2 1 9 013

3 1 1

4 0

5 0

6 0 121

运行设计的地址变换机构程序,显示或打印运行结果。因仅模拟地址变换,并不模拟指令的实际执行。

(4)在分页式虚拟存贮系统中,当硬件发出缺页中断后,转操作系统处理缺页中断。如果主存中已无空闲块,当采用先进先出算法时,则淘汰最先进入主存的一页,若该页修改过,还要存入磁盘,然后在把当前要访问的页装入该块,并修改页表中的对应标志。

当采用LRU算法时,则淘汰最近没有访问的页。

大概流程图如下:

(5)有了具体的核心算法实现法之后,就可以开发简单的界面,并且把以上综合到程序中,最后调试BUG,完成实验。

4、实验结果及分析:

(1)对于题目一我制作了一个帮助界面(如图1),可以便于我记起实验的容以及理解

相应知识,有了已知容,我输入逻辑地址(例如320),则程序输出为(如图2)。

图1 “题目一帮助界面”图2 “题目一运行界面”

(2)对于题目二我同样制作了一个帮助界面(如图3),可以便于我操作程序不出现格式错误,如果出错程序会弹出窗口报错(如图4)。当物理块数为3,页面使用列表为23 3 2 23 12 3 23 3时,则采用先进先出算法时table表应如下:

23 3 2 2 12 12 23 3

23 3 3 2 2 12 23

23 23 3 3 2 12

* * * * * * (‘*‘代表缺页中断)采用LRU算法时table表应如下:

23 3 2 23 12 3 23 3

23 3 2 23 12 3 23

23 3 2 23 12 12

* * * * * (‘*‘代表缺页中断)则程序输出为(如图5、6)。

图3 “题目二帮助界面”图4 “题目二错误窗口”

图5 “题目二FIFO算法”图6 “题目二LRU算法”

5、实验收获和体会:

通过本次实验,使我对于虚拟存储管理的相关容有了更深的认识,同时提升了我的编程水平和思考问题的能力,对于以后学习或者工作上的困难克服有很大的积极作用。通过程序设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会到了面向对象程序设计的便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。我很珍惜这次实验的机会,冰冻三尺非一日之寒,我相信以后会更加细心、更加勤奋。

6、源程序:

1、下面是MenuFrame.Java

package .hjc;

import static .hjc.Constant.*;

import java.awt.Button;

import java.awt.Color;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

相关文档
最新文档