免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1396 | 回复: 4
打印 上一主题 下一主题

[内核入门] 进程用尽堆栈区间 [复制链接]

论坛徽章:
2
双鱼座
日期:2014-05-10 15:58:14未羊
日期:2014-05-18 11:36:43
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-11 13:45 |只看该作者 |倒序浏览
本帖最后由 fireaway7 于 2014-05-11 13:57 编辑

学习到《Linux内核源代码情景分析》第2.5节,假设情景:进程在运行过程中,已经用尽了为本进程分配的堆栈区间,%esp指到了堆栈区间的最底部。
内核在创建新的进程时,是按什么标准来为它确定配堆栈区间初始大小的,什么时候会用完?“堆栈”两个字老是出现在一起,实际上它仅仅是指栈吧,malloc()分配得到的地址,应该在图的哪块区间呀?
            +----+  --------
            |||||||||||||  系统空间
            |-----  ---------
            | 堆栈区间 |
%esp->|-----
            | 空     洞  | 用户空间
            |-----
            | 数据和    |
            | 代码区间 |
            +----+  --------

论坛徽章:
16
CU十二周年纪念徽章
日期:2013-10-24 15:41:3415-16赛季CBA联赛之广东
日期:2015-12-23 21:21:55青铜圣斗士
日期:2015-12-05 10:35:30黄金圣斗士
日期:2015-11-26 20:42:16神斗士
日期:2015-11-19 12:47:50每日论坛发贴之星
日期:2015-11-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-18 06:20:002015亚冠之城南
日期:2015-11-10 19:10:492015亚冠之萨济拖拉机
日期:2015-10-28 18:47:282015亚冠之柏太阳神
日期:2015-08-30 17:21:492015亚冠之山东鲁能
日期:2015-07-07 18:48:39摩羯座
日期:2014-08-29 23:01:42
2 [报告]
发表于 2014-05-11 19:47 |只看该作者
用户空间的空洞

论坛徽章:
2
双鱼座
日期:2014-05-10 15:58:14未羊
日期:2014-05-18 11:36:43
3 [报告]
发表于 2014-05-11 20:09 |只看该作者
噢,那应该从空洞的底部往上吗,那怎么判断它有没有和堆栈“碰撞”?


   

论坛徽章:
0
4 [报告]
发表于 2014-05-13 17:19 |只看该作者
回复 1# fireaway7

希望这篇文章可以帮到你
http://blog.chinaunix.net/uid-23069658-id-3959636.html

   

论坛徽章:
2
双鱼座
日期:2014-05-10 15:58:14未羊
日期:2014-05-18 11:36:43
5 [报告]
发表于 2014-05-14 08:43 |只看该作者
非常感谢,现在又想起来一个问题,物理内存不够时,可以交换到磁盘,反而虚拟空间“可伸缩”的就只有free那块区间了,stack、brk,当两者“碰撞”时,再想扩展堆栈区间或malloc()都将失败,但往往有一些大型程序内存消耗需要在3G以上,32位系统就不能执行这个程序了吧,必须64位系统吧?
个人意淫:物理空间想像成银行可运转的钱,32位系统虚拟空间3G上限想像成可贷款金额的上限,银行有方法“挖东墙补西墙”,这个人不用这笔钱时再贷给那个人,感觉每个人都能贷到这笔钱一样(只是可能会等待一下),感觉银行把这笔钱“突破”到不止这麽多钱了,很奇妙,但是由于一些政策的原因,单次贷款金额必须有上限,就相当于虚拟空间3G,这个反而是一个“突破”不了。
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP