作者kyuudonut (善良老百姓)
看板C_and_CPP
标题[问题] vfork() + exec() 相关疑问
时间Mon Oct 3 11:53:12 2016
小弟弱弱想请教一下众大神们几个问题
1. exec() 就我的理解是直接切换到另外一个 memory space,所以这边会进行一个完整的可执行档的载入吗? 这边会利用原本的 frame 还是配置新的 frame 呢?若 os 配置新的 frame 进行载入,原本旧的 frame 该如何处理?
2. vfork() 是 parent 与 child 共用一 memory space,但 vfork() + exec() 的运用不就也会影响到 parent 原本的执行吗,毕竟他们还是 share 一样的 frame?
3. 小弟假设 exec() 会另外分配 frame 给载入欲执行的档案,然後 vfork() 完的 child process 便可利用更新过的 page table 执行新的程式。不知道这样对不对?
希望能给一点指正或关键字 谢谢
另外手机排版 可能有点丑 请见谅 QQ
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.141.214.69
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1475466797.A.06A.html
1F:推 steve1012: vfork通常是接着exec 一起用 10/03 12:45
2F:→ steve1012: exec会盖掉原本的memory space 要是我认知正确的话 10/03 12:46
3F:→ steve1012: 原本是因为常常用fork+exec 重新配置很浪费记忆体 所以 10/03 12:47
4F:→ steve1012: 就有vfork的诞生 但现在fork 也很efficeint了 10/03 12:48