好文档 - 专业文书写作范文服务资料分享网站

大作业用先进先出(FIFO)页面调度算法处理缺页中断

天下 分享 时间: 加入收藏 我要投稿 点赞

实验四 用先进先出(FIFO)页面调度算法处理缺页中断

1.实验目的

深入了解页式存储管理如何实现地址转换;

进一步认识页式虚拟存储管理中如何处理缺页中断。

2.实验预备知识

页式存储管理中的地址转换的方法; 页式虚拟存储的缺页中断处理方法。

3.实验内容

编写程序完成页式虚拟存储管理中地址转换过程和模拟缺页中断的处理。实验具体包括:首先对给定的地址进行地址转换工作,若发生缺页则先进行缺页中断处理,然后再进行地址转换;最后编写主函数对所作工作进程测试。

假定主存64KB,每个主存块1024字节,作业最大支持到64KB,系统中每个作业分得主存块4块。

4.提示与讲解

页式存储管理中地址转换过程很简单,假定主存块的大小为2n字节,主存大小为2m'字节和逻辑地址m位,则进行地址转换时,首先从逻辑地址中的高m-n位中取得页号,然后根据页号查页表,得到块号,并将块号放入物理地址的高m'-n位,最后从逻辑地址中取得低n位放入物理地址的低n位就得到了物理地址,过程如图1所示。 m n n-1 页 号 页内地址 逻辑地址

页号 ? 块

m' n n-1 0

物理地址 块 号 块内地址 ? ? ?

图1 页式存储管理系统地址转换示意图

地址转换是由硬件完成的,实验中使用软件程序模拟地址转换过程,模拟地址转换的流程图如图2所示(实验中假定主存64KB,每个主存块1024字节,即n=10,m'=16,物理地址中块号6位、块内地址10位;作业最大64KB,即m=16,逻辑地址中页号6位、页内地址10位)。

在页式虚拟存储管理方式中,作业信息作为副本放在磁盘上,作业执行时仅把作业信息的部分页面装入主存储器,作业执行时若访问的页面在主存中,则按上述方式进行地址转换,若访问的页面不在主存中,则产生一个“缺页中断”,

1 / 5

由操作系统把当前所需的页面装入主存储器后,再次执行时才可以按上述方法进行地址转换。页式虚拟存储管理方式中页表除页号和该页对应的主存块号外,至少还要包括存在标志(该页是否在主存),磁盘位置(该页的副本在磁盘上的位置)和修改标志(该页是否修改过)。这样,在实验中页表格式如图2所示。 页表用数组模拟,在实验中页表数据结构定义为(同学们可自行定义其它功能等价的结构):

define n 32 /*实验中假定的页表长度,页表的长度实际上是由系统按照作业长度决定的*/ struct

{int lnumber; /*页号*/

int flag; /*表示该页是否在主存,“1”表示在主存,“0”表示不在主存*/

int pnumber; /*该页所在主存块的块号*/ int write; /*该页是否被修改过,“1”表示修改过,“0”表示没有修改过*/

int dnumber; /*该页存放在磁盘上的位置,即磁盘块号*/

}page[n]; /*页表定义*/

开始取出逻辑地址laddress的页号lnumber(高6位)和页内地址ad:lnumber=laddress>>10ad=laddress&0x3ff查页表第lnumber行N缺页中断页在主存?Y从页表中取得块号pnumber合并块号和块内地址形成物理地址paddress:paddress=pnumber<<10|ad结束

图2 模拟地址转换的流程图

缺页处理过程简单阐述如下:

① 根据当前执行指令中逻辑地址中的页号查页表,判断该页是否在主存储器中,若该页标志为“0”,形成缺页中断。中断装置通过交换PSW让操作系统的

2 / 5

中断处理程序占用处理器;

② 操作系统处理缺页中断的方法就是查主存分配表,找一个空闲主存块;若无空闲块,查页表,选择一个已在主存的页面,把它暂时调出主存。若在执行过程中该页被修改过,则需将该页信息写回磁盘,否则不必写回;

③ 找出该页的磁盘位置,启动磁盘读出该页信息,把磁盘上读出的信息装入第2步找到的主存块,修改页表中该页的标志为“1”;

④ 由于产生缺页中断的那条指令没有执行完,所以页面装入后应重新执行被中断的指令。当重新执行该指令时,由于要访问的页面已在主存中,所以可正常执行。

关于第②步的查找装入新页面的主存块的处理方式,不同系统采用的策略可能有所不同,这里采用局部置换算法,就是每个作业分得一定的主存块,只能在分得的主存块内查找空闲块,若无空闲主存块,则从该作业中选择一个页面淘汰出主存。实验中使用局部置换算法。

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

3 / 5

大作业用先进先出(FIFO)页面调度算法处理缺页中断

实验四用先进先出(FIFO)页面调度算法处理缺页中断1.实验目的深入了解页式存储管理如何实现地址转换;进一步认识页式虚拟存储管理中如何处理缺页中断。2.实验预备知识页式存储管理中的地址转换的方法;页式虚拟存储的缺页中断处理方法。3.实验内容编写程序完成页式虚
推荐度:
点击下载文档文档为doc格式
2lbbo4poqh1xu1x81dzc4m0xd0pw4b00no1
领取福利

微信扫码领取福利

微信扫码分享