首页 > 系统相关 >僵尸进程 孤儿进程 守护进程

僵尸进程 孤儿进程 守护进程

时间:2024-01-17 20:45:41浏览次数:25  
标签:__ 僵尸 print 孤儿 进程 守护 name

【一】僵尸进程

  • 想象一下,有一个家庭里,父母(父进程)安排孩子(子进程)去完成一个特定的任务,比如买东西。孩子出门去了,父母继续做他们的事情。当孩子完成任务后,他们会回家并告诉父母他们已经完成了任务。在这个过程中,父母需要知道孩子是否已经回来并完成了任务。如果孩子回来了,但父母没有注意到(也就是没有“接收”孩子的完成状态),孩子就像一个“僵尸”一样在家里徘徊,不是真正自由去做其他事情,也不是完全结束他们的任务。
  • 在计算机术语中,这个“僵尸”就是所谓的僵尸进程。当一个子进程完成它的工作后(比如完成一个计算或任务),它会发送一个信号给它的父进程(比如操作系统),告诉父进程它已经完成了工作。如果父进程没有正确地处理这个信号(也就是没有“接收”子进程的完成状态),那么子进程虽然已经完成了它的工作,但它的一些信息(比如它的进程号和退出状态)仍然存储在系统中。这就是僵尸进程。它们不再执行任何任务,但仍占用系统资源。
  • 僵尸进程通常不会占用很多资源,但如果有很多僵尸进程累积,它们可能会耗尽系统用于追踪进程的资源。因此,通常需要父进程在子进程完成后及时处理(也就是“接收”子进程的状态),以避免产生僵尸进程。

【二】孤儿进程

  • 孤儿进程可以用一个简单的家庭故事来比喻。想象一下,有一个孩子(子进程)正在做家庭作业,而他的父母(父进程)在家里照看着他。但是,如果父母突然不在了(比如父进程意外结束或崩溃),孩子就会变成一个“孤儿”。
  • 在计算机术语中,这就是所谓的孤儿进程。当一个子进程正在运行,但其父进程已经结束或崩溃时,这个子进程就变成了孤儿进程。不过,和现实生活中的孤儿不同,计算机系统中的孤儿进程会被“收养”。这意味着操作系统的一个特殊进程(通常是称为init的进程,在一些系统中可能是其他名称)会成为这个孤儿进程的新父进程。init进程会负责这个孤儿进程,处理它的任何输出,并在孤儿进程结束时收集它的退出状态。
  • 所以,在计算机系统中,孤儿进程并不是一个大问题,因为它们会被操作系统自动处理。它们不会像僵尸进程那样占用资源不释放。实际上,孤儿进程的存在通常是短暂的,因为它们在完成任务后会被init进程适当地清理。

【三】守护进程

  • 守护进程可以用一个家庭里的看家机器人来比喻。想象一下,你有一个机器人,它的工作是全天候看护你的家,处理一些后台任务,比如监控安全系统、自动调节温度、定时浇水等。这个机器人默默地在背后工作,不需要你的直接干预,同时它的工作也不会干扰到你的日常生活。
  • 在计算机术语中,守护进程就像这样一个机器人。它是一个在后台运行的特殊进程,执行一些长期运行的服务任务。通常,守护进程不直接与用户交互,而是在后台默默地工作。它们负责很多重要的系统任务,比如日志记录、系统监控、任务调度等。
  • 代码示例
# 没有设置守护进程
from multiprocessing import Process
import time


def func(name):
    print(f'{name}还活着')
    time.sleep(2)
    print(f'{name}正常死亡')


if __name__ == '__main__':
    p = Process(target=func, args=('苏妲己',))
    p.start()
    print('纣王死了')

'''
纣王死了
苏妲己还活着
苏妲己正常死亡
'''
# 当主进程死亡之后,子进程还是会进行
# 加上守护进程
from multiprocessing import Process
import time


def func(name):
    print(f'{name}还活着')
    time.sleep(2)
    print(f'{name}正常死亡')


if __name__ == '__main__':
    p = Process(target=func, args=('苏妲己',))
    p.daemon = True
    p.start()
    print('纣王死了')
# 纣王死了
# 主进程死亡,子进程就不会存在了

