免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: socay2
打印 上一主题 下一主题

[C] exec 后,地址空间的疑惑 [复制链接]

论坛徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龙
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
21 [报告]
发表于 2012-12-18 09:12 |只看该作者
是啊,楼主到底fork之后,还exec么?这可是完全不一样的啊~~~~

论坛徽章:
1
巨蟹座
日期:2014-03-18 23:44:30
22 [报告]
发表于 2012-12-18 09:50 |只看该作者
回复 21# liuiang


    我的目的就是想了解下,在子进程里 exec 装入另外一个程序后,它所占用的实际内存大小会不会是从父进程那里继承过来的。

不过进过上面朋友们的讨论,好像 exec 后的大小有新加进来的程序决定。系统会重新映射内存

论坛徽章:
1
巨蟹座
日期:2014-03-18 23:44:30
23 [报告]
发表于 2012-12-18 09:52 |只看该作者
moxies 发表于 2012-12-18 08:55
@socay2擦,真刻苦。

你看的那段,好像有个前提就是fork 后 exec 。。。 对也不对?


待会我继续验证。

论坛徽章:
0
24 [报告]
发表于 2012-12-18 18:48 |只看该作者
exec会删除子进程地址空间,重新加载的。。。。那用vfork更有意义。。。

论坛徽章:
0
25 [报告]
发表于 2012-12-19 11:22 |只看该作者
本帖最后由 落在秋天的叶 于 2012-12-19 11:27 编辑

重置是肯定的了。fork进程后,父子进程共享相同的虚拟地址空间和物理地址空间(exceve操作执行后只是完成了磁盘空间到虚拟地址空间的映射,并没有分配相应的物理地址空间),当子进程需要对某个页执行写操作时,就会在物理内存中生成对该页的拷贝(此时才会根据需要为子进程分配物理地址空间内的存储),完成写操作,并且改写子进程响应的页表项。不知回答的对不对,求大神喷我~回复 10# zylthinking


   

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
26 [报告]
发表于 2012-12-19 12:23 |只看该作者
落在秋天的叶 发表于 2012-12-19 11:22
重置是肯定的了。fork进程后,父子进程共享相同的虚拟地址空间和物理地址空间(exceve操作执行后只是完成了 ...


你仍然是 COW 的概念, 这里和 COW 没关系; 简单设想一下就明白
A for B, B exec C, 然后 C 不写内存, 只读某个地址, 那么会不会将 A 内存中的内容读出来? 比如 A 里面的账号密码之类的???

重置意味着将原来在页表中的物理地址抹去, 既然已经抹去了, 还怎么 COW? 他根本不知道原来的那个页面是哪个了

论坛徽章:
0
27 [报告]
发表于 2012-12-19 15:07 |只看该作者
执行exec后,子进程的逻辑段被删除,之前进程的数据不可能读到。页表也肯定是被抹去了的。查过相关资料,新创建的逻辑段是COW的。至于原因不清楚,求指点。回复 26# zylthinking


   

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
28 [报告]
发表于 2012-12-19 15:22 |只看该作者
逻辑段 不知道是哪个, 当然也就不知道 COW 是什么情况
就我所理解而言, 似乎没有相关概念, 如果不是你将 fork 跟 exec 搞混了, 那就是我不知道的情况

论坛徽章:
1
巨蟹座
日期:2014-03-18 23:44:30
29 [报告]
发表于 2012-12-19 21:08 |只看该作者
终于明白 COW == copy on write 了

论坛徽章:
0
30 [报告]
发表于 2013-01-11 20:27 |只看该作者
重新分配进程空间,分配的方法很重要的。















Don't cry because it is over, smile because it happened.
nike free run 2 ,   nike free run 3 ,   air max 2013
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP