进程状态

广义概念:

从广义上来讲,进程分为新建、运行、阻塞、挂起、退出五个状态,其中新建和退出两个状态可以直接理解字面意思。
运行状态:
这里涉及到运行队列的概念,CPU在读取数据的时候,需要把内存中的进程放入运行队列之中依次执行,我们一般认为只要一个进程在运行队列之中,无论当前CPU是否正在处理它,这个进程的状态都是运行状态。
阻塞状态:
一些进程可能需要在运行过程中发生向磁盘写入或读取数据的操作,我们知道磁盘的速度是相对较慢的,当操作系统认为某一个进程需要消耗一定时间与磁盘交互的时候,就会暂时将它移出运行队列(否则就浪费CPU资源了),当然进程与磁盘交互也是要讲求顺序的,我们称之为等待队列。
挂起状态:
按我的看法来,挂起状态是阻塞状态的一种极端,当内存空间非常有限的情况下,一些进程由于迟迟不能完成与外设的交互,处于一种占着茅坑不拉屎的状态,操作系统当然要对这种进程予以一定的管理,通常会把此进程信息置换到磁盘中的swap分区中,等待合理实际再次调度。

Linux下的进程状态:

Linux的进程大致分为6中,分别是运行R、睡眠S、休眠D、停止T、僵尸Z、死亡X,R对应运行,S、D、T对应阻塞,X、Z对应退出

下面我们通过实现来观察一下部分进程状态
R运行:在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9f204d1262cb4b30913d3b717fed9150.png在这里插入图片描述

睡眠S:
在这里插入图片描述
在这里插入图片描述

(printf的过程就是在与外设交互的过程)

————————————————————

一般我们把S状态成为可中断睡眠,通俗一点讲就是一个进程正在等待队列之中,但交互迟迟没有完成,操作系统便会讲该进程挂起。而D状态又称不可中断睡眠,如果不得到需要的数据,就会一直抢占着空间。T则是直接暂停一个进程。

僵尸进程:
指的是一个已经执行完却仍然占据内存空间的一个将死进程,正在等待其父进程对它进行检验回收,一般在父进程比子进程迟结束的时候发生,过多的僵尸进程会浪费空间资源。

下面来模拟一个僵尸进程:
在这里插入图片描述
在这里插入图片描述

孤儿进程:

通过fork之后会形成一对父子进程,一般情况下子进程结束后是需要父进程来帮助回收资源的,但是有些时候父进程可能比子进程先退出,子进程就丧父了,这种情况下的子进程我们称之为孤儿进程。
但是孤儿进程不像僵尸进程一样会浪费资源,在一个进程成为孤儿进程后,将有1号init进程领养帮助其回收。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/391029.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件工程师,OpenAI Sora驾到,快来围观

概述 近期,OpenAI在其官方网站上公布了Sora文生视频模型的详细信息,展示了其令人印象深刻的能力,包括根据文本输入快速生成长达一分钟的高清视频。Sora的强大之处在于其能够根据文本描述,生成长达60秒的视频,其中包含&…

太炸了!Sora深夜发布!网友:我要失业了

2022年末,OpenAI聊天机器人ChatGPT的面世无疑成为了引领人工智能浪潮的标志性事件,宣告了新一轮科技革命的到来。无论是聊天娱乐、教育学习,还是工作生产、医疗健康等领域,人工智能正以前所未有的速度渗透到我们生活的方方面面。 …

深入解析ESP32C3(3)- bootloader启动流程

ESP32C3启动流程可以分为如下3 个步骤: 一级引导程序(PBL):被固化在了ESP32-C3 内部的ROM 中,它会从flash 的0x0 偏移地址处加载二级引导程序至RAM (IRAM & DRAM) 中。二级引导程序(SBL):从flash 中加载分区表和主程序镜像至…

什么是数据同步利器DataX,如何使用?

转载至我的博客 https://www.infrastack.cn ,公众号:架构成长指南 今天给大家分享一个阿里开源的数据同步工具DataX,在Github拥有14.8k的star,非常受欢迎,官网地址:https://github.com/alibaba/DataX 什么…

【Java程序设计】【C00265】基于Springboot的地方废物回收机制管理系统(有论文)

基于Springboot的地方废物回收机制管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的地方废物回收机构管理系统 本系统分为管理员功能模块以及员工功能模块。 管理员功能模块:管理员登录系统后…

spring boot3登录开发-1(整合jwt)

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途。 目录 前置条件 jwt简介 导依赖 编写jwt工具类 1.配置项直接嵌入代码,通过类名.静态方法使用 2.配置项写到…

算法刷题:无重复字符的最长字串

