• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    什么是僵尸進程(Zombie Process)?

    僵尸進程是一個計算機程序的實例,盡管已完成執行,但仍保留進程表記錄。由于處理子進程的方式,此類已失效的進程通常與Unix?和其他類似操作系統關聯。當子進程完成執行時,父進程通常負責將其從進程表中刪除。通常不可能使...
    僵尸進程是一個計算機程序的實例,盡管已完成執行,但仍保留進程表記錄。由于處理子進程的方式,此類已失效的進程通常與Unix?和其他類似操作系統關聯。當子進程完成執行時,父進程通常負責將其從進程表中刪除。通常不可能使用kill命令直接刪除僵尸進程,但如果操作員使用signal child(SIGCHLD)通知,則通常可以讓父進程將其刪除。否則,可以通過終止parent.Man holding computer Zombie進程是一個隱喻性的描述性術語,指的是活死人。在Unix?和類似操作系統中,失效的進程可以被視為類似于僵尸,因為它們在不再執行其預期功能的情況下仍保持進程表的存在。當進程完成時執行它有時被稱為死亡,而操作系統恢復其進程表分配的方式可能被稱為收獲(reaping),僵尸的父進程在技術上應該收獲它的子進程,盡管這種情況并不總是發生。在某些情況下,僵尸進程的存在可能是有意的,甚至是需要的。子進程停止執行后,父進程可能需要稍后運行同一程序的另一個實例。如果尚未從進程表中刪除僵尸,新的子進程將不會被分配與舊子進程相同的標識(ID)。某些程序可能會從中受益,甚至需要這種區分。如果父進程沒有執行wait命令來捕獲它所負責的僵尸,可能會強制執行這個問題,這通常是通過kill命令并向父進程發送SIGCHLD信號來完成的如果一切正常,接收此信號的父進程應獲取其僵尸子進程,以便其ID和進程表位置可以重用。在某些情況下,父進程可能會忽略SIGCHLD信號。如果發生這種情況,并且操作員仍希望清除進程表,父進程可能會被終止。父進程創建的任何僵尸都將被分配為init進程的子進程。由于init會定期在其子進程上啟動wait命令,它負責的任何僵尸最終都將從進程表中刪除
    • 發表于 2020-08-06 07:28
    • 閱讀 ( 900 )
    • 分類:電腦網絡

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    推薦文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