外贸系统软件有哪些手机优化大师官网

news/2025/9/26 13:28:29/文章来源:
外贸系统软件有哪些,手机优化大师官网,义乌网站建设和制作,企业宣传视频拍摄制作#x1f308; 个人主页#xff1a;谁在夜里看海. #x1f525; 个人专栏#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 丢掉幻想#xff0c;准备斗争 目录 引言 一、僵尸进程 1.子进程的创建与退出 2.进程表 3.僵尸状态产生 4.直观感受一下#xff1a; 二、… 个人主页谁在夜里看海.  个人专栏《C系列》《Linux系列》《算法系列》 ⛰️ 丢掉幻想准备斗争 目录 引言 一、僵尸进程 1.子进程的创建与退出 2.进程表 3.僵尸状态产生 4.直观感受一下 二、孤儿进程 1.产生原因 2.处理办法 3.直观感受一下 总结 引言 在上一篇关于Linux的章节中我们介绍了进程的各种状态R运行状态、S睡眠状态、D磁盘休眠状态、T停止状态、X死亡状态。其实还有一种特殊的运行状态叫做Z僵死状态为什么有僵死和死亡两种不同的状态呢僵死并不等同于死亡 有人说一个人肉体的死亡并不算真正的死亡因为他还被人记着直到世界上没有人记得他的时候这个人才是完全意义上死亡了。僵死状态就是这个道理一个进程已经退出了但是它的父进程并没有读取到子进程退出的代码这时就会产生僵死进程子进程死亡了但是父进程还记得它 那么为什么父进程还会记得已经“死亡”的子进程呢这就要从父子进程的工作原理讲起了 一、僵尸进程 1.子进程的创建与退出 父进程使用fork()系统调用来创建一个新的子进程。fork()函数会返回两次在父进程中返回子进程的PID在子进程中返回0父进程和子进程是各自独立执行代码的 #include iostream #include unistd.h using namespace std;int main() {pid_t pid fork(); // 创建子进程if (pid 0) {cerr 子进程创建失败! endl;return 1;}if (pid 0) { // 子进程执行的代码cout 子进程正在运行PID为 getpid() endl;return 0; // 子进程退出} else { // 父进程执行的代码cout 父进程正在运行PID为 getpid() endl;return 0; // 父进程退出} }当执行到fork()时会生成一个新进程。如果fork()成功父进程和子进程都会继续执行。子进程的 PID 将返回给父进程而在子进程中fork()返回 0。 2.进程表 子进程在完成自身任务并退出时操作系统并没有立即将其从进程表中移除。子进程变为“已终止”状态但它会保留在进程表中直到父进程收集它的退出状态。 进程表是操作系统用来管理所有进程的核心数据结构。每个进程都有一个进程控制块PCB其中包含了进程的各种信息包括其父进程的 IDPPID和进程的状态。 为什么需要存储运行的状态 父进程通过查看进程表获取子进程的状态根据不同的状态执行不同操作。 提问父进程获取子进程状态是为了帮助子进程进行内存资源释放吗 回答并不是子进程在执行结束之后会自行释放内存资源即使子进程错误中断了没有自行释放资源操作系统也会帮其释放资源。 那么父进程收集子进程状态信息的作用是什么呢下面是几种常见的原因 处理子进程执行失败时的错误恢复 父进程可以根据子进程的退出状态判断子进程是否正常完成任务。如果子进程由于某些错误退出父进程可以选择执行错误恢复操作。例如 假设父进程是一个文件处理程序它会启动多个子进程来处理不同的文件。如果一个子进程处理某个文件时失败了退出码非零父进程就可以通过获取退出状态来判断这一点然后采取以下行动 ①重新启动该子进程来处理失败的文件。 ②记录错误日志并通知用户某个文件处理失败。 ③跳过失败的文件继续处理其他文件。 决定是否继续或终止任务 父进程需要知道子进程的执行结果以决定是否继续执行其他任务或者终止整个操作。例如 父进程启动多个子进程来执行并行任务每个子进程执行不同的计算任务。父进程可能需要决定是否继续执行其他任务或者如果某个子进程失败是否停止其他所有任务 如果某个子进程退出码表明它执行失败父进程可以选择终止所有其他子进程避免浪费计算资源。 如果所有子进程都成功父进程可以汇总结果并继续进行后续步骤。 资源清理和收尾操作  有些程序需要父进程在子进程结束后做一些额外的资源清理工作。例如父进程可能会在子进程执行任务时分配某些资源内存、文件句柄等需要在子进程退出后根据退出状态来执行适当的清理工作。例如 假设父进程管理一个服务器启动子进程来处理客户端请求。子进程在处理请求时可能会打开临时文件或者分配内存父进程需要知道子进程是否正常退出以便执行以下操作 如果子进程正常退出父进程可以清理相关资源比如关闭临时文件、释放内存。 如果子进程异常退出父进程可能需要保留错误日志或者重新处理请求。 上述这些情况都在说明父子进程的协作关系父进程和子进程并非完全独立而是有相互依赖的关系父进程需要回收子进程的资源操作系统会协调这一过程。  3.僵尸状态产生 父进程具体是如何查看到子进程的运行条目等信息的呢 父进程通过调用 wait() 或 waitpid() 来回收子进程的退出状态。当子进程退出并且父进程调用 wait() 时父进程执行后续操作然后操作系统会清除子进程在进程表中的条目。 那么问题又来了进程中断后操作系统会为其释放内存资源理解为擦屁股那么父进程没有调用wait()时操作系统还会清除条目等信息吗答案是不会 操作系统保留进程表条目是为了确保父进程能够获取子进程的退出状态执行相应的操作。操作系统不自动删除这些条目因为父进程需要在适当的时候通过系统调用如 wait()来获取子进程的退出信息。所以如果父进程没有调用wait()获取信息操作系统就不会释放进程条目这些资源这就会导致内存泄漏这是操作系统故意这么设计的目的就是为了保证父进程可以收集到子进程的条目信息 子进程执行完毕之后父进程没有通过wait()收集进程条目信息就会导致条目信息不会被释放造成内存泄漏此时这个存在内存泄漏的进程也叫做僵尸进程。 4.直观感受一下 下面这段代码就是演示僵尸进程的产生过程 1 #include iostream2 #include unistd.h3 #include sys/wait.h4 #include ctime5 using namespace std;6 7 int main()8 {9 pid_t pid fork();10 if(pid0)11 cout子进程创建失败endl;12 else if(pid 0)13 {14 cout子进程正在运行pid为getpid()e ndl;15 sleep(5);16 cout子进程结束endl;17 }18 else 19 {20 cout父进程正在运行pid为getpid()e ndl;21 sleep(30); // 父进程没有结束就不会调用wait()22 cout父进程调用wait回收子进程...endl;23 wait(NULL);24 cout完成回收endl;25 }26 return 0;27 } 可以看到此时子进程执行结束父进程还未调用wait()僵尸进程Z状态就产生了 父进程调用玩wait()对子进程条目信息收集完毕之后操作系统为其释放资源进程解除僵尸状态  二、孤儿进程 1.产生原因 上面提到僵尸进程产生是由于父进程没有调用wait()导致的处理办法就是让父进程必须调用wait()但是有这么一种特殊情况 子进程还在执行可是父进程提前执行完毕了之后子进程执行完毕时已经没有父进程来为它调用wait()了进程条目资源就不会被系统释放导致了内存泄漏。父进程提前结束的进程称为孤儿进程。 面对孤儿进程这种情况内存泄漏操作系统采用了一种巧妙的处理办法 2.处理办法 init进程 操作系统对孤儿进程的处理办法就是将孤儿进程托管给init进程让init进程调用wait()实现进场条目资源的释放避免内存泄漏那么init进程是何方神圣作用这么大呢 init 是 Unix 和类 Unix 操作系统中的第一个进程它在操作系统启动时由内核启动并且是所有其他进程的祖先。每个系统中至少有一个 init 进程它是系统中最为重要的进程之一负责系统初始化和其他进程的管理。 init 进程的生命周期非常长可以说是操作系统中唯一一个始终存在的进程直到系统关机或重启。因此将孤儿进程托管给它一定可以保证资源的正常释放 3.直观感受一下 下面这段代码可以清除展示孤儿进程的产生与init进程的托管过程 1 #includeiostream2 #includeunistd.h3 #includesys/wait.h4 #includectime5 #includecstdlib6 using namespace std;7 8 int main()9 {10 pid_t pid fork();11 if(pid0)12 cout子进程创建失败endl;13 else if(pid 0)14 {15 cout子进程正在运行pid为getpid()endl;16 cout父进程ppid为getppid()endl;17 sleep(10);18 cout子进程正在运行pid为getpid()endl;19 cout父进程ppid为getppid()endl;20 sleep(5);21 cout子进程结束endl;22 return 0;23 }24 else25 {26 sleep(5);27 cout父进程结束pid为getpid()endl;28 exit(0);29 }30 return 0; 31 } init进程是操作系统的第一个进程所以它的PID为1我们可以观察到子进程的父进程结束后其的确被托管给init进程了父进程变成了init进程  总结 本篇篇博客详细讲解了 僵尸进程 和 孤儿进程 的产生过程与处理办法。僵尸进程产生于子进程退出后父进程未调用 wait() 收集其退出状态导致进程表中的信息未被清理从而造成资源泄漏。孤儿进程则是父进程提前结束子进程在没有父进程的情况下继续执行操作系统将其交给 init 进程处理以确保资源的正常回收。 以上就是【详解僵尸进程与孤儿进程】的全部内容欢迎指正~  码文不易还请多多关注支持这是我持续创作的最大动力

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

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

