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