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和内存使用情况等。
相关推荐
KnowSafe1 小时前
从手动到智能:证书自动化解决方案的技术演进
运维·自动化
墨风如雪6 小时前
甲骨文云(Oracle Cloud)最新注册防坑记录:被ABC了怎么办?
服务器
xingfujie7 小时前
运维实战攻略
运维
HHFQ7 小时前
在 systemd 场景下的 CPU 限制方式
linux
道清茗8 小时前
【RH294知识点汇总】第 9 章 《 自动执行 Linux 管理任务 》常见问题
linux·运维·服务器
山羊硬件Time8 小时前
自动化管理Linux的好工具:shell script
linux·嵌入式硬件·硬件工程师·基带工程·硬件开发
北方的流星8 小时前
华三路由器NAT配置
运维·网络·华三
wj3055853788 小时前
Codex + Git 开发环境配置指南(WSL版)
linux·运维·git
星马梦缘9 小时前
如何切换window-ubuntu双系统【方案二】
linux·运维·ubuntu
2501_927283589 小时前
荣联汇智助力天津艺虹打造“软硬一体”智慧工厂,全流程自动化引领印刷包装行业数智变革
大数据·运维·数据仓库·人工智能·低代码·自动化