相关文章

照片做视频的网站南通网站外包

文章目录 第五课:MindSpore自动并行1、学习总结:数据并行模型并行MindSpore算子级并行算子级并行示例 流水线并行GPipe和Micro batch1F1B流水线并行示例 内存优化重计算优化器并行 MindSpore分布式并行模式课程ppt及代码地址 2、学习心得:3、…

DailyPaper-2025-9-26

失踪人口回归,才识浅薄啥也不懂勿喷MMR1: Enhancing Multimodal Reasoning with Variance-Aware Sampling and Open Resources https://arxiv.org/pdf/2509.21268Variance-Aware Sampling and large-scale CoT data i…

实用指南:老题新解|素数对

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

人文领域的创新乏力:当价值内卷遇上元人文AI的破局之光

人文领域的创新乏力:当价值内卷遇上元人文AI的破局之光 当我们惊叹于科技领域的颠覆式创新时,却不得不面对一个尴尬的对比:人文领域的创新陷入了深度的乏力。 这里的"人文领域",指的是塑造我们社会形态、…

网站备份数据库做网站的网站犯法吗

试试了一下在 .NET中通过如下语句Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);就可以使页面的缓存失效,每次都需要获取新页面。 转载于:https://www.cnblogs.com/0000/archive/2009/11/11/1601036.html

