学习笔记
《x86汇编语言:从实模式到保护模式》
//www.greatytc.com/p/d481cb547e9f
层次化分页结构
-
每个任务都可以有
4GB
的虚拟内存空间; -
4GB
的虚拟内存空间,按照单个页4KB
的大小来分,可以分出0x100000
个页; - 映射表就需要有对应的
0x100000
个表项; - 每个表项大小是
4字节(Byte)
,可知完整的一张映射表大小为4MB=0x100000 * 4字节
; - 分层结构的主要手段是不采用单一的映射表,而是使用页目录表和页表;
- 随机选取1024个页,将它们的物理地址记录在一个页表里;
- 每个页表里的页表项占用4字节,每张页表大小是
4096字节=1024*4字节
; - 有多少张页表?
1024张
,0x100000 ÷ 1024 = 1024
; - 这
1024张
页表的物理地址又被集中记录在页目录中; - 页目录 中 一个页目录表项大小是4字节,内容是一张页表的物理地址;
整个分页系统的全局视图
- 每个任务都拥有这样的层次化分页结构;
- 页目录和页表也是普通的页,混迹于全部的物理页中;
- 它们与普通页(存放代码和数据)的不同之处仅仅在于功能不一样;
- 当任务撤销后,它们和任务所占用的普通页一样会被回收,并分配给其他任务;
- 每个任务都有自己的TSS(任务状态段),里面有记录CR3寄存器的域;
- CR3寄存器位于处理器内部,存放当前任务的页目录的物理地址。