首页
社区
课程
招聘
[讨论]请教个关于保护模式页式内存管理的问题
发表于: 2009-5-6 21:34 3709

[讨论]请教个关于保护模式页式内存管理的问题

2009-5-6 21:34
3709
大家知道,在页式内存管理里面。
当要把一个页面调出内存,交换到磁盘的时候,要更新引用了这个内存页的页表,
因为有可能存在共享,所以这个引用很可能是多个。
那么就需要遍历所有进程的页表才能完成整个更新的动作。。
我的问题有2个:
1 整个遍历不是很费事么?
  我查看了linux 2.5内核的更新,说是加了一个reverse map 的东西,或许会有缓解。。
2 如果在遍历过程中发现一个进程的页表不在内存里,那是不是还要把整个页面先调入到内存中, 才能进行更新?如果是这样的话,那不是已经循环。。。。?我本来是为了要空出一个页面来自己用,结果运算过程就要再调入新的页面。。。如此这般性能不是很低下?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
anybody has suggestion?
2009-5-7 09:42
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
自己查了资料~~~
疑惑已经解开。。。
原来windows里面在PTE上有一个P位,用来指示这个入口指向一个Prototype PTE的结构,
也就是共享页面的时候是通过在页目录和页面之间又加了一个中间层来实现的,
这样当要把页面换出的时候,只需要把Prototype PTE改一下就可以了,不用遍历每个进程的页表。。。
2009-5-8 10:04
0
游客
登录 | 注册 方可回帖
返回
//