声明: 1. 本文为我的个人复习总结, 并那种从零基础开始普及知识 内容详细全面, 言辞官方的文章
              2. 由于是个人总结, 所以用最精简的话语来写文章
              3. 若有错误不当之处, 请指出

子进程:

由fork( )创建, 该函数被调用一次,但返回两次(子进程的返回值是0,而父进程的返回值是子进程id)

子进程得到的只是父进程的拷贝(拷贝其内存空间, 代码空间, 数据空间, 程序计数器pc值),而不是父进程本身

僵尸进程:

子进程结束了, 但父进程暂未对其资源进行回收; task_struct结构还保存在进程列表中

孤儿进程:

在回收僵尸进程之前, 如果父进程结束了,则僵尸进程变为孤儿进程,进而被init进程接管、回收

注意: ps出来以Z开头的便是僵尸进程, kill -9 并不能直接死僵尸进程

为什么需要僵尸进程(保留task_struct)?

因为task_struct里面保存了进程的pid、退出码、以及一些统计信息, 父进程可能会关心这些信息

如何处理僵尸进程?

三个方案:

  1. 父进程调用wait( )/waitpid( )

    缺点: wait调用是阻塞的, 如果调用wait时子进程还没有退出, 将阻塞住父进程 影响性能

  2. kill父进程

    使僵尸进程变为孤儿进程, 从而被init进程接管、回收

    缺点: 父进程可能还有作用, 不该随随便便杀死

  3. 通过进程通信的信号机制 异步回调通知进行回收 (最佳)

    编写程序时, 子进程退出前向父进程发送SIGCHLD信号; 父进程回调函数收到SIGCHLD信号后 便去调用wait( )/waitpid( ) 回收 子僵尸进程

什么时候会发生 僵尸进程一直不被回收 的情况?

在采用第三种方案时, 如果父进程是一个循环 永久不会结束, 那么子进程就会一直保持僵尸状态

子进程、僵尸进程、孤儿进程(个人总结)相关推荐

  1. day34 并行并发、进程开启、僵尸及孤儿进程

    day34 并行并发.进程开启.僵尸及孤儿进程 1.并行与并发 什么是并行? 并行指的是多个进程同时被执行,是真正意义上的同时 什么是并发? 并发指的是多个程序看上去被同时执行,这是因为cpu在多个程 ...

  2. 僵尸和孤儿进程及虚拟内存

    调研进程的调度算法. 根据系统的资源分配策略所规定的资源分配算法.对于不同的的系统和系统目标,通常采用不同的调度算法,例如,在批处理系统中,为了照顾为数众多的段作业,应采用短作业优先的调度算法:又如在 ...

  3. python 僵尸进程孤儿进程

    僵尸进程&孤儿进程 On Unix and Unix-like computer operating systems, a zombie process or defunct process ...

  4. fork函数创建子进程僵尸进程孤儿进程详讲

    目录 1.创建子进程 1.1 fork() 1.2 fork()的返回值 1.3.fork的原理 1.4既然父子进程的代码是相同的,那么子进程是从哪行代码开始执行的? 1.5针对fork的返回值,让父 ...

  5. 浅析三种特殊进程:孤儿进程,僵尸进程和守护进程

    其实有时想想linux内核的设计也蕴含着很多人生哲学,在linux中有这么几个特殊进程中,我们一开始见到它们的名字可能还会觉得很诧异,但在了解完了原理后,我们仔细想想,这样的命名也不无道理!下面我就给 ...

  6. 浅析三种特殊进程:孤儿进程,僵尸进程和守护进程.

    其实有时想想linux内核的设计也蕴含着很多人生哲学,在linux中有这么几个特殊进程中,我们一开始见到它们的名字可能还会觉得很诧异,但在了解完了原理后,我们仔细想想,这样的命名也不无道理!下面我就给 ...

  7. 僵尸进程孤儿进程与守护进程

    其实有时想想linux内核的设计也蕴含着很多人生哲学,在linux中有这么几个特殊进程中,我们一开始见到它们的名字可能还会觉得很诧异,但在了解完了原理后,我们仔细想想,这样的命名也不无道理!下面我就给 ...

  8. 守护进程/僵尸进程/孤儿进程

    一 守护进程 守护进程就是在后台运行,不与任何终端关联的进程,,一个守护进程的父进程是init进程,它是一个孤儿进程,没有控制终端,所以任何输出,无论是向标准输出设备stdout还是标准出错设备std ...

  9. 有两个这样的进程:僵尸进程孤儿进程,蓝瘦香菇

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 5.8 分钟. 来自:https://juejin.im/post/5f20fbeae51d45348675fa78 那时刚写 ...

  10. 【看表情包学Linux】进程状态解析 | 运行态 | 终止态 | 进程挂起与阻塞 | 运行态R | 阻塞态S/D | 死亡态X | 僵尸态Z | 暂停态T/t | 僵尸进程 | 孤儿进程

最新文章

  1. 针对《评人工智能如何走向新阶段》一文,继续发布国内外的跟贴留言439-448条如下:
  2. linux设备驱动之pci设备的驱动架构
  3. 《Windows via C/C++》学习笔记 —— Windows 线程池
  4. JAVA基础知识(4)
  5. bib config_OEMAddressTable,config.bib详解
  6. matlab超出矩阵索引维度_搜你想看“头条搜索”网页版上线 搜索引擎迎来新玩家...
  7. python中遇到循环import即circular import的问题原理剖析及解决方案
  8. Java复习第三天-静态方法
  9. Jupyter Notebook中未显示Conda环境
  10. haproxy配置文件管理脚本
  11. 以下内容为Stackoverflow上整理以作纪录
  12. esxi 命令行查看设备
  13. [2018.10.11 T2] 整除
  14. Linux平台下使用AdventNet ManageEngine OpUtils监控网络
  15. 全解小程序猜数字游戏 04《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》
  16. 计算机打印机墨水更换方法,怎么看打印机有没有墨?老司机教你查看打印机墨水量方法 (全文)...
  17. [rtsp]海康IPC监控摄像头远程外网监控配置(DDNS)
  18. 智通标书制作系统 5.1
  19. android 文件管理器
  20. NAFSM中值滤波器讲解与实现

热门文章

  1. 微软中间语言—MSIL(转载)
  2. vsport 虚拟串口 控件 Virtual Serial Port ActiveX注册码
  3. 四目大视场四目夜视镜 --TFN TD401 大视场头盔四目夜视仪 夜视镜 无需转头微光夜视系统 四目四管
  4. 概率论考研笔记(三)
  5. Emgu CV4图像处理之ROI与mask掩码10(C#)
  6. MongoDB-SQL语法
  7. 游龙传说服务器维护,3月15日维护:渡劫后155可传说
  8. OPPO R11 R11plus系列 解锁BootLoader ROOT Xposed 你的手机你做主
  9. 罗技鼠标m590 连接器无法工作
  10. 使用MobileNet_SSD进行目标检测