您的位置:首页 > 其它

Windows分页管理机制的学习(一)理论部分

2014-11-08 20:55 302 查看

PAE模式

什么是PAE模式:PAE,物理地址扩展,是基于x86 的服务器的一种功能,它使运行 Windows Server 2003, Enterprise Edition 和 Windows Server 2003,Datacenter Edition 的计算机可以支持4GB 以上物理内存。物理地址扩展 (PAE) 允许将最多64GB 的物理内存用作常规的4 KB 页面,并扩展内核能使用的位数以将物理内存地址从32扩展到36。

如何开启关闭PAE:Win7 开启: 在cmd中输入: bcdedit /set pae forceenable

Win7 关闭:bcdedit /set pae forcedisable

XP 开启:C:\boot.ini 加上 /noexecute=optin /fastdetect /PAE

XP 关闭:C:\boot.ini 将 /noexecute=optin /fastdetect /PAE 改为 /execute /NOPAE

寄存器:与分页管理机制有关的寄存器有CR0、CR3、CR4寄存器,通过INTEL手册的阅读可以发现

CR0 的第16位控制WP:

对于Intel 80486或以上的CPU,CR0的位16是写保护(Write Proctect)标志。当设置该标志时,处理器会禁止超级用户程序(例如特权级0的程序)向用户级只读页面执行写操作;当该位复位时则反之。该标志有利于UNIX类操作系统在创建进程时实现写时复制(Copy on Write)技术。

CR0的第31位控制PG:

CR0的位31是分页(Paging)标志。当设置该位时即开启了分页机制;当复位时则禁止分页机制,此时所有线性地址等同于物理地址。在开启这个标志之前必须已经或者同时开启PE标志。即若要启用分页机制,那么PE和PG标志都要置位。

CR4 的第5位控制着PAE模式。

CR3用来存放最高级页目录地址(物理地址),各级页表项中存放的也是物理地址。

需要用到的术语:

分段机制:主要实现虚拟地址到线性地址的转换。

分页机制:主要实现线性地址到物理地址的转换。页的大小4K,每页都是边界都是4K的整数倍。

页码:因为分页起始地址是模4K,所以分页的开始地址都是 “XXXXX000H”的形式, XXXXX就是页码.

80386把页映射表分为两级:

第一级页表:页目录表(Page Directory Table),缩写:PDT. 大小:4K ,每项4字节,包含二级页表所在物理地址空间页的页码.存在:物理内存中(不能是虚拟机内存,如果是虚拟内存中,那么就递归查找了,不符合逻辑,所以存在于物理地址中)

第二级页表:页表(Page Table Table),缩写:PTT,大小:4K ,每项4字节,包含对应物理空间页的页码.

每个进程都有一个单独的页目录,微软将它存放在EPROCESS==>KPROCESS==>DirectoryTableBase[2]

(未开启PAE)与线性地址的对应关系:





(开启PAE)与线性地址的对应关系:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: