首页 > 系统相关 >进程状态与进程关系

进程状态与进程关系

时间:2023-02-02 20:34:24浏览次数:32  
标签:关系 状态 运行 会话 终端 进程 ID 守护

一、进程的六种状态   Linux 系统下进程通常存在 6 种不同的状态,分为:就绪态、运行态、僵尸态、可中断睡眠状态(浅度 睡眠)、不可中断睡眠状态(深度睡眠)以及暂停态。

  •   就绪态:进程满足被CPU调度的所有条件但此时并没有被调度执行,只要得到CPU的使用权就能够被执行的状态。
  •   运行态:进场正在被CPU调度运行的状态。
  •   僵尸态:进程已经结束,但其父进程还未给它“收尸”的状态。
  •   可中断睡眠态:浅度睡眠,可以被唤醒。
  •   不可中断睡眠态:深度睡眠,无法被信号唤醒,只能等待特定的条件才能结束睡眠。
  •   暂停态:进程暂停运行的状态。
一个新创建的进程会处于就绪态,只要得到CPU就能被执行。它们的关系如图所示。

 

 二、进程关系

  进程间存在着多种不同的关系,主要包括:无关系(相互独立)、父子进程关系、进程组以及会话。   进程组:每个进程除了有一个进程 ID、父进程 ID 之外,还有一个进程组 ID,用于标识该进程属于哪一个进程 组,进程组是一个或多个进程的集合,这些进程并不是孤立的,它们彼此之间或者存在父子、兄弟关系,或 者在功能上有联系。   进程组的实质时是方便对进程进行管理。每个进程必定有且只能属于一个进程组,每个进程组有个组长进程,组长进程的ID就等于进程组ID,在组长进程的ID前面加一个负号即是操作进程组。组长进程不能再创建新的进程组,进程组的存在与否与组长进程的运行状态无关。默认情况下,新创建的进程会继承父进程的进程组 ID。   一个进程只能为它自己或它的子进程设置进程组 ID,在它的子进程调用 exec 函数后,它就不能更改该子进程的进程组 ID 了。   会话:会话是一个或多个进程组的集合。一个会话可包含一个或多个进程组,但只能有一个前台进程组,其它的是后台进程组;每个会话都有一个会话首领(leader),即创建会话的进程。一个会话可以有控制终端、也可没有控制终端。

  会话的首领进程连接一个终端之后,该终端就成为会话的控制终端,与控制终端建立连接的会话首领进程被称为控制进程

三、守护进程   守护进程(Daemon)也称为精灵进程,是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或等待处理某些事情的发生。   特点:1.长期运行。一般在系统启动时开始运行,除非强行终止,否则直到系统关机都会保持运行。与守护进程相比,普通进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但守护进程不受用户登录注销的影响,它们将会一直运行着、直到系统关机。   2.与控制终端脱离。普通进程都是和运行该进程的终端相绑定的;但守护进程能突破这种限制,它脱离终端并且在后台运行,脱离终端的目的是为了避免进程在运行的过程中的信息在终端显示并且进程也不会被任何终端所产生的信息所打断。   守护进程 Daemon,通常简称为 d,一般进程名后面带有 d 就表示它是一个守护进程。守护进程与终端无任何关联,用户的登录与注销与守护进程无关、不受其影响,守护进程自成进程组、自成会话,即pid=gid=sid。    3.编写守护进程    步骤   守护进程一般以单例模式运行。   4.单例模式运行   程序只能被执行一次,只要该程序没有结束,就无法再次运行,我们把这种情况称为单例模式运行。   

标签:关系,状态,运行,会话,终端,进程,ID,守护
From: https://www.cnblogs.com/DongdongAa/p/17087225.html

相关文章

  • k8s namespace 一直处于 Terminating 状态的解决方法
    目录json格式导出namespace信息修改json文件开启proxy服务调用接口删除namespace以下的tool为Terminating状态的namespace,下面相关的一些操作记得将tool......
  • 2009-03-确认关系开始交往
     这些天刘文轩一边准备面试简历,一边与女同学丽丽的关系逐渐升温。这天晚上刘文轩与丽丽如同往常一样在QQ上闲聊着,突然丽丽说“我好像有点喜欢你了”。刘文轩看到这段话心......
  • greenplum数据库、模式、表空间、role的含义与关系
    greenplum数据库、模式、表空间、role的含义与关系(基于4.3.30版本)role在GP中是通过role来控制数据库的访问权限,role包含两个概念一个是user一个是group。两者的创建方式......
  • git status查看状态出现分支领先
    gitstatus出现代码分支领先情况  位于分支master您的分支领先'origin/master'共6个提交。(使用"gitpush"来发布您的本地提交)无文件要提交,干净的工作区解......
  • FastCgi与PHP-fpm之间是个什么样的关系
    首先,CGI是干嘛的?CGI是为了保证webserver传递过来的数据是标准格式的,方便CGI程序的编写者。webserver(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么webserve......
  • Oracle系统常见进程有哪些,作用是什么?
    转至:https://vip.kingdee.com/article/336895665106415104?isKnowledge=2&productLineId=8Oracle系统常见进程如下: 五个必须的ORACLE后台进程SMON、PMON、DBWn、CKPT......
  • 写了个监控 ElasticSearch 进程异常的脚本!
    作者:JackTian来源:公众号「杰哥的IT之旅」ID:Jake_Internet服务器配置免密钥环境准备:配置免密钥前,需要在服务器的hosts文件中配置目标主机名称与IP对应关系。vim/......
  • js-设计模式-行为型-策略模式与状态模式的区别
    在js行为型设计模式中。策略模式与状态模式大同小异。下面,来说说它的区别。相同点:都会使用行为函数封装行为,通过委托来分发行为。不同点:策略模式中的行为函数会更加割裂,......
  • 快速上手vue前端存储库、全局状态管理工具pinia
    pinia是什么,为什么我们要使用pinia?pinia是vue全局状态管理工具,类似vueX,用于全局的数据状态存储、修改变更等等相较于vueX,pinia的使用较为简单,轻量级,上手容易,干掉了vue......
  • Linux进程和计划任务
    一、进程及其命令介绍1.1什么是进程要想了解进程,首先我们要了解什么是程序。程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具;而进程......