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和内存使用情况等。
相关推荐
ulias2125 小时前
Linux系统中的权限问题
linux·运维·服务器
青花瓷6 小时前
Ubuntu下OpenClaw的安装(豆包火山API版)
运维·服务器·ubuntu
mzhan0176 小时前
Linux: lock: preempt_count 是一个线程级别的变量
linux·lock
问简7 小时前
docker 镜像相关
运维·docker·容器
Dream of maid7 小时前
Linux(下)
linux·运维·服务器
齐鲁大虾7 小时前
统信系统UOS常用命令集
linux·运维·服务器
Benszen8 小时前
Docker容器化技术实战指南
运维·docker·容器
ZzzZZzzzZZZzzzz…8 小时前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0
一叶知秋yyds9 小时前
Ubuntu 虚拟机安装 OpenClaw 完整流程
linux·运维·ubuntu·openclaw
专吃海绵宝宝菠萝屋的派大星9 小时前
使用Dify对接自己开发的mcp
java·服务器·前端