关于进程的相关解释可以看主播重生系列的有关进程的文章,这里主要讲解如何巧妙记忆进程的状态来应付面试提问。
1. 进程状态的常见字母表示
在 Linux 中,进程状态通常用以下字母表示:
-
R (Running):进程正在运行或可运行。
-
S (Sleeping):进程正在等待某个事件完成(可中断的睡眠)。
-
D (Uninterruptible Sleep):进程正在等待 I/O 操作完成(不可中断的睡眠)。
-
Z (Zombie):进程已终止,但其父进程尚未回收它。
-
T (Stopped):进程被信号暂停(如 Ctrl+Z)。
-
t (Tracing stop):进程正在被调试器跟踪。
-
X (Dead):进程已完全终止(很少见)。
-
K (Wakekill):进程正在被强制终止(收到
SIGKILL
信号)。 -
I (Idle):进程处于空闲状态(通常用于内核线程)。
2. 巧妙的记忆方法
(1) 联想记忆法
将每个状态字母与一个容易联想的中文或英文词汇关联起来:
-
R (Running):想象一个人在 跑步(Run)。
-
S (Sleeping):想象一个人在 睡觉(Sleep)。
-
D (Uninterruptible Sleep):想象一个人在 深度睡眠(Deep Sleep),无法被叫醒。
-
Z (Zombie):想象一个 僵尸(Zombie),已经死了但还在游荡。
-
T (Stopped):想象一个 停止(Stop) 的标志。
-
t (Tracing stop):想象一个 跟踪(Trace) 的符号。
-
X (Dead):想象一个 死亡(Dead) 的标记。
-
K (Wakekill):
-
想象一个 杀手(Killer),正在强制终止进程。
-
或者联想
SIGKILL
信号(kill -9
),这是无法被忽略或捕获的信号。
-
-
I (Idle):
-
想象一个 空闲(Idle) 的人,正在休息。
-
或者联想 内核线程(Idle Thread),它们在系统没有任务时运行。
-
(2) 故事记忆法
编一个简单的故事,将进程状态串联起来:
-
一个进程在 跑步(R),突然累了就 睡觉(S)。
-
睡觉时进入了 深度睡眠(D),无法被叫醒。
-
如果进程被暂停了,就变成了 停止(T) 状态。
-
如果进程被调试器跟踪,就变成了 跟踪停止(t)。
-
如果进程结束了但父进程没管它,就变成了 僵尸(Z)。
-
如果进程彻底结束了,就变成了 死亡(X)。
-
突然,一个 杀手(K) 出现,强制终止了进程。
-
系统空闲时,空闲线程(I) 开始运行。
(3) 首字母缩写法
将每个状态的首字母组合成一个有意义的缩写:
-
Running
-
Sleeping
-
Deep Sleep
-
Zombie
-
Traced/Stopped
-
X-terminated
-
Kill:表示进程正在被强制终止。
-
Idle:表示进程处于空闲状态。