首页 新闻 会员 周边

关于用户态、内核态,内存独立与共享,其具体实现与理解问题

0
悬赏园豆:5 [已解决问题] 解决于 2010-10-20 13:47

有一段话如下:“32位windows中,0~4G线性内存空间。0~2G为应用程序内存空间(处于其中每个进程都有独立的内存空间),2G~4G为系统内核空间(内核进程完全共享)。R3级无法访问2~4G内存空间。”
我想问的是:
1、用户态下,进程间独立的内存空间,具体到计算机,是怎么实现的?是通过分页,分段吗?
2、在内核态下,进程间共享内存,是指自己的东西别的进程也一览无余,还是有自己隐私的内核栈?
如何形象简单深刻的理解这个问题,请教高手。谢谢。

浪里飞的主页 浪里飞 | 菜鸟二级 | 园豆:207
提问于:2010-10-19 15:00
< >
分享
最佳答案
0

1、用户态下,进程间独立的内存空间,具体到计算机,是怎么实现的?是通过分页,分段吗?

windows 采用虚拟内存而不是实模式管理内存,用户态下,进程切换时会同时切换虚拟内存映射表,就是把老的映射表先保存起来,然后对要工作的进程恢复映射表,这样对于任何进程都可以拥有独立的4G虚拟内存地址空间。

 

2、在内核态下,进程间共享内存,是指自己的东西别的进程也一览无余,还是有自己隐私的内核栈?

内核态下,进程只能共享内核资源,比如通过 FileMapping 来共享内存,这个FileMapping 就是内核态的资源,不能共享用户态的内存资源。

收获园豆:5
eaglet | 专家六级 |园豆:17139 | 2010-10-20 06:43
谢谢eaglet。也就是在内核态时进程没有自己私有的内核栈吧?
浪里飞 | 园豆:207 (菜鸟二级) | 2010-10-20 08:45
有。
浪里飞 | 园豆:207 (菜鸟二级) | 2010-10-20 18:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册