Linux学习之路 -- 进程篇 -- PCB介绍 -- 进程的孤儿和僵尸状态

前面介绍了进程的各种状态,下面介绍比较特殊的两种状态 -- 孤儿和僵尸(僵死)。

一、僵尸状态

我们创建进程的目的其实就是想要进程帮我们执行一些任务,当任务被执行完后,进程的使命其实就已经完成了。此时我们就需要杀死进程,由于进程的代码和数据肯定不会被执行了,所以可以被直接释放掉。但是进程的PCB却不能被立马释放,因为PCB里面记录进程所执行的任务完成情况,系统或其他进程需要读取PCB里的数据来决定判断该进程的执行情况,从而决定下一步操作。而这种代码和数据被释放了,但PCB还存在的情况,就叫僵尸状态。

下面演示一下这个状态,这里exit(0) 就是让子进程退出,在退出后父进程不读取子进程的数据(这里先不介绍怎么读取,下文会介绍)。就可以一直保持僵尸状态(正常状态下,子进程是肯定需要进入僵尸状态,只有进入僵尸状态后被读取才算结束进程)。

这里在子进程运行完后,我们可以发现子进程处于一个Z状态,也就是僵尸状态,这里再COMMAND这一列,我们可以看见子进程对应的COMMAND后存在一个<defunct>,这个单词表示”死亡的,无用的“,这也侧面印证了子进程处于一种僵尸状态。需要注意的是,当一个进程一直处于僵尸状态时,会造成内存泄露的问题。

二、孤儿进程

前面介绍的僵尸进程是子进程先退出,父进程不读取子进程的PCB造成的。但是如果父进程先退出了呢(这里父进程会先立马被bash回收,不存在一直处于僵尸状态的情况)?在这种情况下,子进程的PCB没有进程进行读取,就会一直处于僵尸状态。而系统是不会允许这种事情发生的,所以系统会找到合适的进程对这个子进程进行领养。这个被领养的子进程就叫做孤儿进程。

下面举个例子帮助大家理解(这里让子进程的运行时间超过父进程,让父进程先退出)

运行之后,我们会发现,子进程在不断运行,但是子进程的ppid已经变成了1, 这里的1默认就是系统这个进程。所以在子进程的父进程先行退出时,系统会为子进程找新的父进程,这里是系统进程领养了这个子进程,不过这个不是一定的。同时,我们会发现,在被系统领养后,子进程转到后台运行,我们想要提前结束掉这个进程,只能通过”kill -9 + 指定进程pid “这条命令来停止该进程。

以上就是关于僵尸状态和孤儿状态的两个进程状态,由于这两状态比较特殊一点,所以需要单独注意一下。以上就是所有的内容,如果希望本文对你有些许帮助,文中如有不对之处,还望各位大佬指正,谢谢!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/310761.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习300问】69、为什么深层神经网络比浅层要好用?

要回答这个问题&#xff0c;首先得知道神经网络都在计算些什么东西&#xff1f;之前我在迁移学习的文章中稍有提到&#xff0c;跳转链接在下面&#xff1a; 为什么其他任务预训练的模型参数&#xff0c;可以在我这个任务上起作用&#xff1f;http://t.csdnimg.cn/FVAV8 …

MySQL8.0.20 下载与安装

一、下载 MySQL服务器下载安装&#xff1a; 官网社区版地址&#xff1a; https://downloads.mysql.com/archives/installer/ 二、安装 安装注意事项---成功秘诀 安装密码不要设置复杂了&#xff0c;千万要记住密码&#xff0c;比如root和mysql就很好&#xff1b;不要随意卸…

科技云报道:AI大模型疯长,存储扛住了吗?

科技云报道原创。 AI大模型正在倒逼数字基础设施产业加速升级。 过去一年半&#xff0c;AI大模型标志性的应用相继出现&#xff0c;从ChatGPT到Sora一次次刷新人们的认知。震撼的背后&#xff0c;是大模型参数指数级的增长。 这种数据暴涨的压力&#xff0c;快速传导到了大模…

node.js服务器静态资源处理

前言&#xff1a;node.js服务器动态资源处理见 http://t.csdnimg.cn/9D8WN 一、什么是node.js服务器静态资源&#xff1f; 静态资源服务器指的是不会被服务器的动态运行所改变或者生成的文件. 它最初在服务器运行之前是什么样子, 到服务器结束运行时, 它还是那个样子. 比如平…

【数据结构】树与二叉树、树与森林部分习题与算法设计例题

目录 【数据结构】树与二叉树部分习题与算法设计例题一、单选题二、算法设计题判断二叉树是否为完全二叉树求二叉树的最小深度 以及 二叉树树高 树与二叉树知识点文章: 【数据结构】树与二叉树&#xff08;递归法先序、中序、后序、层次遍历二叉树、二叉树的建立以及求树高的方…

百货商场用户画像描绘and价值分析(下)

目录 内容概述数据说明技术点主要内容4 会员用户画像和特征字段创造4.1 构建会员用户基本特征标签4.2 会员用户词云分析 5 会员用户细分和营销方案制定5.1 会员用户的聚类分析及可视化5.2 对会员用户进行精细划分并分析不同群体带来的价值差异 内容概述 本项目内容主要是基于P…

华为欧拉系统(openEuler-22.03)安装深信服EasyConnect软件(图文详解)

