Linux —— 进程概念 - 进程运行、阻塞、挂起状态

3.2 进程状态

3.2.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 * const task_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):这个状态只是一个返回状态,你不会在任务列表里看到这个状态。
1.操作系统的进程状态(理论):
2.Linux系统的进程状态 --- 运行状态(具体实现):
3.Linux系统的进程状态 --- 阻塞状态(具体实现):
4.Linux系统的进程状态 --- 挂起状态(具体实现):

3.2.2 进程状态查看

  • ps aux / ps ajx 命令
  • a:显示一个终端所有的进程,包括其他用户的进程。
  • j:显示进程归属的进程组ID、会话ID、父进程ID,以及与作业控制相关的信息。
  • x:显示没有控制终端的进程,例如后台运行的守护进程。
  • u:以用户为中心的格式显示进程信息,提供进程的详细信息,如用户、CPU和内存使用情况等。
相关推荐
MonolithIoT1 天前
实战方案|设备备件无人值守仓库:连续化产线运维备件 7×24 小时数字化管控方案
运维·网络·数据库
瞬间&永恒~1 天前
【MySQL】4-6:在同一个主机上使用 systemd 运行多个 MySQL服务器
服务器·数据库·mysql
gwf2161 天前
磨损均衡算法(Wear Leveling)——SSD如何让每块闪存“公平退休“?
运维·数据库·人工智能·python·嵌入式硬件·算法·智能硬件
AAA@峥1 天前
CentOS7 源码编译安装 MySQL5.7|SQL 基础操作 + 备份恢复完整实战
运维·数据库·sql·centos
撩得Android一次心动1 天前
Linux编程笔记3【个人用】
linux·笔记
OpenPomeloxCommunity1 天前
3. Linux 同步机制之 spinlock 设计与实现(一):通用层
linux
念恒123061 天前
网络基础
linux·网络·c++
Ai_easygo1 天前
自动化客服Agent实战:用LangGraph+RAG+MCP把80%工单交给AI(从设计到部署)
运维·人工智能·自动化
皮卡狮1 天前
Linux静态库和动态库详解
linux