僵死进程又称为僵尸进程
1、僵死进程的产生:
     1) 当父进程未结束,子进程结束,并且父进程未获取子进程的退出状态。 子进程被称为僵死进程。
     2) 进程执行结束,进程主体(执行代码、数据、资源)都释放,而其PCB 并未释放。
      父进程死后僵死进程成为“孤儿进程”
 
2、在Linux系统模拟出僵死进程:
 

3、僵死进程的危害:
     如果父进程不调用wait/waitpid的话, 那么保留的那段信息就不会释放,其进程号会一定被占用,但是系统所能使用的进程号是有限的,如果产生了大量的僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程。

4、怎样处理僵死进程:
     父进程调用pid_t wait(int *);系统调用函数来获取其退出状态。
     wait的缺陷:
          1. wait 函数会阻塞运行(调用wait 函数的进程会等待事件发生才能接着运行)
          2. 父子进程成了串行运行,fork函数没有意义。
     改进:提前定义好一个信号函数,让父子进程可以同时运行,等到子进程结束时会向其父进程发送SIGCHLD,父进程获取到子进程的退出状态,避免了僵死进程的产生。

僵死进程(将死进程)相关推荐

  1. 一.僵死进程(僵尸进程)

    1.产生的原因或者条件 当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程; 2.如何去处理僵死进程? (1)父进程先结束(子进程会变成孤儿进程,孤儿进程会被收养(红帽子是i ...

  2. 查询php僵死进程,linux查找僵尸进程(zombie进程)

    首先,我们可以用top命令来查看服务器当前是否有僵尸进程,可以看到第二行行尾有个 0 zombie,如果数字大于0,那么意味着服务器当前存在有僵尸进程 可以用ps和grep命令寻找僵尸进程 ps -A ...

  3. linux 查看java进程_Linux进程查看及管理工具(ps, vmstat, dstat, glances等)

    pstree pstree - display a tree of processes , 进程树查看. [root@localhost /]# pstree systemd─┬─agetty├─au ...

  4. linux进程--僵尸进程(五)

    1.基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程.子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束. 当 ...

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

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

  6. step4 . day5 进程与进程的创建

    1.什么是进程:进程是系统中正在运行的一个程序,程序一旦运行就是进程,区别于程序的静止状态,进程是一个动态概念,包含了程序运行时需求的资源总和 2.进程的分类:交互进程.批处理进程.守护进程(不依赖s ...

  7. Linux 进程(一) 进程概念和进程状态(僵尸进程、孤儿进程、守护进程)

    进程的概念 进程状态 僵尸进程.孤儿进程.守护进程 进程的概念 程序:一系列有序的指令集合(就是我们写的代码) 进程:进程就是程序的一次执行,是系统进行资源分配和调度的独立单位. 程序是一个没有生命的 ...

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

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

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

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

  10. 【转载】linux进程及进程控制

    Linux进程控制   程序是一组可执行的静态指令集,而进程(process)是一个执行中的程序实例.利用分时技术,在Linux操作系统上同时可以运行多个进程.分时技术的基本原理是把CPU的运行时间划 ...

最新文章

  1. 曾捡破烂为生,穷到没饭吃,现在身家395亿,给员工发3亿年终奖!
  2. asp.net 用户控件
  3. python数据类型详解(全面)
  4. [WPF]使用Fody提高效率
  5. DedeCms织梦彩色标签云(tag)随机颜色和字体大小
  6. mysql与mangodb多租户_MongoDB多租户(Java):如何使用MongoClient在运行时切换具有不同数据库凭据的MongoDB数据库?...
  7. Google Guava缓存实现接口的限流
  8. pycharm安装xlrd失败_Pycharm 下载与安装 详解
  9. PS 菜单栏显示与隐藏 - 快捷键
  10. Controller中请求数据的方式
  11. arch linux arm下载_linux系统下编译给android JNI调用的Gmssl库
  12. 数据结构、算法及应用 课内模板整理
  13. 安装构建以太坊钱包Parity
  14. C++ Primer 第五版读书笔记
  15. [bug] VS2013 Brower Link和Aspnetpager引发的问题分析
  16. 工信部强化车联网安全监管、上云可有效阻止勒索攻击|全球网络安全热点
  17. 计算机无法进去系统,开机进入bios无法进入系统怎么办_电脑开机就进入bios的解决方法...
  18. SpringBoot整合IoTDB
  19. web文件上传思路(一句话muma)
  20. 一位ML工程师构建深度神经网络的实用技巧

热门文章

  1. C语言:十进制、十六进制数据互换
  2. 开启物联网智慧生活的金钥匙
  3. 花300天深度体验20款任务管理软件,我最后选了飞项
  4. 计算机需不需要考英语口语,哪些专业需要英语口语考试
  5. 面试官:Redis 如何实现每周热评功能?说说思路!
  6. linux实验一(基础命令)
  7. 插值(Interpolation)
  8. FFmpeg的avcodec_decode_video2()函数
  9. codeforces 1257C Dominated Subarray
  10. LabVIEW中将前面板置于所有桌面窗口的前面