计算机daemon和通过死循环构造的进程的区别是什么

计算机daemon和通过死循环构造的进程的区别为:1、定义不同;2、功能不同。定义不同是指计算机daemon是一种后台服务程序,而通过死循环构造的进程则只是一种简单的编程技巧。

一、计算机daemon和通过死循环构造的进程的区别是什么

1、定义不同

计算机daemon是一种后台服务程序,而通过死循环构造的进程则只是一种简单的编程技巧。

  • 计算机daemon:又称守护进程,是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件的发生;它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。
  • 通过死循环构造的进程:顾名思义,是指在一个无限循环内不断运行的进程,该进程没有特定的事件或操作触发它终止,一直运行着直到人为结束或系统出现异常,是一种简单的编程技巧。

2、功能不同

计算机daemon专门管理和监控一些特定服务,而通过死循环构造的进程则为维护某些状态或者执行某些周期性的任务而存在。

  • 计算机daemon:守护进程是一个生存周期较长的进程,通常独立于控制终端并且周期性的执行某种任务或者等待处理某些待发生的事件。大多数服务都是通过守护进程实现的。关闭终端,相应的进程都会被关闭,而守护进程却能够突破这种限制。
  • 通过死循环构造的进程:这种进程通常用于维护某些状态或者执行一些周期性的任务,例如,执行某些定时任务,如备份数据库、清理缓存等操作;维护某些状态,如更新数据、检查任务状态、记录日志等操作;长时间运行的服务,如实时聊天服务器数据采集服务等。

二、deamon进程简介

Daemon程序是一直运行的服务端程序,又称为守护进程。通常在系统后台运行,没有控制终端不与前台交互,Daemon程序一般作为系统服务使用。Daemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。一般说Daemon程序在后台运行,是因为它没有控制终端,无法和前台的用户交互。Daemon程序一般都作为服务程序使用,等待客户端程序与它通信。我们也把运行的Daemon程序称作守护进程。

编写规则

  1. 程序运行后调用fork,并让父进程退出。子进程获得一个新的进程ID,但继承了父进程的进程组ID。
  2. 调用setsid创建一个新的session,使自己成为新session和新进程组的leader,并使进程没有控制终端(tty)。
  3. 改变当前工作目录至根目录,以免影响可加载文件系统。或者也可以改变到某些特定的目录。
  4. 设置文件创建mask为0,避免创建文件时权限的影响。
  5. 关闭不需要的打开文件描述符。因为Daemon程序在后台执行,不需要于终端交互,通常就关闭STDIN、STDOUT和STDERR。其它根据实际情况处理。

三、通过死循环构造的进程简介

通过死循环构造的进程是一种编程技巧,通常用于编写某些周期性的任务和长时间运行的后台服务,例如实时聊天服务器、数据采集服务等。通过死循环构造的进程可以在系统的后台一直运行,不断地执行指定的任务,并维持某些状态(如记录日志、更新进度等)。这种进程通常使用无限循环的方式,可以在循环中执行一些代码块。

四、计算机构造进程的方式

对于通用系统,需要有系统运行过程中创建或撤销进程的能力,主要分为4种形式创建新的进程:

  1. 系统初始化(查看进程linux中用ps命令,windows中用任务管理器,前台进程负责与用户交互,后台运行的进程与用户无关,运行在后台并且只在需要时才唤醒的进程,称为守护进程,如电子邮件、web页面、新闻、打印)
  2. 一个进程在运行过程中开启了子进程(如nginx开启多进程,os.fork,subprocess.Popen等)
  3. 用户的交互式请求,而创建一个新进程(如用户双击暴风影音)
  4. 一个批处理作业的初始化(只在大型机的批处理系统中应用)

无论哪一种,新进程的创建都是由一个已经存在的进程执行了一个用于创建进程的系统调用而创建的:

  • 在UNIX中该系统调用是:fork,fork会创建一个与父进程一模一样的副本,二者有相同的存储映像、同样的环境字符串和同样的打开文件(在shell解释器进程中,执行一个命令就会创建一个子进程)。
  • 在windows中该系统调用是:CreateProcess,CreateProcess既处理进程的创建,也负责把正确的程序装入新进程。

延伸阅读

进程与程序的区别

  1. 程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的。
  2. 程序是静态的观念,进程是动态的观念。
  3. 进程具有并发性,而程序没有。
  4. 进程是竞争计算机资源的基本单位,程序不是。
  5. 进程和程序不是一一对应的:一个程序可对应多个进程即多个进程可执行同一程序,一个进程可以执行一个或几个程序。

文章标题:计算机daemon和通过死循环构造的进程的区别是什么,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/48135

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLWZ, ZLW认证作者
上一篇 2023年3月30日
下一篇 2023年3月30日

