- 浏览: 142730 次
文章分类
最新评论
在解释僵尸进程的概念之前,我们得先了解这样的一个事实:
一个进程在由于某种原因终止后并不会像大多数人认为的那样立即被内核从系统中清理掉,而是被保持在一种已终止的状态中,等待着被它的父进程来回收。在被父进程回收后,内核会将它的退出状态传递给父进程,然后才把它抛弃掉。也只有从此刻开始,该终止进程才真正意义上的消失了。
根据这个事实,不难得出僵尸进程的大致概念,即已终止但还未被回收的进程。因为它还需要内核来保留它的某些状态以让父进程回收,所以它会消耗部分资源。因此对于长时间运行的程序,如外壳或服务器等,总是应该回收僵尸进程。如果父进程在回收它的僵尸子进程之前就被终止了, 那么内核会调用init进程(PID为1,并且是在系统初始化时由内核创建)来回收它们。
一个进程在由于某种原因终止后并不会像大多数人认为的那样立即被内核从系统中清理掉,而是被保持在一种已终止的状态中,等待着被它的父进程来回收。在被父进程回收后,内核会将它的退出状态传递给父进程,然后才把它抛弃掉。也只有从此刻开始,该终止进程才真正意义上的消失了。
根据这个事实,不难得出僵尸进程的大致概念,即已终止但还未被回收的进程。因为它还需要内核来保留它的某些状态以让父进程回收,所以它会消耗部分资源。因此对于长时间运行的程序,如外壳或服务器等,总是应该回收僵尸进程。如果父进程在回收它的僵尸子进程之前就被终止了, 那么内核会调用init进程(PID为1,并且是在系统初始化时由内核创建)来回收它们。
发表评论
-
浮点运算指令
2019-05-22 23:13 1576上一节介绍了浮点数与各种数值类型之间的相互转换 ... -
浮点数类型转换指令
2019-05-15 22:37 1715在浮点寄存 ... -
浮点寄存器概述
2019-05-14 22:31 2593本文介绍的浮点寄存器是基于 AVX2(Adva ... -
汇编指令之跳转指令
2019-04-15 00:21 4800正常执行的情况下,指令会按照顺序一条条地执行, ... -
汇编指令之条件码
2019-04-08 21:05 2360在系统底层,除了整数寄存器,CPU 还维护着一 ... -
汇编指令之算术和逻辑操作指令
2019-03-28 22:16 1384下表是 x86-64 ... -
汇编指令之数据传送指令
2019-03-25 21:28 1292在x86-64 中的 ... -
x86-64 中的寄存器与汇编操作数杂述
2019-03-20 21:45 993Intel 中常用 ... -
hello 程序执行背后的故事
2018-12-26 21:48 612源文件 hello. ... -
linux启动服务概述
2017-04-08 02:43 400传统的linux中定义了七个运行级,分别如下: ... -
unix限制
2017-04-04 16:08 582UNIX系统实现定义了很多幻数和常量,其中有很 ... -
linux引导加载程序--GRUB
2017-04-04 04:22 626linux世界里有两种 ... -
存储器映射
2016-06-13 00:12 554注:本文摘自《深入理解计算机操作系统》第九章--虚拟存 ... -
虚拟存储器对存储器管理的作用
2016-06-10 16:00 697注:本文中的大部分内容均是摘录自《深入理解计算机系统》一书,权 ... -
信号处理问题
2016-06-03 08:31 563注:本文摘自《深入理解计算机系统》第8章 --- 异常控制流。 ... -
程序优化之存储器别名使用
2016-05-20 08:55 800说明:本文示例摘自《深入理解计算机系统》第五章----优化程序 ... -
条件变量基本概念与原理(转载)
2016-05-20 08:54 1584对于条件变量,我一直感到很困惑,搞不清其与互斥锁到底有啥区别, ... -
CPU与磁盘的交互过程
2016-05-19 09:05 1843对于计算机系统底层技术,想必很多人都和我一样不太了解,最近在学 ... -
存储器层次结构中基本的缓存原理
2016-05-19 09:00 670对于操作系统,我们知道,越靠近CPU的存储器,其存储速度就会越 ... -
异常处理
2016-05-19 00:29 426我知道很多人都知道异常处理,但可能对其底层并不太了解,现在我们 ...
相关推荐
僵尸进程是计算机操作系统中的一种特殊状态,当一个进程执行完毕并退出,但其父进程尚未读取其退出状态时,这个已结束的进程就会成为僵尸进程。它的主要特征是进程已不再执行任何代码,但其进程描述符仍然存在于内存...
在操作系统(OS)中,僵尸进程是一个已终止但其父进程尚未从子进程接收状态信息的进程。这种状态是进程生命周期中的一个不寻常阶段,它可能会占用系统资源并导致不必要的混乱。本文将深入探讨消除僵尸进程的两种常用...
### Linux中的僵尸进程详解 #### 一、僵尸进程的概念与形成原因 在Linux系统中,程序的执行是以进程的形式存在的。每一个进程都有一个父进程(除非是init进程,它的PID为1,没有父进程),而它自身又可以作为其他...
僵尸进程是一种特定状态的进程,当一个进程执行完毕并退出,但其父进程尚未读取它的退出状态时,该进程就会成为僵尸进程。这种状态的进程已经没有在执行任何代码,但它在系统中的进程描述符仍然存在,占用了一定的...
在Linux系统中,僵尸进程(Zombie Process)是一种常见的系统问题,它们通常是由父进程创建的子进程在完成任务后未能被父进程正确回收而遗留下来的。这些僵尸进程虽然不再执行任何操作,但仍然占据着系统资源,如...
### 在Linux系统中查看进程及杀死僵尸进程的方法 #### 一、引言 在Linux操作系统中,进程管理是一项重要的任务,它涉及到系统性能优化、故障排查等多个方面。本文将详细介绍如何使用`ps`命令来查看系统中的进程...
dumb-init 跨框架init初始化进程,有效回收僵尸进程
Linux 允许进程查询内核以获得其父进程的 PID,或者其任何子进程的执行状态。例如,进程可以创建一个子进程来执行特定的任务,然后调用诸如 wait() 这样的一些库函数检查子进程是否终止。如果子进程已经终止,那么,...
Linux杀死僵尸进程.zip 需要掌握的运维命令有ls、ps、free、top、uptime、ifconfig、susudo、dmesg、iostat、vmstat、sar、htop、iotop、smem等
僵尸进程的产生和如何避免僵尸进程的产生和如何避免僵尸进程的产生和如何避免僵尸进程的产生和如何避免
Linux避免僵尸进程
### 谈谈守护进程和僵尸进程 #### 守护进程与僵尸进程的概念及应用场景 在深入探讨守护进程和僵尸进程之前,我们先简要回顾一下这两种进程的基本概念及其应用场景。 - **守护进程**(Daemon Process):是在后台...
本文主要给大家介绍了关于Linux中僵尸进程和孤儿进程的相关内容,分享给出来供大家参考学习,下面来看看详细的介绍: 1、僵尸进程 一个子进程在其父进程没有调用wait()或waitpid()的情况下退出,这个子进程就是僵尸...
"Linux安全攻略——僵尸进程" Linux安全攻略——僵尸进程.pdf中讨论了Linux操作系统中的进程管理机制,包括进程的概念、进程调度、进程树、进程标识符、进程生命周期等方面的知识点。 进程概念 在Linux操作系统中...
僵尸进程是Linux系统中常见的一个问题,虽然它们对系统的影响有限,但长期存在的僵尸进程会逐渐消耗系统资源。对于那些难以杀死的僵尸进程,我们需要深入分析其背后的原因,并采取相应措施来解决问题。通过上述方法...
在Python编程环境中,僵尸进程的产生是由于特定的进程生命周期管理机制导致的。在Unix或类Unix操作系统上,当一个子进程完成执行并调用了`exit`系统调用后,它并不会立即从系统中移除,而是转变为僵尸状态。这是因为...
在本文中,我们探讨了如何使用Shell脚本来查找并清理子进程和僵尸进程。僵尸进程是指已结束但其父进程尚未从内核中删除其进程描述符的进程,而子进程则是由其他进程(父进程)创建的进程。 首先,脚本接收一个参数...
我们可以使用如下几种方法避免僵尸进程的产生: 1.在fork后调用wait/waitpid函数取得子进程退出状态。 2.调用fork两次(第一次调用产生一个子进程,第二次调用fork是在第一个子进程中调用,同时将父进程退出(第一...
查看僵尸进程
僵尸进程是子进程已经结束运行,但其父进程尚未对其进行回收的进程,其进程描述符仍然存在于系统中。这种状态下的进程虽不再占用实际的资源,但会消耗系统的进程表项资源,过多的僵尸进程将导致系统资源的浪费,甚至...