殭屍程序,孤兒程序

2021-08-22 14:44:19 字數 920 閱讀 7937

乙個殭屍程序的例子

乙個程序使用fork建立子程序,如果子程序退出,而父程序並沒有呼叫wait/waitpid獲取子程序的狀態資訊,那麼子程序的程序描述符仍然儲存在系統中,這種程序就稱之為殭屍程序

1 #include2 #include3 #include4 

5 int main()

6 13 else if(id>0)

19 else

23 return 0;

24 }

執行結果如下: 

我們可以看到,子程序27675使殭屍程序

殭屍程序的危害:

殭屍程序的避免:

**演示:

1 #include2 #include3 #include4 #include5 

6 int main()

7 14 else if(id==0)

15

24 else//father

25

31 return 0;

32 }

執行結果:

孤兒程序是沒有父程序的程序,孤兒程序會被孤兒院收養(init程序)。每當出現乙個孤兒程序的時候,核心就把孤兒程序的父程序設定為init,而init程序會迴圈的wait()它的已經退出的子程序。這樣,當乙個孤兒程序生命週期結束使用者,init程序就會處理它的一切善後工作

孤兒程序 殭屍程序

殭屍程序和孤兒程序 殭屍程序 殭屍程序是乙個比較特殊的狀態,當程序退出並且父程序沒有讀取到子程序的退出碼,就會產生殭屍程序,殭屍程序會一直儲存在程序表中,並且一直等待父程序讀取退出狀態碼。所以,只要子程序退出,父程序還在執行,但是父程序沒有讀取到子程序的狀態,子程序就會進入殭屍狀態。建立乙個殭屍程序...

殭屍程序, 孤兒程序

一,定義 當程序退出並且父程序 使用wait 系統呼叫 沒有讀取到子程序退出的返回 時就會產生殭屍程序。殭屍程序會以終止狀態保持在程序表中,並且會一直在等待父程序讀取退出狀態 簡單來說就是,在父程序中有乙個子程序,該子程序完成父程序交給的任務,子程序完成後會給父程序乙個任務結果返回,但父程序一直沒有...

殭屍程序 孤兒程序

程序在之前分為3個狀態 1.執行狀態 running 正在cpu中執行的程序。2.就緒狀態 ready 已獲得除了處理器外的所需資源,隨時準備著執行的程序。3.阻塞狀態 blocked 因為缺少除了cpu外的其他資源,無法滿足執行條件的程序。殭屍程序 乙個程序使用fork建立子程序,如果子程序退出,...