收藏 分享(赏)

实验四__页式虚拟存储管理中地址转换和缺页中断.docx

上传人:HR专家 文档编号:11684493 上传时间:2020-11-22 格式:DOCX 页数:7 大小:88.36KB
下载 相关 举报
实验四__页式虚拟存储管理中地址转换和缺页中断.docx_第1页
第1页 / 共7页
实验四__页式虚拟存储管理中地址转换和缺页中断.docx_第2页
第2页 / 共7页
实验四__页式虚拟存储管理中地址转换和缺页中断.docx_第3页
第3页 / 共7页
实验四__页式虚拟存储管理中地址转换和缺页中断.docx_第4页
第4页 / 共7页
实验四__页式虚拟存储管理中地址转换和缺页中断.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、实验四页式虚拟存储管理中地址转换和缺页中断1 目的深入了解 式存 管理如何 地址 ; 一步 式虚 存 管理中如何 理缺 中断。2 知 式存 管理中的地址 的方法; 式虚 存 的缺 中断 理方法。3 内容 写程序完成 式虚 存 管理中地址 程和模 缺 中断的 理。 具体包括:首先 定的地址 行地址 工作, 若 生缺 先 行缺 中断 理, 然后再 行地址 ;最后 写主函数 所作工作 程 。假定主存 64KB ,每个主存 1024 字 ,作 最大支持到 64KB ,系 中每个作 分得主存 4 。4提示与 解 式存 管理中地址 程很 ,假定主存 的大小 2n 字 ,主存大小 2m字 和 地址m 位,

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

3、0 位)。在 式虚 存 管理方式中,作 信息作 副本放在磁 上,作 行 把作 信息的部分 面装入主存 器,作 行 若 的 面在主存中, 按上述方式 行地址 ,若 的 面不在主存中, 生一个“缺 中断”,由操作系 把当前所需的 面装入主存 器后, 再次 行 才可以按上述方法 行地址 。 式虚 存 管理方式中 表除 1 / 5号和该页对应的主存块号外,至少还要包括存在标志(该页是否在主存),磁盘位置(该页的副本在磁盘上的位置)和修改标志 (该页是否修改过) 。这样,在实验中页表格式如图2.7所示。页表用数组模拟,在实验中页表数据结构定义为:define n 32/实验中假定的页表长度,页表的长度实

4、际上是由系统按照作业长度决定的structintlnumber;/ 页号intflag;/表示该页是否在主存, “ 1”表示在主存, “ 0”表示不在主存intpnumber;/该页所在主存块的块号intwrite;/该页是否被修改过, “1”表示修改过, “0”表示没有修改过intdnumber;/ 该页存放在磁盘上的位置,即磁盘块号pagen;/ 页表定义开始取 出 逻 辑 地 址 l a dd r ess 的 页 号lnumber(高 6位)和页内地址 ad:lnumber=laddress10ad=laddress&0x3ff查页表第 lnumber行N页在主存 ?Y缺页中断从页表中取

5、得块号pnumber合并块号和块内地址形成物理地址 paddress:paddress=pnumber10|ad结束图 2.7模拟地址转换的流程图缺页处理过程简单阐述如下: 根据当前执行指令中逻辑地址中的页号查页表,判断该页是否在主存储器中,若该页标志为“ 0”,形成缺页中断。中断装置通过交换PSW 让操作系统的中断处理程序占用处理器; 操作系统处理缺页中断的方法就是查主存分配表,找一个空闲主存块;若无空闲块,查页表,选择一个已在主存的页面, 把它暂时调出主存。 若在执行过程中该页被修改过,则需将该页信息写回磁盘,否则不必写回;2 / 5 找出该页的磁盘位置,启动磁盘读出该页信息,把磁盘上读出

