文档介绍:袀实验四用先进先出(FIFO);羀进一步认识页式虚拟存储管理中如何处理缺页中断。;羀页式虚拟存储的缺页中断处理方法。。实验具体包括:首先对给定的地址进行地址转换工作,若发生缺页则先进行缺页中断处理,然后再进行地址转换;最后编写主函数对所作工作进程测试。聿假定主存64KB,每个主存块1024字节,作业最大支持到64KB,系统中每个作业分得主存块4块。,假定主存块的大小为2n字节,主存大小为2m'字节和逻辑地址m位,则进行地址转换时,首先从逻辑地址中的高m-n位中取得页号,然后根据页号查页表,得到块号,并将块号放入物理地址的高m'-n位,最后从逻辑地址中取得低n位放入物理地址的低n位就得到了物理地址,过程如图1所示。腿蝿页号页内地址膆块号块内地址膂页号…块号艿膀蚄膅………荿物理地址芇逻辑地址莅m'nn-10羄mnn-10葿蚈肇螂葿肈薅蒁蕿葿芇图1页式存储管理系统地址转换示意图薄虿地址转换是由硬件完成的,实验中使用软件程序模拟地址转换过程,模拟地址转换的流程图如图2所示(实验中假定主存64KB,每个主存块1024字节,即n=10,m'=16,物理地址中块号6位、块内地址10位;作业最大64KB,即m=16,逻辑地址中页号6位、页内地址10位)。蚆在页式虚拟存储管理方式中,作业信息作为副本放在磁盘上,作业执行时仅把作业信息的部分页面装入主存储器,作业执行时若访问的页面在主存中,则按上述方式进行地址转换,若访问的页面不在主存中,则产生一个“缺页中断”,由操作系统把当前所需的页面装入主存储器后,再次执行时才可以按上述方法进行地址转换。页式虚拟存储管理方式中页表除页号和该页对应的主存块号外,至少还要包括存在标志(该页是否在主存),磁盘位置(该页的副本在磁盘上的位置)和修改标志(该页是否修改过)。这样,在实验中页表格式如图2所示。蚅页表用数组模拟,在实验中页表数据结构定义为(同学们可自行定义其它功能等价的结构):芃definen32 /*实验中假定的页表长度,页表的长度实际上是由系统按照作业长度决定的*/螈struct肇{intlnumber; /*页号*/蒇intflag; /*表示该页是否在主存,“1”表示在主存,“0”表示不在主存*/肂intpnumber; /*该页所在主存块的块号*/膂intwrite; /*该页是否被修改过,“1”表示修改过,“0”表示没有修改过*/蒈intdnumber; /*该页存放在磁盘上的位置,即磁盘块号*/袅}page[n]; /*页表定义*/肅膂衿薇袄图2模拟地址转换的流程图节芀缺页处理过程简单阐述如下:肄①根据当前执行指令中逻辑地址中的页号查页表,判断该页是否在主存储器中,若该页标志为“0”,形成缺页中断。中断装置通过交换PSW让操作系统的中断处理程序占用处理器;蚃②操作系统处理缺页中断的方法就是查主存分配表,找一个空闲主存块;若无空闲块,查页表,选择一个已在主存的页面,把它暂时调出主存。若在执行过程中该页被修改过,则需将该页信息写回磁盘,否则不必写回;莂③找出该页的