copy-on-write fork とは?
copy-on-write fork は、親のメモリをすぐには複製せずに子プロセスを作成します。代わりに、両者は読み取り専用としてマークされた同じ物理ページを共有します。どちらかのプロセスが共有ページを変更したときにのみ、カーネルは書き込む側のためにプライベートなコピーを作成します。これによりプロセス生成が高速になり、決して変更されないメモリのコピーを避けられます。
なぜ重要か
copy-on-write は、大きなプロセスでも fork を安価に保ちます。これは CI で多数の worker を生成するツールにとって重要です。また、子と親が食い違い始めたときにのみメモリ使用量が急増しうる理由も説明します。
関連ガイド
What Is the Fork System Call?The fork system call creates a new process by duplicating the calling one, producing a child that is a near-i…
What Is a Virtual Memory Page?A virtual memory page is a fixed-size block of a process address space that the system maps to physical memor…
What Is a Page Fault?A page fault occurs when a program accesses a virtual page not currently in physical memory, prompting the ke…