Linux 进程状态详解
生活随笔
收集整理的這篇文章主要介紹了
Linux 进程状态详解
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目的
為了對(duì)進(jìn)程從產(chǎn)生到消亡的整個(gè)過(guò)程進(jìn)行跟蹤和描述,就需要定義各種進(jìn)程的各種狀態(tài)并制定相應(yīng)的狀態(tài)轉(zhuǎn)換策略,以此來(lái)控制進(jìn)程的運(yùn)行。
粗略分類(lèi)
當(dāng)然理論上上述三種狀態(tài)之間轉(zhuǎn)換分為六種情況;
以上4種情況可以相互正常轉(zhuǎn)換,不是還有兩種情況嗎?
詳細(xì)分類(lèi)
現(xiàn)在知道了進(jìn)程的三種基本狀態(tài),但是在操作系統(tǒng)具體現(xiàn)實(shí)中,設(shè)計(jì)者可以根據(jù)實(shí)際情況設(shè)置不同的狀態(tài),這樣以來(lái)就出現(xiàn)了以下幾種狀態(tài):
我們可以來(lái)看下以上宏在內(nèi)核中的定義:
#define TASK_RUNNING??????????? 0 #define TASK_INTERRUPTIBLE????? 1 #define TASK_UNINTERRUPTIBLE??? 2 #define __TASK_STOPPED????????? 4 #define __TASK_TRACED?????????? 8 /* in tsk->exit_state */進(jìn)程的退出狀態(tài) #define EXIT_ZOMBIE???????????? 16 #define EXIT_DEAD?????????????? 32 /* in tsk->state again */我理解為進(jìn)程的喚醒狀態(tài) #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進(jìn)程間狀態(tài)轉(zhuǎn)換和內(nèi)核調(diào)用圖
?
(SAW:Game Over!)
總結(jié)
以上是生活随笔為你收集整理的Linux 进程状态详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: epoll 接口以及原理说明
- 下一篇: Linux socket / 端口复用