yangq
驱动牛犊
驱动牛犊
  • 注册日期2001-07-13
  • 最后登录2002-04-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1789回复:2

关于“共享页表”(Prototype Page Tables)的一些疑惑。

楼主#
更多 发布于:2001-07-19 10:43
NT上采用单段式分页存储机制,线性地址到物理地址的转换是通过
二级页表的查找来实现的,共享代码和数据是通过不同的页表项
(Page Table Entry,即PTE)指向相同的物理地址来实现的。比如
Kernel32.dll的一个代码页可能会有很多个PTE指向它。如果这一页
被换到Pagefile中,系统将同时维护所有的这些PTE,为了较小系统
开销,NT引入Prototype Page Table(记PPT),一个共享页由PPT中的
一个Entry指向,而PTE的Entry则指向PPT。这样,如有换页,系统
只需维护PPT就够了。
问题是,这样一来,线性地址到物理地址的转换就需要了三级查找,
而CPU支持的只是二级查找,这样只能找到PPT的物理地址,而非需要
的共享页的物理地址。
谁能帮我解释清楚这个问题。谢谢!
lvyingf
游客
游客
沙发#
发布于:2001-07-23 08:23
我没有研究过这个问题,不过我想,中间过程应该是软件实现的,硬件上段地址的高端描述符内容还是应该是三级页表对应的内容吧
yangq
驱动牛犊
驱动牛犊
  • 注册日期2001-07-13
  • 最后登录2002-04-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-07-19 15:57
这个问题我已经解决,参见Inside Windows 2000 chapter 7
Page Fault Handling
游客

返回顶部