Linux 模擬實現殭屍程序和孤兒程序

2021-09-25 16:34:17 字數 746 閱讀 2439

殭屍程序-z(zombie)

子程序退出,父程序還在執行,但父程序沒有讀取子程序狀態,子程序進入z狀態。

1 #include 2 #include 3 #include 4 #include 5 

6 using namespace std;

7 8 int main()

9 14 if(id == 0)

22 }

23 }

24 else

29 }

30 return 0;

31 }

殭屍程序危害

孤兒程序

父程序先退出,子程序就稱之為孤兒程序

1 #include 2 #include 3 #include 4 #include 5 

6 using namespace std;

7 8 int main()

9 14 if(id == 0)

19 }

20 else

26 cout << "father is running..." << endl;

27 sleep(1);

28 }

29 }

30 return 0;

31 }

Linux 模擬實現殭屍程序和孤兒程序

我們先了解一下程序都有哪幾種狀態。kernel源 裡定義了程序的如下狀態 r 執行狀態 running 表明程序要麼是在執行中要麼是在執行佇列裡。s 睡眠狀態 sleeping 意味著程序在等待事件完成,有時叫做可中斷睡眠。d磁碟休眠狀態 disk sleep 不可中斷睡眠狀態,在這個狀態程序通常會...

模擬實現殭屍程序

當程序退出並且父程序沒有讀取到子程序退出返回的 時就會產生殭屍程序。乙個程序在呼叫exit命令結束自己的生命的時候,其實它並沒有真正的銷毀,而是留下乙個稱為殭屍程序 zombie 的資料結構 系統呼叫exit,它的作用是 使程序退出,但也僅僅限於將乙個正常的程序變成乙個殭屍程序,並不能將其完全銷毀 ...

模擬實現殭屍程序和孤兒程序

殭屍程序 乙個子程序在其父程序沒有呼叫wait 或waitpid 的情況下退出。這個子程序就是殭屍程序。程序在終止時,系統會 所有核心分配給它的記憶體 關閉它開啟的所有檔案等等,但還會保留一些極少的資訊,因為 程序終止後有些資訊對於父程序和核心還是很有用的,例如程序的id號 程序的退出狀態 程序執行...