[問題] vfork() + exec() 相關疑問

看板C_and_CPP作者 (善良老百姓)時間8年前 (2016/10/03 03:53), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串1/1
小弟弱弱想請教一下眾大神們幾個問題 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://www.ptt.cc/bbs/C_and_CPP/M.1475466797.A.06A.html

10/03 12:45, , 1F
vfork通常是接著exec 一起用
10/03 12:45, 1F

10/03 12:46, , 2F
exec會蓋掉原本的memory space 要是我認知正確的話
10/03 12:46, 2F

10/03 12:47, , 3F
原本是因為常常用fork+exec 重新配置很浪費記憶體 所以
10/03 12:47, 3F

10/03 12:48, , 4F
就有vfork的誕生 但現在fork 也很efficeint了
10/03 12:48, 4F
文章代碼(AID): #1NyTOj1g (C_and_CPP)