假如多级页表是二级的,第二级可以不存储不存在的页表项,也就是按需创建,那么为啥一级页表不能按需再创建
1
zengmingyang96 260 天前
有了书架才能装书
|
2
PTLin 260 天前
进入 ia32e 模式后,cpu 指令中的全部地址都是虚拟地址,都需要通过 mmu 进行翻译,mmu 自然就需要 cr3 中的一级页表,不是可不可以按需的问题,而是 x86 的设计上就不可能能按需创建。
在一级页表中的目录项才可以指明是否存在,不存在的话发生缺页中断,进而从 cr2 读取到缺页的地址进行下一步操作。 |
3
xiaozhaoz 260 天前
@PTLin
我觉得也不是 cpu 设计的原因,是操作系统实现的原因。 如果说的是 userspace process , 没必要一级页表也要动态分配,因为程序总是要用内存的。一级页表开销也不大。 如果真的要实现 userspace process 一级页表也要动态分配,以前尝试过 cr3 放一个 reserved address ,然后触发 sigbus 后再分配 pdbr |