一般我們運(yùn)行程序都是Fork一個進(jìn)程后馬上執(zhí)行Exec加載程序,而Fork的時候?qū)嶋H上用的是父進(jìn)程的堆??臻g,Linux通過Copy On Write技術(shù)極大地減少了Fork的開銷。
Copy On Write的含義是只有真正寫的時候才把數(shù)據(jù)寫到子進(jìn)程的數(shù)據(jù),F(xiàn)ork時只會把頁表復(fù)制到子進(jìn)程,這樣父子進(jìn)程都指向同一個物理內(nèi)存頁,只有再寫子進(jìn)程的時候才會把內(nèi)存頁的內(nèi)容重新復(fù)制一份。