看板 C_and_CPP 關於我們 聯絡資訊
小弟弱弱想請教一下眾大神們幾個問題 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
steve1012: vfork通常是接著exec 一起用 10/03 12:45
steve1012: exec會蓋掉原本的memory space 要是我認知正確的話 10/03 12:46
steve1012: 原本是因為常常用fork+exec 重新配置很浪費記憶體 所以 10/03 12:47
steve1012: 就有vfork的誕生 但現在fork 也很efficeint了 10/03 12:48