无重复字符的最长字串 .题目链接题目详情算法原理题目解析滑动窗口定义指针进窗口判断出窗口更新结果 我的答案 . 题目链接 无重复字符的最长字串 题目详情 算法原理 题目解析 首先,为了使字符串遍历的更加方便,我们选择将字符串转换为数组 题目要求子串中不能有重复的字符…

LaTeX中的documentclass命令:指定文档的类型和整体布局

诸神缄默不语-个人CSDN博文目录 documentclass 是 LaTeX 中一个基础且重要的命令,用于定义文档的整体布局和样式。这个命令告诉 LaTeX 编译器文档是属于哪一类的,比如是文章、报告、书籍等,每一类都有其预定义的格式和结构。 文章目录 基本语…

MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(2)-Swagger框架集成

Swagger是什么? Swagger是一个规范且完整API文档管理框架,可以用于生成、描述和调用可视化的RESTful风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就…

JDBC 核心 API

引入 mysql-jdbc 驱动 驱动 jar 版本的选择:推荐使用 8.0.25,省略时区设置java 工程导入依赖 项目创建 lib 文件夹导入驱动依赖 jar 包jar 包右键 - 添加为库 JDBC 基本使用步骤 注册驱动获取连接创建发送 sql 语句对象发送 sql 语句,并获…

清华AutoGPT:掀起AI新浪潮,与GPT4.0一较高下

引言: 随着人工智能技术的飞速发展,自然语言处理(NLP)领域迎来了一个又一个突破。最近,清华大学研发的AutoGPT成为了业界的焦点。这款AI模型以其出色的性能,展现了中国在AI领域的强大实力。 目录 引言&…

字符串拼接 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 200分 题解: Java / Python / C 题目描述 给定 M 个字符( a-z ) ,从中取出任意字符(每个字符只能用一次)拼接成长度为 N 的字符串,要求相同的字符不能相邻。 计算出给定的字符列表…

突发!亚马逊创始人贝索斯抛售60亿美元股票,外网疑其或加仓比特币

号外:2.16教链内参《内参:OpenAI Sora惊艳发布,加密圈有人获利超700倍》 前世界首富、全球知名电商平台亚马逊(amazon)创始人杰夫贝索斯(Jeff Bezos)最近一周以来接连抛售自家公司股票&#xff…

BulingBuling[Beyond the To-Do List] - 《让金钱为你服务》 [ Make Money Work for You ]

与《财务自由: 赚到足够的钱的有效方法》作者Grant的简短访谈 让钱为你工作 超越待办事项清单 主持人:Erik Fisher Make Money Work for You Beyond the To-Do List Hosted by Erik Fisher 与Erik Fisher一起探索如何确定你生活中最大的财务杠杆以及使用它们的最佳方…

【Linux系统化学习】文件重定向

目录 文件内核对象 文件描述符的分配规则 重定向 重定向的概念 dup2系统调用 输出重定向 追加重定向 输入重定向 stderr解析 重定向到同一个文件中 分离常规输出和错输出 文件内核对象 上篇文章中我们介绍到了操作系统中的文件,操作系统为了方…

什么是智慧公厕,智慧公厕有哪些功能

1.什么是智慧公厕? 随着智慧城市的快速发展,公共厕所作为城市基础设施的一部分,也在逐步升级转型。那么,什么是智慧公厕?智慧公厕作为智慧城市的重要组成部分,将公共厕所的建设、设计、使用、运营和管理等…

报错405(errAxiosError: Request failed with status code 405)

errAxiosError: Request failed with status code 405 前端调用接口的方法跟后台定义接口的方法不一致

docker (四)-docker网络

默认网络 docker会自动创建三个网络,bridge,host,none bridge桥接网络 如果不指定,新创建的容器默认将连接到bridge网络。 默认情况下,使用bridge网络,宿主机可以ping通容器ip,容器中也能ping通宿主机。 容器之间只…

UE4学习笔记 FPS游戏制作5 动画蒙太奇制作开枪动画

创建一个蒙太奇 选择角色的骨骼,并重命名 编辑蒙太奇 将我们需要的动画拖动到Default下的两个白杠的上边那个里 然后在下方的Sections节点中,点击Preview后的Default,选中后,再点击PreviewAllScetions上百年的长的绿色的Defalut&…

使用miniconda管理Python环境

之前经常使用pipenv管理虚拟环境,但是有一个问题就是代码给别人使用的时候,别人使用的Python版本和自己的不一致时,安装依赖包的时候会有问题。所以现在使用miniconda来管理虚拟环境,不仅小巧方便,还能为每个环境指定不…