• 1095阅读
  • 1回复

Windows分页管理机制的学习(一)理论部分 [复制链接]

上一主题 下一主题
离线啊冲
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2016-02-04



PAE模式


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

如何开启关闭PAEWin7 开启: 在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

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

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

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

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与线性地址的对应关系:






顶0踩
善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线v2680267313

只看该作者 沙发  发表于: 2016-04-30
用户被禁言,该主题自动屏蔽!
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个