核心内容摘要
揭秘任达华《玉尺经》:免费传承,智慧之光的免费机遇!
2 进程状态
3.
1 Linux内核源代码怎么说为了弄明白正在运行的进程是什么意思我们需要知道进程的不同状态。
一个进程可以有几个状态在Linux内核里进程有时候也被叫做任务下面的状态在kernel源代码里定义/**The task state array is a strange bitmap of*reasons to sleep. Thus running is zero, and*you can test for combinations of others with*simple bit tests.*/static const char*consttask_state_array[] {R (running),/*0 */S (sleeping),/*1 */D (disk sleep),/*2 */T (stopped),/*4 */t (tracing stop),/*8 */X (dead),/*16 */Z (zombie),/*32 */};R运行状态running并不意味着进程一定在运行中它表明进程要么是在运行中要么在运行队列里。
S睡眠状态sleeping意味着进程在等待事件完成这里的睡眠有时候也叫做可中断睡眠interruptible sleep。
D磁盘休眠状态Disk sleep有时候也叫不可终端睡眠状态uninterruptible sleep在这个状态的进程通常会等待IO的结束。
T停止状态stopped可以通过发送 SIGSTOP 信号给进程来停止T进程。
这个被暂停的进进程可以通过发送 SIGCONT 信号让进程继续运行。
X死亡状态dead这个状态只是一个返回状态你不会在任务列表里看到这个状态。
操作系统的进程状态(理论)
Linux系统的进程状态 --- 运行状态(具体实现)
Linux系统的进程状态 --- 阻塞状态(具体实现)
Linux系统的进程状态 --- 挂起状态(具体实现)
3.
2 进程状态查看ps aux / ps ajx 命令a显示一个终端所有的进程包括其他用户的进程。
j显示进程归属的进程组ID、会话ID、父进程ID以及与作业控制相关的信息。
x显示没有控制终端的进程例如后台运行的守护进程。
u以用户为中心的格式显示进程信息提供进程的详细信息如用户、CPU和内存使用情况等。