计算机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日

相关推荐

  • Java开发工具有哪些

    Java开发工具有:1、Notepad++;2、XML Marker;3、SQL Developer;4、Jad;5、Eclipse;6、keytool。Notepad++是编辑 XML、脚本,甚至做简单笔记的最佳工具。Notepad++是 Notepad 应用最佳的替代品。 一、Notepad++…

    2023年5月12日
    12800
  • 针对软件开发项目的项目管理系统有哪些

    针对软件开发项目的项目管理系统有:1、PingCode;2、Git;3.Jenkins;4、Bamboo;5、华为云DevCloud。PingCode是国内国内的一款知名研发项目管理软件,曾在2021年,被知名媒体36氪评为:2021年国内研发项目管理榜单名列前茅的研发项目管理系统。 1、PingC…

    2023年2月7日
    63900
  • 产品管理工具有哪些推荐

    在现代企业的产品管理流程中,产品管理工具起到了至关重要的作用。它们是帮助团队增强协作、规划产品路线图、跟踪进度、分析反馈并最终推动产品成功的关键因素。在众多的工具中,以下几种工具因其功能全面且易于使用而受到推荐:1、Atlassian JIRA; 2、Trello; 3、Asana; 4、Roadm…

    2023年11月15日
    700
  • 原生app开发的优缺点是什么

    原生开发(Native App开发),是在Android、IOS等移动平台上利用提供的开发语言、开发类库、开发工具进行App软件开发。比如Android是利用Java、Eclipse、Android studio;IOS是利用Objective-C 和Xcode进行开发。 一、优点 1、可访问手机所…

    2023年5月31日
    15200
  • 训练网络时为什么会出现loss逐渐增大的情况

    原因有:1、学习率过高;2、数据问题;3、网络结构问题;4、初始化问题;5、正则化过强;6、其他外部因素。在深度学习过程中,训练神经网络时可能会出现损失函数(loss)逐渐增大的情况,这通常会让研究者或工程师感到困惑。 1、学习率过高 学习率是梯度下降中的一个重要参数。如果学习率设置得过高,可能会导…

    2023年7月23日
    1.7K00
  • 安卓和ios软件开发用什么编程语言

    安卓和iOS应用程序可以使用不同的编程语言进行开发。对于安卓应用程序开发,Java、Kotlin和C++是最常用的编程语言。对于iOS应用程序开发,Swift和Objective-C是必须使用的编程语言。选择适合您需求的编程语言非常重要,因为这将决定您开发应用程序的效率和质量。 安卓软件开发 安卓应…

    2023年2月28日
    75200
  • Java架构师得学习哪些知识

    Java架构师得学习以下知识:1、技术能力;2、决策能力;3、沟通能力;4、领导能力;5、全局意识。架构师最重要的是技术能力,只有在技术有深入的理解,才能服众,拉近和开发人员的距离,并形成团队中的影响力,而且也可以更加深入的理解业务。 1、技术能力 架构师最重要的是技术能力,只有在技术有深入的理解,…

    2023年2月7日
    15100
  • 瀑布开发模式的特点有哪些

    瀑布开发模式的特点有:1.开发分阶段;2.各个环节独立;3.能够简化项目控制;4.重视和强调过程文档;5.没有迭代与反馈;6.需求和开发周期固定。瀑布开发模式最大的优点,就是可以让开发人员专注于本职工作,从而提升阶段效率。 1.开发分阶段 瀑布开发模式把软件项目的开发分隔成各个开发阶段,分别是:需求…

    2022年11月16日
    96000
  • okr管理工具软件有什么

    okr管理工具软件有:1、Worktile;2、PingCode Goals;3、Zokri;4、Aha!;5、Weekdone;6、飞书 OKR;7、7Geese。Worktile 还是一个知名的项目管理工具,比如它曾在2021年36氪发布的中国软件金榜-项目管理系列榜单总榜排名名列前茅。 一、W…

    2023年4月20日
    16900
  • 云计算的特点都有哪些

    云计算的特点有:1.按需自助服务;2.无处不在的网络访问;3.资源池化;4.快速弹性;5.按使用量计费;按需自助服务是指云计算允许用户根据需求来获取和配置计算资源,这种自助式服务使用户可以随时获取所需的服务,而无需人工干预。 云计算,作为一种现代化的计算模式,已经在全球范围内得到了广泛应用。下面是一…

    2023年6月15日
    25400

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部