首页 理论教育 页式虚拟存储器的工作原理及特点

页式虚拟存储器的工作原理及特点

时间:2023-10-31 理论教育 版权反馈
【摘要】:页式虚拟存储器是把虚拟地址空间和主存地址空间等分成大小相同的页。由于磁盘存储器的物理块大小是0.5KB,为了与外部存储器,特别是磁盘存储器相配合,虚拟存储器中页的大小通常也指定为0.5KB的整倍数。页表的长度等于该程序虚页数。图3-26页式虚拟存储器实地址变换通常,在页表的表项中还包括装入位、修改位、替换控制位及其他保护位等组成的控制字段。

页式虚拟存储器的工作原理及特点

页式虚拟存储器是把虚拟地址空间和主存地址空间等分成大小相同的页。页是一种逻辑上的划分,它可以由系统管理软件任意指定。由于磁盘存储器的物理块大小是0.5KB,为了与外部存储器,特别是磁盘存储器相配合,虚拟存储器中页的大小通常也指定为0.5KB的整倍数。目前在一般计算机系统中,一个页面的大小通常为1~16KB。

CPU访问主存时送出的是程序的虚地址,计算机必须判断出该地址单元的内容是否已在主存中:如果在,就要找出在主存的哪一页;如果不在,需要将所在页的内容调入指定的主存页后才能被CPU执行。为此,需要建立一张虚地址页号与实地址页号对照表,用于记录程序的虚页面调入主存时被安排在主存的位置。这张表叫页表。

页表是存储管理软件根据主存运行情况自动建立的,内存中有固定区域存放页表。每个程序都有一张页表。页表的长度等于该程序虚页数。页面的起点和终点地址是固定的,这给编制页表带来了方便。主存即实存的页称为实页,也称物理页;虚存的页称为虚页,也称逻辑页。显然,虚拟空间的虚页数要比主存空间的实页数多很多。

假设逻辑页号为0,1,2,…,m,物理页号为0,1,…,n,显然有m>n。虚存地址分为两个字段:高位字段为逻辑页号,低位字段为页内地址。实存地址也分两个字段:高位字段为物理页号,低位字段为页内地址。由于两者的页面大小一样,所以页内地址是相等的。

虚拟地址到主存实地址的变换是由放在主存的页表来实现的。在页表中,对应每一个虚存逻辑页号有一个表目,表目内容至少要包含该逻辑页所在的主存页面地址(物理页号),用它们作为实存地址的高字段,与虚存地址的页内地址字段相拼接,就产生了完整的实存地址,据此来访问主存。页式管理的地址变换如图3-26所示。

图3-26 页式虚拟存储器实地址变换(www.xing528.com)

通常,在页表的表项中还包括装入位、修改位、替换控制位及其他保护位等组成的控制字段。如装入位为“1”,表示该逻辑页已从外存调入主存;如装入位为“0”则表示对应的逻辑页尚未调入主存。如访问该页就要产生页面失效中断,启动输入输出子系统,根据页表项目中查得的外存地址,由磁盘等外存中读出新的页到主存中来。修改位指出主存页面中的内容是否被修改过,替换时是否要写回外存,替换控制位指出需替换的页等。

页式管理系统的基本信息传送单位是定长的页。新页调入主存也很容易掌握,只要有空白页面就可容纳。唯一可能造成浪费的是程序最后一页的零头的页内空间,它比段式管理系统的段外空间浪费要小得多。页式管理系统的缺点正好和段式管理系统相反。由于页不是逻辑上独立的实体,所以处理、保护和共享都不及段式来得方便。

需要注意以下两点,一是虚页内容若没有调入主存,则计算机启动输入输出系统,把虚地址指示的一页内容从辅存调入主存,再提供CPU访问。

二是虚地址和辅存地址不是一回事,程序员按虚存空间编址,虚地址由虚页号和页内地址组成,辅存实际地址以磁盘为例,地址由磁盘机号、磁头号、柱面号、块号、块内地址组成,因此从辅存调页时还需要进行虚存地址空间到辅存地址的变换。这个变换也可以采用前述类似的页表方式。此表称为外页表。

CPU访问主存页面失效时,调用外页表把程序的虚地址变换成辅存的实际地址,从辅存调出该虚页,而后根据页表指出的实页号再把虚页内容调入主存。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