函数返回只会将栈指针移动,不会将内存返回内存池。一个进程/线程也就一个栈而已。 snail_314 发表于 2010-03-17 23:42
回蜗牛兄: 我觉得移动了栈指针之后,就可以看成回收了,因为后面的内容就可以被下次调用的函数覆盖了。 accessory 发表于 2010-03-17 23:52
应用态的C程序,通常调用函数返回之后,只是将ESP进行调整。至于栈对应的内存空间,并未立即回收。通常整个 ... Godbach 发表于 2010-03-18 10:09
stack应该也不是一直会被缺页异常无穷的分配下去。用ulimit -a可以看到每个进程都有个stack size的限制,当 ... snail_314 发表于 2010-03-18 09:58
LZ,你的问题是不是这样的: LINUX 用户态的栈是可以动态增长的,那么如果只是增长的话,会浪费一些空间,你 ... accessory 发表于 2010-03-18 01:45
是的,绝大部分资源分配都是有个限制的。写个无限递归导致栈溢出,就是虚拟地址空间的溢出,非物理 ... re_load 发表于 2010-03-18 10:45
回复 chenzhanyiczy 没试过。但应该会一直缺页异常下去,直到VM size超过2G, segment fault snail_314 发表于 2010-03-18 11:13
如果stack size无限制的时候,假如进程不退出,那么进程栈 占用的物理内存不是很大? chenzhanyiczy 发表于 2010-03-18 11:13
如果stack size没有限制呢 chenzhanyiczy 发表于 2010-03-18 11:08
问题来了,呵呵 环境: Linux crmop 2.6.18-53.el5xen #1 SMP Wed Oct 10 17:06:12 EDT 2007 i686 athlo ... chenzhanyiczy 发表于 2010-03-18 18:02