首页 > 系统相关 >孤儿进程和僵尸进程简介

孤儿进程和僵尸进程简介

时间:2023-03-31 12:34:08浏览次数:40  
标签:释放 僵尸 简介 孤儿 init 内核 进程

孤儿进程

  • 父进程运行结束后,但子进程还在运行(为运行结束),这样的子进程就称为孤儿进程(Orphan Process)。
  • 每当出现一个孤儿进程的时候,内核几把故而进程的父进程设置为init(进程号为1),而init进程会循环地wait()已经退出的子进程。这样,当一个孤儿进程结束了其生命周期的时候,init进程就会出面处理它的一切善后工作。
  • 因此孤儿进程不会有什么危害 。

僵尸进程

  • 每个进程结束后,都会释放自己地址空间的用户区数据,内核区的PCB(进程控制块)没有办法自己释放掉,需要父进程去释放。
  • 进程终止时,父进程尚未回收子进程存放于内核中的残留资源(PCB),子进程就会变成僵尸(Zombie)进程。
  • 僵尸进程不能被命令:kill -9杀死。
  • 这样就会导致一个问题,如果父进程不调用wait()或waitpid()的话,那么保留的那些段信息就不会被释放,其进程号会一直被占用,但是系统所能使用的进程号是有限的,如果产生大量僵尸进程,就会因为没有可用的进程号,导致系统不能产生新的进程,此即为僵尸进程的危害,应当避免。

标签:释放,僵尸,简介,孤儿,init,内核,进程
From: https://www.cnblogs.com/nakjima/p/17273218.html

相关文章

  • ChCore—实验 3:进程与线程、异常处理 部分记录
    思考题1:内核从完成必要的初始化到用户态程序的过程是怎么样的?尝试描述一下调用关系。内核启动到用户程序启动的流程:main├──uart_init├──mm_init├──arch_interrupt_init├──create_root_thread│├──create_root_cap_group│├──__create_......
  • 如何限制进程内存:cgroup
    前两天刚知道cgroup,但是没用过,我就想做个简单的模拟OOM,网上搜了两天,发现一个比一个说的杂乱无章。 最后问的chatgpt:如何限制一个进程的内存在Linux系统中,可以使用cgroups来限制一个进程的内存。cgroups是一种内核机制,用于控制进程组的资源使用(CPU、内存、IO、网络等)。下面......
  • C# 当前进程是否有控制台窗口
    WPF应用程序,在VS的项目属性中,可以设置输出类型:那我们在代码中,如何判断应用的类型呢。有没有控制台?是否Windows应用程序还是控制台应用程序?Kernel32下函数GetConsoleWindow可以解决这个问题:[DllImport("kernel32.dll")]privatestaticexternIntPtrGetConsoleWindow();......
  • Linux 进程管理 | ps、top、kill
    ps可显示系统进程状况top可动态显示进程状况kill用来结束进程ps(ProcessStatus)ps命令用来列出系统中当前运行的进程,就是执行ps命令时的进程执行ps-auxwwf结......
  • 进程优先级及环境变量
    Linux进程优先级,环境变量入门小站 入门小站 2023-03-2422:35 发表于湖北收录于合集#Linux739个入门小站分享运维技巧及10k+Stars的开源项目227篇原......
  • Linux下的GDB多进程调试
    使用GDB调试的时候,GDB默认只能跟踪一个进程,可以在fork函数调用之前,通过指令设置GDB调试工具跟踪父进程或者子进程,默认跟踪父进程。设置调试父进程或子进程:setfollow=fork......
  • Centos查找、删除僵尸进程
    CentOS1、查找僵尸进程命令:ps-A-ostat,ppid,pid,cmd|grep-e'^[Zz]'  说明:因为状态为z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程2、批......
  • Magento Helper简介
    正如许多其他的PHPMVC系统一样,Magento也有帮助类(HelperClasses)。这些类用来提供一些不适合放在模型,视图或者控制器中的功能。Magento的帮助类也是采用分组类名的机制。也......
  • 在Linux系统下创建子进程-fork()函数
    Linux系统下创建子进程在Linux终端下输入命令:man2fork,查看fork()函数的描述:/*NAMEfork-createachildprocess#include<sys/types.h>#include......
  • 进程消息队列实例
    //write.c#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>#include<stdio.h>structmymesg{longmtype;//消息的类型,是一个整数且大于0......