http://bluefish.blog.51cto.com/214870/38747 2007 當創(chuàng)建子進程時,它完全復制了父進程的代碼和數(shù)據(jù)區(qū),并會在 其中執(zhí)行子進程部分的代碼。 而執(zhí)行塊設備上的一個程序時,一般是在子進程中運行exec()系統(tǒng)調(diào)用來操作的。在進入exec()后,子進程原來的代碼和數(shù)據(jù)區(qū)就會被清掉(釋放)。待該子進程開始運行新程序時,由于此時內(nèi)核還沒有從塊設備上加載該程序的代碼,CPU就會立刻產(chǎn)生代碼頁面不存在的異常(Fault),此時內(nèi)存管理程序就會 從塊設備上加載相應的代碼頁面,然后CPU又重新執(zhí)行引起異常的指令。到此時新程序的代碼才真正開始被執(zhí)行。 本文出自 “bluefish” 博客,請務必保留此出處http://bluefish.blog.51cto.com/214870/38747 |
|
來自: 心不留意外塵 > 《task sys》