38 下列有關 UNIX 作業系統中所稱的殭屍程序(zombie process)之敘述何者錯誤?
(A)殭屍程序永遠不會被排入中央處理器執行
(B)殭屍程序的識別碼(id)不會儲存於程序表(process table)中
(C)殭屍程序可能導致無法產生新程序
(D)殭屍程序曾開啟的檔案會被關閉

答案:登入後查看
統計: A(150), B(174), C(57), D(112), E(0) #1428030

詳解 (共 1 筆)

#3899069

我們知道在unix/linux中,正常情況下,子程序是通過父程序建立的,子程序再建立新的程序。子程序的結束和父程序的執行是一個非同步過程,即父程序永遠無法預測子程序 到底什麼時候結束。 當一個 程序完成它的工作終止之後,它的父程序需要呼叫wait()或者waitpid()系統呼叫取得子程序的終止狀態。


 在UNIX 系統中,一個程序結束了,但是他的父程序沒有等待(呼叫wait / waitpid)他, 那麼他將變成一個殭屍程序. 
        殭屍程序: 在fork()/execve()過程中,假設子程序結束時父程序仍存在,而父程序fork()之前既沒安裝SIGCHLD訊號處理函式呼叫 waitpid()等待子程序結束, 又沒有顯式忽略該訊號,則子程序成為殭屍程序。

By. https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/482366/ 
3
0