目录
分页机制介绍
分页机制是 80x86 内存管理机制的第二部分。它在分段机制的基础上完成虚拟地址到物理地址的转换过程。分段机制把逻辑地址转换成线性地址,而分页机制则把线性地址转换成物理地址。分页机制可用于任何一种分段模型。处理器分页机制会把线性地址空间划分成页面,然后这些线性地址空间页面被映射到物理地址空间的页面上。分页机制的几种页面级保护措施,可和分段机制保护措施和用或替代分段机制的保护措施。
通过设置控制寄存器 CR0 的 PG 为可以启用分页机制。如果 PG=1,则启用分页操作,处理器会使用分页机制将线性地址转换成物理地址。如果 PG=0,则禁用分页机制,此时分段机制产生的线性地址直接用作物理地址。
与分段机制不同,分页机制对固定大小的内存块(称为页面)进行操作。分页机制把线性地址空间和物理地址空间都划分成页面。线性地址空间中的任何页面可以被映射到物理地址空间的任何页面上。如下图所示。
80x86使用 4K 字节固定大小的页面,每个页面均是 4KB,并且对其于 4K 地址边界处。 这表示分页机制把 2^32字节(4GB)的线性地址空间划分成 2^20(1M = 1048576)个页面。分页机制通过吧线性地址空间中的页面重新定位到物理地址空间中进行操作。由于 4K 大小的页面作为一个单元进行映射,并且对其于 4K 边界,因此线性地址的低 12 位可做为页内偏移地量直接作为物理地址的低 12 位。分页机制执行的重定向功能可以看作是把线性地址的高 20 位转换到对应物理地址的高 20 位。
线性到物理地址转换功能,被扩展成允许一个线性地址被标注为无效的,而非要让其产生一个物理地址。以下两种情况一个页面可以被标注为无效的:
操作系统不支持的线性地址。
对应的虚拟内存系统中的页面在磁盘上而非在物理内存中。
在第一中情况下,产生无效地址的程序必须被终止,在第二种情况下,该无效地址实际上是请求 操作系统虚拟内存管理器 把对哟ing的页面从磁盘加载到物理内存中,一供程序访问。
页表结构
未完待续.....
页表项格式
虚拟存储