什麼是殭屍程序和孤兒程序?怎麼避免殭屍程序

2021-09-07 08:52:48 字數 334 閱讀 2614

孤兒程序:父程序退出,子程序還在執行的這些子程序都是孤兒程序,孤兒程序將被 init 程序(進

程號為 1)所收養,並由 init 程序對它們完成狀態收集工作。

殭屍程序:程序使用 fork 建立子程序,如果子程序退出,而父程序並沒有呼叫 wait 或 waitpid 獲

取子程序的狀態資訊,那麼子程序的程序描述符仍然儲存在系統中的這些程序是殭屍程序。

避免殭屍程序的方法:

1.fork兩次用孫子程序去完成子程序的任務;

2.用wait()函式使父程序阻塞;

3.使用訊號量,在 signal handler 中呼叫waitpid,這樣父程序不用阻塞。

什麼是殭屍程序和孤兒程序?怎麼避免殭屍程序?

孤兒程序 父程序退出,子程序還在執行的這些子程序都是孤兒程序,孤兒程序將被init 程序 程序號為1 所收養,並由init 程序對他們完成狀態收集工作。殭屍程序 程序使用fork 建立子程序,如果子程序退出,而父程序並沒有呼叫wait 獲waitpid 獲取子程序的狀態資訊,那麼子程序的程序描述符仍...

殭屍程序和孤兒程序

殭屍程序 乙個子程序在其父程序還沒有呼叫wait 或waitpid 的情況下退出。這個子程序就是殭屍程序。孤兒程序 乙個父程序退出,而它的乙個或多個子程序還在執行,那麼那些子程序將成為孤兒程序。孤兒程序將被init程序 程序號為1 所收養,並由init程序對它們完成狀態收集工作。殭屍程序將會導致資源...

殭屍程序和孤兒程序

什麼是殭屍程序?乙個子程序在其父程序沒有呼叫wait 或waitpid 的情況下退出。這個子程序就是殭屍程序。如果其父程序還存在而一直不呼叫wait,則該殭屍程序將無法 等到父程序結束後,會被init 驗證 include include includeint main 3秒後查詢其程序資訊 通過上...