當我們輸入top命令之后
其中S代表的是當前進程的狀態(tài)
- R (Running 或 Runnable) 進程在CPU的就緒隊列中,正在運行或者等待運行。
- D (Disk Sleep) 不可中斷睡眠,進程正在跟硬件交互,不運行被其他進程或者中斷打斷。
- Z (Zombie) 進程已經結束,但是父進程沒有回收資源 (描述符、PID等)
- S (Interruptible Sleep) 可中斷狀態(tài)睡眠,進程因等待某個事件而被系統(tǒng)刮起,比如IO阻塞等。
- I (Idle) 空閑狀態(tài),D狀態(tài)會導致負載升高,但是I狀態(tài)不會,為了區(qū)分,這種情況。
- T(Stop) 暫?;蚋櫊顟B(tài)。
正常來說短時間的不可中斷進程是沒問題的,當出現大量不可中斷進程,那么就會出現故障。
linux中,子進程是通過fork系統(tǒng)函數創(chuàng)建的,它應該通過系統(tǒng)調用 wait() 或者 waitpid() 等待子進程結束,回收子進程的資源。如果父進程沒有調用,或者子進程執(zhí)行太快,子進程提前退出,那么子進程就會成為僵尸進程。僵尸進程會用盡PID,導致不能創(chuàng)建新進程。文章來源:http://www.zghlxwxcb.cn/news/detail-727623.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-727623.html
到了這里,關于【操作系統(tǒng)】聊聊不可中斷進程和僵尸進程的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!