首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux:进程状态

Linux:进程状态

作者头像
用户11290664
发布2025-08-21 08:27:52
发布2025-08-21 08:27:52
1370
举报
文章被收录于专栏:学习学习

描述进程PCB

进程状态

是一个整形变量,对应不同的整形,控制状态

对应调度队列

一个pcb既可以属于A数据结构也可以属于B数据结构

阻塞了进程链入设备的等待队列。

等待了,等键盘输出后,把等待队列链回运行队列

内核链表

这里双指针指向指向内部

运行状态

进程在调度队列中,进程的状态都是running

阻塞状态

我们写的scanf()函数的时候,控制台卡住,等待键盘文件就绪, 所以我们阻塞状态就是等待每种设备或资源就绪。

如:键盘,显示器,网卡,键盘,摄像头,话筒。

管理硬件驱动,os也是先描述再组织

挂起状态

这是一个比较极端的情况

os内存严重不足的时候,不在运行的pcb的代码数据,也就是阻塞状态的时候,把该pcb的代码数据换入磁盘外设的交换区,这就叫做阻塞挂起 如果内存还是不足,也可能把运行队列末端的pcb代码数据换入,这就叫做运行挂起。

进程状态

R状态

每隔一秒钟查一次进程的状态

每隔一秒查一查状态

这里&后缀,放在后台运行 kill -9 26168,结束运行。

这里都是进程都是s因为运行时间太短。

S状态

阻塞状态

T状态

暂停状态

这里按顺序操作打上断点

b9给第九行打断点

然后运行

这时候状态

这就是追踪暂停

ctrl+z命令行暂停是T状态

D状态

可中断休眠,浅度休眠 用ctrl+c中断s状态程序演示

disk sleep,也叫磁盘休眠

挂起的时候也无法节省空间,这时候可中断休眠就会杀掉该进程,满足其他进程, 举个列子如果该进程是传入磁盘的数据的进程,如果没传完就会丢失数据,进程也会被杀掉。

为了防止这个情况,就为了优化s状态,给了进程D状态,操作系统不能杀掉他,只有重启才能杀掉进程。

X状态

死亡状态

释放进程空间,代码,pcb,也就是kill 改进程

这里带前缀,信号方面问题。

Z状态

(ZOMBIE)僵尸状态

因为所有进程都是一个进程的子进程,要么是bash的,要么是自己创建出来进程的子进程

获取死亡之前的进程信息,在释放之前,父进程要在子进程死亡之前获取执行的结果。

一般pcb会保留,因为pcb里有一些退出信息

我们不回收子进程,pcb不会退出,因为pid还在,pcb一直存在就会内存泄漏,malloc和僵尸进程都会内存泄漏

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 描述进程PCB
  • 进程状态
  • 内核链表
  • 运行状态
  • 阻塞状态
  • 挂起状态
  • 进程状态
  • R状态
  • S状态
  • T状态
  • D状态
  • X状态
  • Z状态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档