[kernel Q1]虚拟地址空间会不会用光了

发布于 2022-10-15 08:52:06 字数 164 浏览 45 评论 0

有个问题一直困扰我:
我们知道,内核的虚拟地址空间为4G(32位机)。其中内核固定占用一部分空间映射,用户程序动态占用一部分空间映射,再加上一些设备寄存器的映射。有没有一种可能,虚拟地址空间全部被占用了,此时再添加设备就无法进行端口映射了?或者高端的内存无法进行临时映射?
不知道大家有没有想过这个问题?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

夏夜暖风 2022-10-22 08:52:06

专门注册个MJ来问问题,还给编号么。。。。。

现在已经面临着“物理地址空间大于虚拟地址空间”这种问题了,以后64位系统就好了。
进程的虚拟地址空间,顶上1G由内核占据,1G中的前896M由内核固定、连续映射到底896M物理内存(如果有那么多的物理内存的话)。剩下的128M由内核轮流、分时使用。高端内存或者端口本来就只有那么一点虚拟内存可用。

天涯离梦残月幽梦 2022-10-22 08:52:06

专门注册个MJ来问问题,还给编号么。。。。。
被lz说的不好意思了,hmm,what is 编号?

现在已经面临着“物理地址空间大于虚拟地址空间”这种问题 ...
tempname3 发表于 2011-04-22 10:37

就是说高端内存很可能被用光啦。

戏剧牡丹亭 2022-10-22 08:52:06

高端内存一般是说大于896M部分的物理内存,你是说内核那高128M虚拟地址空间么?那块地方本来就很紧张吧。

冷情 2022-10-22 08:52:06

高端内存一般是说大于896M部分的物理内存,你是说内核那高128M虚拟地址空间么?那块地方本来就很紧张吧。
tempname3 发表于 2011-04-22 10:47

不是896~1G那段空间,而是用于设备地址空间映射的虚拟空间,如果这段空间用光了,设备上的寄存器,存储块等就无法直接映射到虚拟地址空间了?

似梦非梦 2022-10-22 08:52:06

回复 5# 懂医术的厨师

你把我说迷离了,内核能自由映射的虚拟地址空间只有那128M吧。

围归者 2022-10-22 08:52:06

是3G+896M到4G这一段虚拟地址空间。

揪着可爱 2022-10-22 08:52:06

写的太块了,没过脑子,你说的对,就是这128M~~~用光了就用光了是吧?

蓝梦月影 2022-10-22 08:52:06

应该是这样,分出个高端内存已经有虚拟地址空间太小的迹象。我记得情景分析里讲到这里时说,反正现在没有人用那么大内存,然后括号里补充,说不定过几年又要大跌眼镜了。最后果然大跌眼镜。。。。。

终陌 2022-10-22 08:52:06

恩,多谢tempname3。
p.s. 好马甲的名字

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文