面試題 Linux中進程有哪幾種狀態(tài)

在Linux中進程有哪幾種狀態(tài),每種狀態(tài)代表的含義是什么?

使用top -c 查看

R工作中的進程

S可中斷的睡眠狀態(tài)

I空閑狀態(tài)(idle)

O進程正在處理器運行

B進程正在等待更多的內存頁

D不可中斷的睡眠狀態(tài)

T暫停狀態(tài)或跟蹤狀態(tài)

X出狀態(tài),進程即將被銷毀

Z僵尸進程

1、TASK_RUNNING:(R)
進程當前正在運行,或者正在運行隊列中等待調度。只有在該狀態(tài)的進程才可能在CPU上運行,同一時刻可能有多個進程處于可執(zhí)行狀態(tài)。

2、TASK_INTERRUPTIBLE:(S)
進程處于睡眠狀態(tài),處于這個狀態(tài)的進程因為等待某事件的發(fā)生(比如等待socket連接、等待信號量),而被掛起。當這些事件發(fā)生時,對應的等待隊列中的一個或多個進程將被喚醒。一般情況下,進程列表中的絕大多數(shù)進程都處于TASK_INTERRUPTIBLE狀態(tài)。進程可以被信號中斷。接收到信號或被顯式的喚醒呼叫喚醒之后,進程將轉變?yōu)?TASK_RUNNING 狀態(tài)。

3、TASK_UNINTERRUPTIBLE:(D)
不可中斷的睡眠狀態(tài),此進程狀態(tài)類似于 TASK_INTERRUPTIBLE,只是它不會處理信號。不可中斷,指的是進程不響應異步信號,無法用kill命令關閉處于TASK_UNINTERRUPTIBLE狀態(tài)的進程。中斷處于這種狀態(tài)的進程是不合適的,因為它可能正在完成某些重要的任務。 當它所等待的事件發(fā)生時,進程將被顯式的喚醒呼叫喚醒??商幚韘ignal, 有延遲

4、TASK_STOPPED:
進程已中止執(zhí)行,它沒有運行,并且不能運行。接收到 SIGSTOP 和 SIGTSTP 等信號時,進程將進入這種狀態(tài)。接收到 SIGCONT 信號之后,進程將再次變得可運行。

5、TASK_TRACED:(T)
正被調試程序等其他進程監(jiān)控時,進程將進入這種狀態(tài)。

6、EXIT_ZOMBIE:(Z)
進程已終止,它正等待其父進程收集關于它的一些統(tǒng)計信息。不可被kill, 即不響應任務信號, 無法用SIGKILL殺死

7、EXIT_DEAD:(X)
最終狀態(tài)(正如其名)。將進程從系統(tǒng)中刪除時,它將進入此狀態(tài),因為其父進程已經(jīng)通過 wait4() 或 waitpid() 調用收集了所有統(tǒng)計信息。EXIT_DEAD狀態(tài)是非常短暫的,幾乎不可能通過ps命令捕捉到。

8、TASK_KILLABLE:
Linux? kernel 2.6.25 引入了這種進程狀態(tài),用于將進程置為睡眠狀態(tài),它可以替代有效但可能無法終止的 TASK_UNINTERRUPTIBLE 進程狀態(tài),以及易于喚醒但更加安全的 TASK_INTERRUPTIBLE 進程狀態(tài)
原文鏈接:https://blog.csdn.net/drdairen/article/details/52518035
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容