- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
x86中的页表结构和页表项格式
一、页表结构
分页转换功能由驻留在内存中的表来描述,该表称为页表 (page table ),存放在物理地址空间中。页表可
看做简单的220个物理地址数组。线性到物理地址的映射功能可以简单地看做进行数组查找。线性地址的高
20位构成这个数组的索引值,用于选择对应页面的物理 (基)地址。线性地址的低12位给出了页面中的偏
移量,加上页面的基地址最终形成对应的物理地址。由于页面基地址对齐在4K边界上,因此页面基地址的
低12位肯定是0 。这意味着高20位的页面基地址和12位偏移量连接组合在一起就能得到对应的物理地址。
页表中每个页表项的大小为32位。由于只需要其中的20位来存放页面的物理基地址,因此剩下的12位可用
于存放诸如页面是否存在等的属性信息。如果线性地址索引的页表项被标注为存在的,则表示该项有效,
我们可以从中取得页面的物理地址。如果页表项中信息表明 (说明、指明)页不存在,那么当访问对应物
理页面时就会产生一个异常。
1.两级页表结构
页表含有220 (1M)个表项,而每项占用4B。如果作为一个表来存放的话,它们最多将占用4MB的内存。
因此为了减少内存占用量,80x86使用了两级表。由此,高20位线性地址到物理地址的转换也被分成两步来
进行,每步使用 (转换)其中的10bit 。
第一级表称为页目录 (page directory )。它被存放在1页4K页面中,具有2 10 (1K)个4B长度的表项。这
些表项指向对应的二级表。线性地址的最高10位 (位31~22 )用作一级表 (页目录)中的索引值来选择
2 10个二级表之一。
第二级表称为页表 (page table ),它的长度也是1个页面,最多含有1K个4B的表项。每个4B表项含有相
关页面的20位物理基地址。二级页表使用线性地址中间10位 (位2 1~12 )作为表项索引值,以获取含有页
面20位物理基地址的表项。该20位页面物理基地址和线性地址中的低12位 (页内偏移)组合在一起就得到
了分页转换过程的输出值,即对应的最终物理地址。
图4- 17给出了二级表的查找过程。其中CR3寄存器指定页目录表的基地址。线性地址的高10位用于索引这
个页目录表,以获得指向相关第二级页表的指针。线性地址中间10位用于索引二级页表,以获得物理地址
的高20位。线性地址的低12位直接作为物理地址低12位,从而组成一个完整的32位物理地址。
(点击查看大图)图4- 17 线性地址和物理地址之间的变换
2.不存在的页表
使用二级表结构,并没有解决需要使用4MB内存来存放页表的问题。实际上,我们把问题搞得有些复杂
了。因为我们需要另增一个页面来存放目录表。然而,二级表结构允许页表被分散在内存各个页面中,而
不需要保存在连续的4MB内存块中。另外,并不需要为不存在的或线性地址空间未使用部分分配二级页
表。虽然目录表页面必须总是存在于物理内存中,但是二级页表可以在需要时再分配。这使得页表结构的
大小对应于实际使用的线性地址空间大小。
页目录表中每个表项也有一个存在 (present )属性,类似于页表中的表项。页目录表项中的存在属性指明
对应的二级页表是否存在。如果目录表项指明对应的二级页表存在,那么通过访问二级表,表查找过程第2
步将同如上描述继续下去。如果存在位表明对应的二级表不存在,那么处理器就会产生一个异常来通知操
作系统。页目录表项中的存在属性使得操作系统可以根据实际使用的线性地址范围来分配二级页表页面。
目录表项中的存在位还可以用于在虚拟内存中存放二级页表。这意味着在任何时候只有部分二级页表需要
存放在物理内存中,而其余的可保存在磁盘上。处于物理内存中页表对应的页目录项将被标注为存在,以
表明可用它们进行分页转换。处于磁盘上的页表对应的页目录项将被标注为不存在。由于二级页表不存在
而引发的异常会通知操作系统把缺少的页表从磁盘上加载进物理内存。把页表存储在虚拟内存中减少了保
存分页转换表所需要的物理内存量。
二、页表项格式
页目录和页表的表项格式如图4- 18所示。其中位31~12含有物理地址的高20位,用于定位物理地址空间中
一个页面 (也称为页帧)的物理基地址。表项的低12位含有页属性信息。前文已经讨论过存在属性,这里
简要说明其余属性的功能和用途。
文档评论(0)