处理缺页中断.doc

上传人:hw****26 文档编号:2402709 上传时间:2019-05-11 格式:DOC 页数:5 大小:354KB
下载 相关 举报
处理缺页中断.doc_第1页
第1页 / 共5页
处理缺页中断.doc_第2页
第2页 / 共5页
处理缺页中断.doc_第3页
第3页 / 共5页
处理缺页中断.doc_第4页
第4页 / 共5页
处理缺页中断.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验四 处理缺页中断 1实验目的 深入了解页式存储管理如何实现地址转换; 进一步认识页式虚拟存储管理中如何处理缺页中断。 2实验预备知识 页式存储管理中的地址转换的方法; 页式虚拟存储的缺页中断处理方法。 3实验内容 编写程序完成页式虚拟存储管理中地址转换过程和模拟缺页中断的处理。实验具体包括:首先对给定的地址进行地址转换工作,若发生缺页则先进行缺页中断处理,然后再进行地址转换;最后编写主函数对所作工作进程测试。 假定主存 64KB,每个主存块 1024 字节,作业最大支持到 64KB,系统中每个作业分得 主存块 4 块。 4提示与讲解 页式存储管理中地址转换过程很简单,假定主存块的大小为 2

2、n 字节,主存大小为 2m字节和逻辑地址 m 位,则进行地址转换时,首先从逻辑地址中的高 m-n位中取得页号,然后根据页号查页表,得到块号,并将块号放入物理地址的高m-n位,最后从逻辑地址中取得低 n位放入物理地址的低 n位就得到了物理地址,过程如图 1 所示。 图 1 页式存储管理系统地址转换示意图 地址转换是由硬件完成的,实验中使用软件程序模拟地址转换过程,模拟地址转换的流程图如图 2 所示(实验中假定主存 64KB,每个主存块 1024 字节,即 n=10,m=16,物理地址中块号 6 位、块内地址 10 位;作业最大 64KB,即 m=16,逻辑地址中页号 6 位、页内地址 10 位)

3、。 在页式虚拟存储管理方式中,作业信息作为副本放在磁盘上,作业执行时仅把作业信息的部分页面装入主存储器,作业执行时若访问的页面在主存中,则按上述方式进行地址转换,若访问的页面不在主存中,则产生一个“缺页中断”,页 号 页内地址 块 号 块内地址 页号 块号 物理地址 逻辑地址 m n n-1 0 m n n-1 0 由操作系统把当前所需的页面装入主存储器后,再次执行时才可以按上述方法进行地址转换。页式虚拟存储管理方式中页表除页号和该页对应的主存块号外,至少还要包 括存在标志(该页是否在主存),磁盘位置(该页的副本在磁盘上的位置)和修改标志(该页是否修改过)。这样,在实验中页表格式如图 2 所示

4、。 页表用数组模拟,在实验中页表数据结构定义为 (同学们可自行定义其它功能等价的结构 ): define n 32 /*实验中假定的页表长度,页表的长度实际上是由系统按照作业长度决定的 */ struct int lnumber; /*页号 */ int flag; /*表示该页是否在主存,“ 1”表示在主存,“ 0”表示不在主存 */ int pnumber; /*该页所在主存块的块号 */ int write; /*该页是否被修改过,“ 1”表示修改过,“ 0”表示没有修改过 */ int dnumber; /*该页存放在磁盘上的位置,即磁盘块号 */ pagen; /*页表定义 */ 开

5、始取出逻辑地址 l a d d r e s s 的页号ln u m b er (高 6 位)和页内地址 ad :ln u m b er = lad d r ess 1 0ad = lad d r essp h ea d = lnu mb er ;h ea d = ( h ea d + 1 ) %m;第 j页修改标志 =1 ?修改页表:第 j页存在标志改为“ 0 ”第 lun mb er 页存在标志改为“ 1 ”第 lnu mb er 页修改标志改为“ 0 ”第 lnu mb er 页主存块号为第 j页原主存块号结束输出: * ln u mb er输出:页号 ln u mb er输出:页号 jN

6、Y图 3 采用先进先出页面置换算法的缺页中断流程图 主存中无空闲块时,为装入一个页面,必须按某种算法从已在主存的页中选择一页,将它暂时调出主存,让出主存空间,用来存放需装入的页面,这个工作称为“页面调度”。如何选择调出的页是很重要的,常用的页面调度算法有先进先出算法、最近最 少用算法和最近最不常用算法。实验中使用先进先出调度算法。先进先出调度算法总是选择驻留在主存时间最长的一页调出。先进先出算法简单,易实现。可以把在主存储器的页的页号按进入主存的先后次序排成队列,每次总是调出队首的页,当装入一个新页后,把新页的页号排入队尾。实验中,用一个数组存放页号的队列。假定分配给作业的主存块数为 m,数组

7、可由 m 个元素组成, p0, p1 pm-1;队首指针 head;采用页面预置的方法,页号队列的长度总是 m, tail 等于 (head+1)%m。因此可以使用一个指针,只用 head 即可。在 装入一个新的页时,装入页和淘汰页同时执行,当装入一个新的页时,将其页号存入数组: 淘汰页的页号 =phead; phead=新装入页的页号; head=(head+1)%m; 实验中,采用先进先出页面置换算法的缺页中断流程图如图 3 所示。 开始取指令中的页号 lnu mb er查页表第 lnu mb er 栏第 lnu mb er 页存在标志 =1 ?缺页中断形成物理地址结束NY输出:物理地址指

8、令会修改页内容?NY第 lnu mb er 页修改标志改为“ 1 ”图 4 一条指令执行的模拟流程图 实验执行一条指令时,不模拟指令的执行,只是考虑指令执行是否修改页面,若修改页面,则将该页的页表中修改标志为置“ 1”,然后输出转换后的物理地址,并输出物理地址来表示一条指令执行 完成;如果访问的页不在主存时,则产生缺页中断,然后直接转去缺页中断处理,最后模拟中断返回,就是返回重新进行地址转换。一条指令执行的模拟流程图如图 4 所示。 因为没有实际主存,所以在模拟程序中首先手工输入页表信息,创建该作业的页表;然后循环执行假定的指令,观察地址转换情况。 5. 实验报告 的内容 ( 1) 实验题目。 ( 2) 程序中使用的数据结构及符号说明。 ( 3) 编写一份源程序并附上注释。 ( 4) 打印显示初始页表,每次调出(要调出一页时)和装入的页号以及 执行最后一条指令后在主存中的页面号(即数组的值)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。