相关推荐

  • vscode为什么有空格报错

    Visual Studio Code(简称VSCode)有时会在空格处报错,主要是因为编程规范设定、语法错误、扩展程序的检测、以及编辑器的配置设置。例如,在某些编程语言中,不恰当的空格使用可能导致编译或运行时错误,而严格的代码格式化扩展可能会标记这些作为潜在问题。此外,编辑器的设置可能会自动检测代码…

    2024年4月3日
    13200
  • oa系统怎么

    OA系统是企业内部信息化管理的一种实用工具,旨在提高工作效率、优化办公流程、增强数据安全性1、提升沟通协作效能2、实现资源共享3、。 OA系统的作用显著,尤其在提升沟通协作效能方面,系统通过即时消息、邮件、论坛和视频会议等多种形式,保证员工之间无缝沟通,确保信息流通迅速、高效。 一、系统简介 OA系…

    2024年1月11日
    16800
  • 下载什么软件可以记工时

    记工时软件有:1、Toggl;2、RescueTime;3、 Clockify;4、Everhour。Toggl是一款功能强大的在线工时记录软件,能够方便地记录员工的时间和任务。该软件提供了简单易用的界面,使您可以快速开始记录时间。您可以在Toggl内创建项目和任务,然后开始计时。 1、Toggl …

    2023年2月27日
    31600
  • devops测试体系是什么

    DevOps测试体系涉及持续集成(CI)、持续交付(CD)与自动化测试三个主干,旨在加速软件交付流程中的测试环节、改善软件品质与加快上市速度。1、持续集成环节的测试注重代码提交后的即时反馈与快速诊断;2、持续交付过程中的测试着眼于确保软件可随时部署至生产环境;3、自动化测试则贯穿始终,减少重复劳动、…

    2024年3月26日
    7300
  • 商家为什么不愿意用聚合支付

    商家对于使用聚合支付的犹豫主要涉及以下几个方面:1、费用问题;2、数据安全隐患;3、操作复杂性;4、法规合规风险;5、客户体验问题。其中,费用问题是让很多商家产生疑虑的核心因素,由于聚合支付平台通常会收取一定的手续费,可能增加商家的运营成本。 1、费用问题 聚合支付虽然提供了多种支付方式的整合,便捷…

    2023年8月10日
    71900
  • 作为项目经理如何管理好施工班组

    作为项目经理,管理好施工班组需要实施有效的沟通机制、建立严格的现场管理规则、进行持续的技能培训、确保安全生产、落实科学的资源配置和鼓励团队协作精神。其中,有效的沟通机制是基础,它涵盖了定期的项目会议、现场交流和问题反馈等,能够确保所有班组成员及时了解项目信息,明确自身职责,同时也能使项目经理及时掌握…

    2024年4月11日
    5600
  • 设备管理的概念和内容是什么

    设备管理是确保工作流程顺畅和提高生产效率的关键环节。其主体概念涉及监控、维护、配置和优化各类生产和办公设备的过程。在详细的核心观点中,它包括:1、资产追踪,确保实时掌握设备状态和位置;2、性能监控,以预防设备故障;3、维护计划的制定与执行,延长设备使用寿命;4、配置管理,调整和更新设备以适应不断变化…

    2023年11月16日
    44800
  • 敏捷开发中的角色扮演是什么意思

    敏捷开发中的角色扮演是指团队成员在项目中扮演不同的角色,以实现更好的协作和项目管理。常见的角色有产品负责人、敏捷团队、敏捷教练、利益相关者和敏捷项目经理等。每个角色在敏捷团队中承担不同的责任和职责,共同推动项目的成功。根据项目的需求和团队的组成,角色可能会有所调整和变化,团队成员应该具有开放的心态和灵活的工作方式,以适应不同角色的要求,并积极参与协作和决策。

    2023年10月20日
    44500
  • devops是什么和什么的组合

    DevOps乃是开发(Development)与运维(Operations)二者的密切配合并融合的实践,旨在加速软件交付流程、提升自动化程度1、促进文化协同。具体来讲,它通过实施一系列精益和敏捷原则,确保开发、测试、部署一线人员有效沟通合作,缩短产品上市时间,提升服务质量。促进文化协同观点中,Dev…

    2024年3月26日
    7700
  • 如何加强对项目经理的管理

    加强对项目经理的管理是高效团队运作的关键,它依赖于明确的职责定位、有效的沟通机制、持续的培训与发展、绩效评估体系,以及奖励与激励措施。在这些方面中,明确的职责定位尤为重要。它保证了每位项目经理都能清楚地理解自己的职责范围,避免了职责上的重叠或遗漏,确保了项目的顺利进行。 接下来,我们将详细分析如何通…

    2024年4月11日
    5100

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部