查找公司信息的网站环保网站建设价格

注意,以下内容基于前面完整版的根文件系统,因此需要先完成前面的步骤。 1、明确sample文件夹的位置 海思SDK有很多sample,以方便开发人员的参阅。sample文件夹位于/package/mpp/目录下。 其中/package/mpp/sample/venc目录完成了视频的采集以…

网页制作门户网站案例气象网站建设需求方案

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、移植前的准备工作 1、搭建开发环境 (1)虚拟机运行着ubuntu14.04系统。 (2)X210开发板运行着linux内核镜像、QT4.8文件系统镜像。相关的镜像文件在…

自己公司设计一个网站电子商务网站建设与制作

Oracle 的导入实用程序 (Import utility) 允许从数据库提取数据,并且将数据写入操作系统文件。 imp 使用的基本格式: imp[username[/password[service]]] ,以下例举 imp 常用用法。 1. 获取帮助 imp helpy 2. 导入一个完整数据库 imp sy…

SimCC: a Simple Coordinate Classification Perspective for Human Pose Estimation

[ECCV22] 基于坐标分类的关键点检测SimCC: a Simple Coordinate Classification Perspective for Human Pose Estimation SimCC(ECCV22):基于坐标分类计算关键点,即计算每个关键点在x轴、y轴上的概率。 代码仓库 注…

外贸看的英文网站鞍山最新消息

​FPGA高速接口有哪些学习途径,这里不得不提下我们宸极教育FPGA课程, FPGA课程5.0 版:Xilinx体系高速接口项目实操,全新升级,课程完全根据企业招聘要求,项目实操设置,适应目前市场的求职招聘要…

大连网站建设设计公司注册好了怎么做网站

一、前言 这篇文章主要介绍了CentOS 7.6环境下Nginx下载安装配置使用教程,学习nginx的朋友可以参考一下 二、下载 使用如下命令进行下载 wget http://nginx.org/download/nginx-1.23.3.tar.gz 三、安装nginx需要的环境库 项目首先我们需要安装gcc、gcc-c、zlib、…

北京融安特智能科技营销型网站wordpress archive

目录 对称加密算法 AES (ECB模式) AES(CBC 模式)。 非对称加密 对称加密算法 对称加密算法,是使用相同的密钥进行加密和解密。使用对称加密算法来加密双方的通信的话,双方需要先约定一个密钥,加密方才能加密&#…

全景网站制作教程现在还有做系统的网站吗

1.SELECT语句 从一个表或多个表中检索信息 2.检索单个列 输入: SELECT prod_name FROM Products; 输出: 没有过滤,也没有排序,输出数据顺序可能不同。 3.检索多个列 输入: SELECT prod_id, prod_name, prod_price F…

10.1.1 启用python达成第一个遗传算法

10.1.1 启用python达成第一个遗传算法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

[iOS] OC高级编程 - 引用计数 (1) - 详解

[iOS] OC高级编程 - 引用计数 (1) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

Docker Docker Compose 完整入门与实用技巧 - 教程

Docker & Docker Compose 完整入门与实用技巧 - 教程2025-09-26 13:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important;…

建网站过程网站制作报价优惠

[html] 说说你对属性data-的理解 data- 属性是H5新增的自定义属性,也可以用来存储值。我个人用的不多,这个data- 属性倒是和vue中的v-bind 功能相似, 自定义属性,绑定数据。也和上面说的一样可以通过js进行获取使用个人简介 我是…

营销型网站建设合同戚墅堰做网站

云原生之使用Docker部署RSS阅读器Huntly 一、Huntly介绍1.1 Huntly简介1.2 Huntly功能2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Huntly镜像五、部署Huntly5.1 创建挂载目录5.2 创建Hun…

达州网站建设的公司怎么自己搭建梯子

最近在练习搭建网站,遇到游览器找不到服务器上的php文件的问题。后来查找发现,apache文档根目录跟apache虚拟主机文档根目录不同,服务器开启了虚拟主机功能。这导致游览器找不到php文件。 使用的环境是LAMP,它 的操作系统和软件版…