作者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/m.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