[051][x86汇编语言]16.1.2 层次化分页结构:页目录、页表、页

学习笔记

《x86汇编语言:从实模式到保护模式》
https://www.jianshu.com/p/d481cb547e9f

层次化分页结构

[051][x86汇编语言]16.1.2 层次化分页结构:页目录、页表、页_第1张图片
图16-6 页目录、页表和页的对应关系.png
  • 每个任务都可以有4GB的虚拟内存空间;
  • 4GB的虚拟内存空间,按照单个页4KB的大小来分,可以分出0x100000个页;
  • 映射表就需要有对应的0x100000个表项;
  • 每个表项大小是4字节(Byte),可知完整的一张映射表大小为4MB=0x100000 * 4字节
  • 分层结构的主要手段是不采用单一的映射表,而是使用页目录表页表
  • 随机选取1024个页,将它们的物理地址记录在一个页表里;
  • 每个页表里的页表项占用4字节,每张页表大小是4096字节=1024*4字节;
  • 有多少张页表?1024张0x100000 ÷ 1024 = 1024 ;
  • 1024张页表的物理地址又被集中记录在页目录中;
  • 页目录一个页目录表项大小是4字节,内容是一张页表的物理地址

整个分页系统的全局视图

[051][x86汇编语言]16.1.2 层次化分页结构:页目录、页表、页_第2张图片
图16-7 整个分页系统的全局视图.png
  • 每个任务都拥有这样的层次化分页结构;
  • 页目录和页表也是普通的页,混迹于全部的物理页中;
  • 它们与普通页(存放代码和数据)的不同之处仅仅在于功能不一样;
  • 当任务撤销后,它们和任务所占用的普通页一样会被回收,并分配给其他任务;
  • 每个任务都有自己的TSS(任务状态段),里面有记录CR3寄存器的域;
  • CR3寄存器位于处理器内部,存放当前任务页目录的物理地址。

TSS 复习见 https://www.jianshu.com/p/adb70daa6d2c

你可能感兴趣的:([051][x86汇编语言]16.1.2 层次化分页结构:页目录、页表、页)