标签:__,僵尸,print,孤儿,进程,守护,name
From: https://www.cnblogs.com/Hqqqq/p/17971131

相关文章

  • 多进程理论
    (一)什么是进程理论上正在进行的一个过程或者说一个任务负责执行任务的是CPU(二)进程和程序的区别理论上程序就是一堆代码进程是程序运行的过程需要强调的是:同一个程序执行两次,那也是两个进程,比如打开暴风影音,虽然都是同一个软件,但是一个可以播放西游记,一个可以播放水浒传......
  • 全视通养老系统 -17年专注智慧养老守护产品-机构智慧养老解决方案
       随着人口老龄化的加剧,养老问题已经成为社会关注的焦点。传统的养老方式已经无法满足现代老年人的需求,而智慧养老作为一种新型的养老模式,正逐渐受到广泛的关注和应用。智慧养老是指利用先进的信息技术,为老年人提供更加智能化、便捷化的养老服务,从而提高老年人的生活质量。 ......
  • 进程锁(互斥锁)
    进程锁(互斥锁)(1)简介进程锁(也称为互斥锁)是一种用于控制多个进程对共享资源访问的机制。在并发编程中,多个进程可能同时访问共享的数据,如果没有适当的同步机制,可能会导致数据不一致或其他问题。进程锁就是用来解决这个问题的一种同步工具。互斥锁的基本思想是,在访问共享资源......
  • 查看Buffer&Cache被哪些进程占用
    背景介绍根据运营反馈线上环境监控图表ResponseTime出现了波动,由于我之前处理过类似的情况,上次是由于Redis占用大量内存没有释放的问题导致的,所以这次我也从内存着手进行分析问题的原因。(虽然最后确定导致此问题的原因是Java代码中的问题,但对于cache内容被那些进程所占用的,仍然......
  • python3之多进程线程
    本文内容参考https://www.liaoxuefeng.com/wiki/1016959663602400/1017628290184064 多进程os模块的fork()多进程(multiprocessing):Unix/Linux操作系统提供了一个fork()函数,fork()函数调用时,操作系统自动把当前进程(父进程)复制了一份(子进程),然后分别在父进程和子进程内返回。......
  • 进程
    进程在Python中,进程(Process)是计算机中正在执行的程序的独立实例。每个进程都有自己的内存空间、变量、文件描述符等资源,是操作系统进行任务调度和资源管理的基本单位。Python提供了multiprocessing模块,使得在Python中创建和管理进程变得相对容易。以下是一些关于Python......
  • 对进程以及创建进程的理解
    【一】进程和程序【1】什么是进程?进程就是正在运行的程序【2】谁来执行进程?cpu【3】进程和程序的区别?程序是存储再硬盘里面的一堆代码和数据进程是正在运行的程序【二】进程调度问题有一个算法叫做任务调度算法就像是一个非常聪明的调度员,在计算机系统中负责安排......
  • 内存取证1-进程
    otterctf内存取证-----4-NameGame看到这题目,看看是不是浏览器登录,无果。这里似乎没有跟题干相关的答案。游戏登录了,登录进程里是不是包含账户信息,把进程dump下来看看。频道后面是不是账户名字,果然猜对了,上面都是假想自己做出来的,感觉蛮有意思的,所以记录下来,进程里居然......
  • 车机必备软件-小白点EasyTouch(类似苹果的悬浮球,返回,清理垃圾,杀进程)
    简介有些小伙伴升级车机后,由于部分软件打开后处于全屏状态无法返回,这里我教大家如何解决。解决办法就是:在车机上安装这款小白点软件,这款软件体积小巧,不占内存,操作也十分方便,它能帮助你快速回到主屏幕和返回上一个界面。界面展示caplay界面普通车机界面软件功能1、主屏......
  • Linux进程管理
    一、什么是进程进程是加载到内存中的一段指令。如果某个用户运行一个程序,那么这个程序产生的进程也会继承到这个用户的UID和GID以及SELINUX的上下文,并且进程还具有父子关系,一个父进程可以有多个子进程二、查看进程2.1ps查看进程信息用法作用ps查看当前终端的进程ps-a查看所有终......