当前位置: 首页 > news >正文

进程状态

广义概念:

从广义上来讲,进程分为新建、运行、阻塞、挂起、退出五个状态,其中新建和退出两个状态可以直接理解字面意思。
运行状态:
这里涉及到运行队列的概念,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进程领养帮助其回收。

http://www.lryc.cn/news/300909.html

相关文章:

  • STM32固件库简介与使用指南
  • 【开源】SpringBoot框架开发智能教学资源库系统
  • 融资项目——获取树形结构的数据
  • Crypto-RSA2
  • IEEE Internet of Things Journal投稿经验
  • 实例分割论文阅读之:FCN:《Fully Convolutional Networks for Semantica Segmentation》
  • apk反编译修改教程系列---简单去除apk登陆 修改vip与一些反编译基础常识【十二】
  • 网络安全习题集
  • C++中的volatile:穿越编译器的屏障
  • (07)Hive——窗口函数详解
  • 【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床
  • 阅读笔记(SOFT COMPUTING 2018)Seam elimination based on Curvelet for image stitching
  • LinkedList数据结构链表
  • [计算机网络]---序列化和反序列化
  • [前端开发] 常见的 HTML CSS JavaScript 事件
  • H5/CSS 笔试面试考题(71-80)
  • 【Node.js】path 模块进行路径处理
  • react+ts【项目实战一】配置项目/路由/redux
  • 英文论文(sci)解读复现【NO.20】TPH-YOLOv5++:增强捕获无人机的目标检测跨层不对称变压器的场景
  • 第十五章 以编程方式使用 SQL 网关 - %SQLGatewayConnection 方法和属性
  • 【QTableView】
  • VS-Code-C#配置
  • 第七篇【传奇开心果系列】Python微项目技术点案例示例:数据可视化界面图形化经典案例
  • LeetCode 第33天 | 1005. K 次取反后最大化的数组和 135. 分发糖果 134. 加油站
  • PointMixer论文阅读笔记
  • [word] word分割线在哪里设置 #其他#经验分享
  • C++ 音视频原理
  • C# 只允许开启一个exe程序
  • 【Java程序员面试专栏 分布式中间件】Redis 核心面试指引
  • 2024年【高处安装、维护、拆除】模拟考试题库及高处安装、维护、拆除实操考试视频