首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux 进程的用户空间使用?该如何解决

2012-03-01 
linux 进程的用户空间使用?pmalloc(2.8*1024*1024*1024)linux进程的用户地址空间是3G,为什么上面的语句

linux 进程的用户空间使用?
p=malloc(2.8*1024*1024*1024);

linux   进程的用户地址空间是3G,为什么上面的语句返回0?

[解决办法]
2.8? 浮点数?
[解决办法]
申请的太大了吧,用户空间的寻址空间好像没有那么大
[解决办法]
浮点数的原因吧.
Linux用户级进程空间好象没那么大空间可分配, 用kmalloc应该能分到.
[解决办法]
用户空间也就3G,其中还包括很多进程的代码段,数据段,BSS段,堆,栈,环境变量,参数等空间,谁也不知道用了多少,能不能申请成功随机性很大。
[解决办法]
16位计算机系统的最多可支持4G内存,其中1G为内核使用,3G为用户空间。这3G内存空间里面你还要运行很多其他程序,所以是你申请的太大了。
[解决办法]
有趣的实验

对于楼上xixi的说法有不同看法,这个内存空间不需要考虑其他程序,因为是虚拟内存空间,每个进程的空间大小都是3G。这个是收GLibc实现有关,我认为和编译器无关。另外这3G中也不可能全部用来malloc啊,还有代码段、数据段、栈段等等,heap只是其中一部分而已,怎么可能3G都给你呢。

I guess you should read some references before your experiment.

热点排行