前面的 程序控制我們已經陸續的介紹啦,今天介紹一下孤兒程序,殭屍程序,還有守護程序
一.孤兒程序
父程序 先於 子程序結束,那子程序就成為了孤兒程序,父程序的資源被 init程序**,沒有結束的子程序就被init程序領養,init程序可以被看程是孤兒院的院長。
二.殭屍程序:
父程序 還在執行 ,子程序已經結束了【按常理來說,程序結束,他所開闢的資源都會被釋放,當時這裡 我要提醒大家,並不是所有的資源都會被釋放的,核心中pcb(程序控制塊)就不會被釋放,雖說pcb大概佔十幾個位元組,但是殭屍程序多了也會浪費很多資源的】, 注意:kill -9 是不會 ** 核心中殘留的 pcb的, 它只是乙個終止程序的命令 ,殭屍程序已經終止了 ,就是 核心中的pcb還沒有**。
思考:1.為什麼孤兒程序沒有中父進
Linux 殭屍程序與孤兒程序
之前的部落格有講過儲存程序資訊的乙個重要的資料結構,task struct結構體,其中,state表示程序可能出現的狀態。如下 static const char const task state array 我們對個別狀態進行解釋如下 s sleeping 淺度睡眠,也是不可中斷睡眠。d disk...
linux之殭屍程序 孤兒程序
殭屍程序即為程序已經執行完畢,但是其父程序沒有呼叫wait waitpid,則該程序將變成乙個殭屍程序,雖然沒有執行,但占用系統中的乙個pcb空間。殭屍程序多的話,可以將系統卡死。殭屍程序的實現為 使用folk建立乙個子程序,讓子程序進來之後很快就退出,父程序什麼也不做,即沒有呼叫wait wait...
Linux殭屍程序和孤兒程序
程式執行到結尾的時候,有兩種情況。子程序先退出,或者父程序先退出。如果父程序先退出的話,那麼子程序就會變成孤兒程序,最後被init接管,我們來看乙個例子。我們可以看到子程序的父程序變成了init,孤兒程序並不可怕,它們最後會被統一銷毀。但是如果子程序先退出呢?子程序先退出有兩種情況 1.呼叫wait...