Linux 进程状态详解
生活随笔
收集整理的這篇文章主要介紹了
Linux 进程状态详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目的
為了對進程從產生到消亡的整個過程進行跟蹤和描述,就需要定義各種進程的各種狀態并制定相應的狀態轉換策略,以此來控制進程的運行。
粗略分類
當然理論上上述三種狀態之間轉換分為六種情況;
以上4種情況可以相互正常轉換,不是還有兩種情況嗎?
詳細分類
現在知道了進程的三種基本狀態,但是在操作系統具體現實中,設計者可以根據實際情況設置不同的狀態,這樣以來就出現了以下幾種狀態:
我們可以來看下以上宏在內核中的定義:
#define TASK_RUNNING??????????? 0 #define TASK_INTERRUPTIBLE????? 1 #define TASK_UNINTERRUPTIBLE??? 2 #define __TASK_STOPPED????????? 4 #define __TASK_TRACED?????????? 8 /* in tsk->exit_state */進程的退出狀態 #define EXIT_ZOMBIE???????????? 16 #define EXIT_DEAD?????????????? 32 /* in tsk->state again */我理解為進程的喚醒狀態 #define TASK_DEAD?????????????? 64 #define TASK_WAKEKILL?????????? 128 #define TASK_WAKING???????????? 256 #define TASK_STATE_MAX????????? 512 #define TASK_STATE_TO_CHAR_STR "RSDTtZXxKW"LINUX進程間狀態轉換和內核調用圖
?
(SAW:Game Over!)
總結
以上是生活随笔為你收集整理的Linux 进程状态详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: epoll 接口以及原理说明
- 下一篇: 线程同步的各种方法汇总