欧拉镜像下载安装 iso镜像官网下载地址 选择最小化安装&#xff0c;标准模式 换华为镜像源 更换华为镜像站&#xff0c;加速下载&#xff1a; sed -i "s#http://repo.openeuler.org#https://mirrors.huaweicloud.com/openeuler#g" /etc/yum.repos.d/openEuler.r…

七月审稿之提升模型效果的三大要素:prompt、数据质量、训练策略(含Reviewer2和PeerRead)​

前言 我带队的整个大模型项目团队超过40人了&#xff0c;分六个项目组&#xff0c;每个项目组都是全职带兼职&#xff0c;且都会每周确定任务/目标/计划&#xff0c;然后各项目组各自做任务拆解&#xff0c;有时同组内任务多时 则2-4人一组 方便并行和讨论&#xff0c;每周文档…

SpringCloud之LoadBalancer负载均衡器的简单使用

SpringCloud之LoadBalancer负载均衡器的简单使用 loadbalancer用于对提供服务的集群做一个节点的选取规则。 如图所示&#xff0c;load balancer集成在调用方 示例 创建loadbalance-base模块,并引入相关依赖 <dependencies><dependency><groupId>org.spr…

LeetCode 热题 100 Day02

滑动窗口模块 滑动窗口类问题&#xff1a;总能找到一个窗口&#xff0c;从前往后移动来查找结果值。 这个窗口的大小可能是固定的&#xff0c;也可能是变化的。但窗口的大小一定是有限的。 https://www.cnblogs.com/huansky/p/13488234.html Leetcode 3. 无重复字符的最长子串 …

图书馆自习室|基于SSM的图书馆自习室座位预约小程序设计与实现(源码+数据库+文档)

图书馆自习室目录 基于SSM的图书馆自习室座位预约小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1、小程序端&#xff1a; 2、后台 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a…

专业照片编辑软件ON1 Photo RAW 2024 mac/win

ON1 Photo RAW 2024 for Mac是一款集专业性与易用性于一体的照片编辑软件。它拥有简洁直观的用户界面&#xff0c;即便对于摄影新手&#xff0c;也能快速上手。软件支持RAW格式照片处理&#xff0c;能够完整保留照片原始信息&#xff0c;让后期调整更加灵活。 在功能方面&#…

视力筛查通知短信群发选择106平台时应注意什么!

选择106平台进行视力筛查通知短信群发时&#xff0c;需要注意以下几点&#xff1a; 1.平台的合规性与资质&#xff1a;首先&#xff0c;确保所选的106短信平台具有合法的运营资质和工信审批相关证书。避免与违法平台合作&#xff0c;确保服务的合规性。 2.平台的覆盖范围与到…

第07-2章 TCP/IP模型

7.7 TCP/IP模型详解 7.7.1 简介 应用层的PDU>APDU&#xff08;Application PDU&#xff09; 表示层的PDU>PPDU&#xff08;Presentation PDU&#xff09; 会话层的PDU>SPDU&#xff08;Session PDU&#xff09; 7.7.2 TCP/IP协议体系 &#xff08;1&#xff09;TCP…

解析数据科学,探索ChatGPT背后的奥秘

在当今这个由数据驱动和AI蓬勃发展的时代&#xff0c;数据科学作为一门融合多种学科的综合性领域&#xff0c;对于推动各行各业实现数字化转型升级起着至关重要的作用。近年来&#xff0c;大语言模型技术发展态势强劲&#xff0c;为数据科学的进步做出了巨大贡献。其中&#xf…

OpenWrt 多拨负载均衡不起作用

检查 负载均衡->规则->Https->粘滞模式 是否启动&#xff0c;设置为 否 如果设置为是&#xff0c;那么根据官方描述&#xff1a; 来自相同源 IP 的流量&#xff0c;如果已经匹配过此规则并且在粘滞超时时间内&#xff0c;将会使用相同的 WAN 接口 意思就是如果你同一个…

NL2SQL进阶系列(4):ConvAI、DIN-SQL、C3-浙大、DAIL-SQL-阿里等16个业界开源应用实践详解[Text2SQL]

NL2SQL进阶系列(4)&#xff1a;ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL] NL2SQL基础系列(1)&#xff1a;业界顶尖排行榜、权威测评数据集及LLM大模型&#xff08;Spider vs BIRD&#xff09;全面对比优劣分析[Text2SQL、Text2DSL] NL2SQL基础系列(2)&#xff1a…

Redis中的订阅发布(二)

订阅与发布 订阅频道 每当客户端执行SUBSCRIBE命令订阅某个或某些频道的时候&#xff0c;服务器都会将客户端与被订阅的频道 在pubsub_channels字典中进行关联。 根据频道是否已经有其他订阅者&#xff0c;关联操作分为两种情况执行: 1.如果频道已经有其他订阅者&#xff0c…

2023年图灵奖揭晓,你怎么看?

阿维威格德森 (Avi Wigderson)是一位杰出的学者&#xff0c;他在理论计算机科学领域的贡献和研究成果备受认可。他对于理解计算中的随机性和伪随机性的作用所做出的开创性贡献将深远影响该领域的发展。这项荣誉是对他杰出成就的高度认可&#xff0c;也将激励更多人在理论计算机…

一文掌握 React 开发中的 JavaScript 基础知识

前端开发中JavaScript是基石。在 React 开发中掌握掌握基础的 JavaScript 方法将有助于编写出更加高效、可维护的 React 应用程序。 在 React 开发中使用 ES6 语法可以带来更简洁、可读性更强、功能更丰富,以及更好性能和社区支持等诸多好处。这有助于提高开发效率,并构建出更…