段页式内存管理中,段的线性地址被分割成大小相等的线性页(4KB,4MB 或者 2MB 等)。 物理内存空间同样也被分成相同大小的物理页。操作系统维护一个页表,用于管理线性页到 物理页的映射。页表在 IA-32 体系结构中分为两级,即页目录和页表

页目录是一个数组,其元素叫做页目录项(PDE),每个页目录项描述一个页表。页目录的 大小为一页(4KB),一个页目录中有 1024 个页目录项。页目录项的大小为 4 字节。页表 大小为一页(4KB)。页表项的大小为 4 字节,所以一个页表最多可以描述 1024 个线性 页。

物理页是预先划分好的,其开始位置一定在 4KB(2^12)的边界上。所以低 12 位全部是 零。然后低 12 位就可以储存而外的信息。

P 是存在位。R/W 是读写标志位。U/S 是用户标志位,0 表示超级用户。A 是存取标志 位。D 是脏标志位。

在页目录项中 PAT 标志换成了 PS 标志,表示物理页尺寸。

CR3 寄存器专门存放当前使用的页目录的物理地址,因此 CR3 又叫做页目录基地址寄存 器。只要进程在活动,它的页目录就应该一直驻留在内存。

页目录项也可以直接指向物理页,加快地址转换速度,通常将操作系统内核所占用的页设置 为 4MB 页。该页目录项的 PS 地址为 1 事,它所描述的是一个 4MB 的页而不再是一个页 表。

页式管理机制是操作系统内核启动的,启动方法是将 CR0 中的 PG 标志设置为 1。

启动分页机制后,每个线性地址都需要经过页目录和页表的转换。IA-32 体系结构加入了一 个高速缓存 TIB,其中储存最近使用的页目录和页表项。TIB 的经常的刷新工作由操作系统 内核负责。当页目录和页表项改变时,内核必须使得 TIB 相应的项失效。当 CR3 改变 时,TIB 中的所有内容(Global 页除外)会自动失效。INVLPG 指令可以将 TLB 中的指定 项设置为无效。