一番前へ
最初へ戻る
(16)

アドレス空間の複製


  • fork(2)時に複製
    • init 以外はすべてこれを利用

  • 複製処理の流れ(kernel/fork.c)
    1. 新規に mm_struct{}を確保し、内容は親プロセスのものをコピー(copy_ mm())
    2. 親プロセスのもつメモリを全てコピーオンライトでマップし直す(dup_mmap())
      • PTEにおいて全てのページをReadOnly属性にする
        • Read時: 問題無し
        • Write時: Page Fault 発生。コピーオンライト処理を実施
戻る
戻る
次へ
次へ