6、的信息装入第2 步找到的主存块,修改页表中该页的标志为“1”; 由于产生缺页中断的那条指令没有执行完,所以页面装入后应重新执行被中断的指令。当重新执行该指令时,由于要访问的页面已在主存中,所以可正常执行。关于第步的查找装入新页面的主存块的处理方式,不同系统采用的策略可能有所不同,这里采用局部置换算法,就是每个作业分得一定的主存块,只能在分得的主存块内查找空闲块, 若无空闲主存块, 则从该作业中选择一个页面淘汰出主存。实验中使用局部置换算法。使用局部置换算法时, 存在这样一个问题: 就是在分配给作业主存空间时, 装入哪些页?有的系统采取不装入任何一页,当执行过程中需要时才将其调入。有的系统采用页

7、面预置的方法, 就是估计可能某些页面会先用到,在分配主存块后将这些页面装入。实验中,采用第二种方法,分配主存空间时将前几页调入主存,假定系统中每个作业分得主存块m( m=4)块,则将第 0m-1 页装入主存。因为是模拟硬件工作, 所以实验中如果访问的页不在主存时,则输出该页页号, 表示硬件产生缺页中断, 然后直接转去缺页中断处理;由于采用页面预置方法,在给定的主存块中一定无空闲块, 只能淘汰已在主存的一页;没有启动磁盘的工作, 淘汰的页需要写回磁盘时,用输出页号表示,调入新的一页时,将该页在页表中的存在标志置为“1”,输出页号表示将该页调入主存。页号为 lnumber输出: * lnumber

8、淘汰页的页号j=phead;phead=lnumber ;head=(head+1)%m;N第 j页修改标志 =1?Y输出:页号j修改页表:第 j页存在标志改为“ 0”第 lunmber页存在标志改为“ 1”第 lnumber页修改标志改为“ 0”第 lnumber页主存块号为第 j页原主存块号输出:页号lnumber结束图 2.8采用先进先出页面置换算法的缺页中断流程图3 / 5主存中无空 , 装入一个 面,必 按某种算法从已在主存的 中 一 ,将它 出主存, 出主存空 ,用来存放需装入的 面, 个工作称 “ 面 度”。如何 出的 是很重要的,常用的 面 度算法有先 先出算法、最近最少用算法

9、和最近最不常用算法。 中使用先 先出 度算法。先 先出 度算法 是 留在主存 最 的一 出。 先 先出算法 , 易 。 可以把在主存 器的 的 号按 入主存的先后次序排成 列,每次 是 出 首的 ,当装入一个新 后,把新 的 号排入 尾。 中,用一个数 存放 号的 列。假定分配 作 的主存 数 m,数 可由m 个元素 成, p0 , p1 pm-1 ; 首指 head;采用 面 置的方法, 号 列的 度 是 m, tail 等于 (head+1)%m 。因此可以使用一个指 ,只用head 即可。在装入一个新的 ,装入 和淘汰 同 行,当装入一个新的 ,将其 号存入数 :淘汰 的 号 =phea

10、d;phead= 新装入 的 号;head=(head+1)%m; 中,采用先 先出 面置 算法的缺 中断流程 如 2.8 所示。开始取指令中的页号 lnumber查页表第 lnumber栏缺页中断N第 lnumber页存在标志 =1?Y形成物理地址输出:物理地址指令会修N改页内容?Y第 lnumber 页修改标志改为“ 1”结束图 2.9 一条指令执行的模拟流程图 行一条指令 , 不模 指令的 行, 只是考 指令 行是否修改 面, 若修改 面, 将 的 表中修改 志 置 “ 1”,然后 出 后的物理地址,并 出物理地址来表示一条指令 行完成; 如果 的 不在主存 , 生缺 中断, 然后直接 去缺 中断 理, 最后模 中断返回, 就是返回重新 行地址 。 一条指令 行的模 流程 如 4 / 52.9 所示。因为没有实际主存, 所以在模拟程序中首先手工输入页表信息, 创建该作业的页表; 然后循环执行假定的指令,观察地址转换情况。5课外题采用 LRU 页面调度算法编程实现上述虚拟页式存储管理的地址转换。(范文素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)5 / 5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报