久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      linux中fork和exec有什么區(qū)別

      linux中fork和exec的區(qū)別:1、fork用于創(chuàng)建一個新的進程,稱為子進程,而exec則是用指定的程序替換當前進程的全部內(nèi)容;2、exec的前后進程id沒有改變,而fork重新創(chuàng)建了子進程后id改變了。

      linux中fork和exec有什么區(qū)別

      本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。

      linux中fork和exec有什么區(qū)別

      fork和exec都是和進程相關(guān)的調(diào)用.

      fork

      調(diào)用fork可以創(chuàng)建一個新的進程稱為子進程, 調(diào)用fork函數(shù)的進程稱為父進程, 子進程的所有內(nèi)容都和父進程相同, 除了pcd(進程控制模塊), 如果這兩個進程都沒有對內(nèi)存做寫操作的話, 那么兩個進程共享調(diào)用fork函數(shù)的進程的內(nèi)存頁, 這樣表面上看fork創(chuàng)建進程比exec創(chuàng)建進程快. 但只要兩個進程其中一個對內(nèi)存做了修改, 那么在修改之前, 就會把內(nèi)存頁復制一份給子進程用.

      exec

      調(diào)用exec創(chuàng)建進程, 實際上不是創(chuàng)建進程, 更準確的說是加載可執(zhí)行文件, 調(diào)用exec后會把exec中指定的可執(zhí)行文件加載到調(diào)用exec的進程的空間內(nèi), 并把調(diào)用exec的進程的內(nèi)存更新為exec中指定的可執(zhí)行文件的內(nèi)容.

      區(qū)別

      fork主要是Linux用來建立新的進程(線程)而設計的,exec()系列函數(shù)則是用來用指定的程序替換當前進程的全部內(nèi)容。因此exec()系列函數(shù)常常在前三個函數(shù)使用以后調(diào)用,來建立一個全新的程序運行環(huán)境。Linux用init進程啟動其余進程的過程通常都是這樣的

      fork是最簡單的調(diào)用,不須要任何參數(shù),僅僅是在建立一個子進程并為其建立一個獨立于父進程的空間。

      我們用fork函數(shù)創(chuàng)建新進程后,經(jīng)常會在新進程中調(diào)用exec函數(shù)去執(zhí)行另外一個程序(比如在我們寫程序時需要使用我們之前的寫過的某個程序的功能,通過該方式直接去調(diào)用一個可執(zhí)行程序可以大大的簡化我們的程序)。當進程調(diào)用exec函數(shù)時,該進程被完全替換為新程序。因為調(diào)用exec函數(shù)并不創(chuàng)建新進程,所以前后進程的ID并沒有改變。

      父進程通過fork()的方式產(chǎn)生一個一模一樣的子進程,創(chuàng)建出來的子進程再以exec函數(shù)的方式來執(zhí)行其實際要執(zhí)行的進程,最終就成為一個可以執(zhí)行某些特定功能的子進程。

      一個進程一旦調(diào)用exec類函數(shù),它本身就“死亡”了,系統(tǒng)把代碼段替換成新的程序的代碼,廢棄原有的數(shù)據(jù)段和堆棧段,并為新程序分配新的數(shù)據(jù)段與堆棧段,唯一留下的,就是進程號,也就是說,對系統(tǒng)而言,還是同一個進程,不過已經(jīng)是另一個程序了。即調(diào)用exec族函數(shù)后,其后面的程序都不會在執(zhí)行了。

      推薦學習:Linux視頻教程

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號