1. 程式人生 > >【Linux】程序狀態。重點殭屍程序,孤兒程序

【Linux】程序狀態。重點殭屍程序,孤兒程序

我們都知道程序可以認為是一個執行的程式,那麼為了弄明白正在執行的程序是什麼意思,我們需要先了解程序的狀態。。。下面的狀態在kernel原始碼中定義:

 1.程序狀態

         R執行狀態:並不意味著程序一定在執行中,它表明程序要麼在執行中要麼在執行佇列裡。          S睡眠狀態(可中斷睡眠):意味著程序在等待事件完成。          D磁碟休眠狀態(不可中斷睡眠):這個狀態的程序通常會等待IO的結束。          T停止狀態:可以傳送SIGSTOP給程序來停止程序,這個被暫停的程序可以傳送SIGCONT訊號讓程序繼續執行。          t跟蹤狀態:          X死亡狀態:這個狀態只是一個返回狀態,你不會在任務列表中看到這個狀態。          Z殭屍狀態:    2.殭屍程序:         2.1產生原因:               2.10.子程序先於父程序退出。            2.1.1.子程序退出,為了儲存自己的退出原因,因此這個退出後資源不會被完全釋放,等待父程序來獲取退出狀態,然後釋放子程序所有資源。              2.1.2假如父程序沒有關心子程序的退出,那麼這時候這個退出的子程序將成為殭屍程序,佔用著系統資源而不釋放,造成資源洩露。         2.2危害:資源洩露,正常程序可能無法建立。             子程序先於父程序退出,父程序沒有關心子程序的退出狀態,所以【形成殭屍狀態】。             殭屍程序退出:kill -9強制殺死     3.孤兒程序:

        3.1產生原因:父程序先於子程序退出,那麼子程序就成為孤兒程序,那麼這個子程序將被孤兒院init程序所領養,釋放由init釋放