news 2026/4/12 13:59:26

14.僵尸孤儿-进程状态

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
14.僵尸孤儿-进程状态

一个pcb既属于全局链表又属于这个队列

这个队列也是双链表,只不过先进先出FIFO

运行状态就是正在被cpu运行,或者准备好了随时等待被调度。 包括运行和就绪。

一个进程要去读键盘就要转去另一个队列,如果这个设备没有活跃,就没有读到键盘数据,所以曹组系统把这个进程从cpu拿下来,链入到特定设备的等待队列,该进程就永远不会被调度,这个进程就卡在那,就叫阻塞。

从运行到阻塞,本质就是把pcb链入到不同结构当中。

一旦按下键盘,就绪了, 操作系统第一时间知道,将这个状态设置成活跃,检查等待队列,发现指针不为空,就把这头部进程设置成运行状态,重新链回运行队列,后来CPU调度下继续运行就读到了。

内存资源严重不足时将阻塞的代码数据唤出磁盘swap分区,这些进程状态叫阻塞挂起,硬件好了再唤入,然后改成运行状态就可以再次调度,挂起是挂到外设上。

如果挂完还是吃紧,就打运行队列里进程的主意,把一些运行进程末端代码数据挂起,叫运行挂起。需要了再唤出。

next指向links

如何访问内部各个变量

看板书

这个结构可以让tast struct属于好几个结构,所以断链,链到别的结构很方便

如果代码printf大部分时间要等硬件,所以看不见R状态这个是让进程后台运行,就是不影响继续命令行输入,状态R+是前台运行

这样杀掉进程

验证阻塞状态

scanf

状态就是整数,根据数组下标确定的,理论不知道这个数,具体Linux可以知道

调试时候可以验证暂停状态t

如果用户干的Ctrl c那么是T,暂停是系统认为有错误,让用户决定是否继续。

内存严重不足时候可能杀掉阻塞进程,所以设计磁盘这种重要的所以设置成D状态,断电或者自己结束才能结束D

进程暂停恢复

19号就是暂停这个就是继续

Z状态

此时不会再调用,代码数据不再具有意义,所以相关信息要给父进程,通过pcb给,没有获取之前,子进程已经退出,此时就是僵尸状态。

我们看不到X状态,父进程回收之后子进程,直接释放。,运行就绪新建可以认为是运行状态,阻塞状态就是S T,结束状态就是Z X,用户不需要知道唤入,唤出,所以不用知道状态

高频节点可以释放也可以不释放,不释放的话,pcb放在unuse列表,其他进程去使用,类似数据结构对象的缓存,可以加快创建释放速度,这个机制叫slab

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 17:16:07

CANN分布式训练:从单机到千卡集群的弹性扩展实战

CANN组织链接:https://atomgit.com/cann ops-nn仓库链接:https://atomgit.com/cann/ops-nn 当千亿参数大模型训练因通信瓶颈扩展效率仅38%,当工程师耗费数月调试分布式脚本却频繁遭遇节点故障,当“千卡训练”沦为少数巨头的专属游…

作者头像 李华
网站建设 2026/4/10 17:16:19

红外热成像图像电力设备故障缺陷检测数据集VOC+YOLO格式1729张6类别

注意数据集图片有1/3是原图剩余为增强图片数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1729标注数量(xml文件个数):1729标注数…

作者头像 李华
网站建设 2026/3/27 19:26:42

4.2 缓存策略与多级缓存:如何减少90%的数据库访问?

4.2 缓存策略与多级缓存:如何减少90%的数据库访问? 在高并发的分布式系统中,数据库往往是性能瓶颈之一。通过合理的缓存策略和多级缓存架构,我们可以显著减少数据库访问次数,提升系统响应速度和吞吐量。本节将深入探讨缓存策略的设计与实现,以及如何构建高效的多级缓存系…

作者头像 李华
网站建设 2026/4/10 8:05:24

PostgreSQL 性能优化:分区表实战

文章目录一、为什么需要分区表?1. 单表瓶颈分析2. 分区表的核心价值二、PostgreSQL 分区类型详解1. 范围分区(Range Partitioning)——最常用2. 列表分区(List Partitioning)3. 哈希分区(Hash Partitioning…

作者头像 李华