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

操作系统原理 —— 进程有哪几种状态?状态之间如何切换?(七)

进程的五种状态

首先我们一起来看一下进程在哪些情况下,会有不同的状态表示。

创建态、就绪态

当我们刚开始运行程序的时候,操作系统把可执行文件加载到内存的时候,进程正在被创建的时候,它的状态是创建态,在这个阶段操作系统会为进程分配资源、初始化 PCB。

当进程创建完成之后,便进入 就绪态,处于就绪的进程已经具备运行条件,但是由于 CPU 不空闲,就暂时不能运行。
在这里插入图片描述

那么过了一会,CPU 它有空了,开始执行 就绪态 的进程,如果一个进程此时在 CPU 上运行,那么这个进程处于 运行态,CPU 会执行该进程对应的程序。

然后在 CPU 执行过程中,这个进程它需要调用打印机的系统资源,但是打印机它现在也很忙,没空处理。 CPU 就会把该进程变为 阻塞态

当打印机忙完了,可以把资源分配给该进程的时候,进程又会从阻塞态 转变成 就绪态 等待 CPU 的再一次执行。

当我们整个进程执行完成之后,一个进程可以执行 exit 系统调用,请求操作系统终止该进程,此时该进程会进入 终止态,操作系统会让该进程下 CPU,并且回收内存空间资源,最后还要回收该进程的 PCB,当终止进程的工作完成之后,这个进程就彻底消失了。

进程状态之间的切换

现在我们已知进程有五种状态:创建态、就绪态、运行态、阻塞态、终止态,我们再一起来总结一下这几种状态转变的过程。

首先当程序执行,进程在被创建的时候是创建态,当创建工作完成之后,就会进入就绪态,等待 CPU 执行.

当 CPU 开始执行该进程,就会进入运行态,在运行过程中,进程调用 系统调用的方式申请某种系统资源时,或者请求等待某个事件发生,此时就会进入 阻塞态,这里强调一下,从 运行态 -> 阻塞态,是由进程自身做出的主动行为。

当进程申请的资源或等待的事情发了,这个时候又从阻塞态 -> 就绪态,在这里不是进程本身能控制的,是一种被动行为。

当程序运行结束,或者运行过程中遇到不可修复的错误,就会从 运行态 -> 终止态

还有一种情况就是当进程的时间片执行时间到了,或者 CPU 被抢占了,这个时候进程状态会从:运行态 -> 就绪态

这里需要注意:不能由阻塞态 直接变为 运行态,也不能直接由 就绪态变为阻塞态,因为阻塞态是由进程主动请求的,必然需要进程在运行时主动发出这个请求。
在这里插入图片描述

我们最后再来一起总结看下:

在这里插入图片描述

状态如何被组织

操作系统为了方便管理各个不同状态下的进程,会将同一种状态下的各个进程的 PCB 组织起来。

那怎么组织呢? 组织一共有两种方式:链接方式、索引方式。

链接方式就有点像链表的数据结构一样进行存储,如下图:

在这里插入图片描述

索引的方式也很好理解,就是维护各个不同状态下进程的索引表就行,如下图:
在这里插入图片描述

这两种方式大家理解,有个印象就行。
在这里插入图片描述

本章总结

主要是掌握进程的状态,以及状态之间的切换。

在这里插入图片描述

相关文章:

操作系统原理 —— 进程有哪几种状态?状态之间如何切换?(七)

进程的五种状态 首先我们一起来看一下进程在哪些情况下,会有不同的状态表示。 创建态、就绪态 当我们刚开始运行程序的时候,操作系统把可执行文件加载到内存的时候,进程正在被创建的时候,它的状态是创建态,在这个阶…...

可算是熬出头了,测试4年,费时8个月,入职阿里,涨薪14K

前言 你的努力,终将成就无可替代的自己。 本科毕业后就一直从事测试的工作,和多数人一样,最开始从事点点点的工作,看着自己的同学一步一步往上走,自己还是在原地踏步,说实话这不是自己想要的状态。 一年半…...

5款十分小众的软件,知道的人不多但却很好用

今天推荐5款十分小众的软件,知道的人不多,但是每个都是非常非常好用的,有兴趣的小伙伴可以自行搜索下载。 1.视频直播录制——OBS Studio OBS Studio可以让你轻松地录制和直播你的屏幕、摄像头、游戏等内容。你可以使用OBS Studio来创建多种…...

Linux驱动开发:uboot启动流程详解

前言:uboot作为Linux驱动开发的 “三巨头” 之一,绝对是一座绕不开的大山。当然,即使不去细致了解uboot启动流程依旧不影响开发者对uboot的简单移植。但秉持着知其然知其所以然的学习态度,作者将给读者朋友细致化的过一遍uboot启动…...

分治与减治算法实验: 排序中减治法的程序设计

目录 前言 实验内容 实验目的 实验分析 实验过程 流程演示 写出伪代码 实验代码 代码详解 运行结果 总结 前言 本文介绍了算法实验排序中减治法的程序设计。减治法是一种常用的算法设计技术,它通过减少问题的规模来求解问题。减治法可以应用于排序问题&…...

leetcode两数、三数、四数之和

如有错误,感谢不吝赐教、交流 文章目录 两数之和题目方法一:暴力两重循环(不可取)方法二:HashMap空间换时间 三数之和题目方法一:当然是暴力破解啦方法二:同两数之和的原理,借助Has…...

使用Docker部署wikitten个人知识库

使用Docker部署wikitten个人知识库 一、wikitten介绍1.wikitten简介2.wikitten特点 二、本地实践环境介绍三、本地环境检查1.检查Docker服务状态2.检查Docker版本 四、部署wikitten个人知识库1.创建数据目录2.下载wikitten镜像3.创建wikitten容器4.查看wikitten容器状态5.检查w…...

【MYSQL】Java的JDBC编程(idea连接数据库)

1. 配置 (1)新建一个项目 (2)Build System 那里选择Maven,下一步Create (3)配置pom.xml文件 首先查看自己的MYSQL版本:进入MySQL命令窗口 我的MYSQL版本是8.0版本的. 下一步,…...

机器学习——主成分分析法(PCA)概念公式及应用python实现

机器学习——主成分分析法(PCA) 文章目录 机器学习——主成分分析法(PCA)一、主成分分析的概念二、主成分分析的步骤三、主成分分析PCA的简单实现四、手写体识别数字降维 一、主成分分析的概念 主成分分析(PCA&#x…...

手写axios源码系列二:创建axios函数对象

文章目录 一、模块化目录介绍二、创建 axios 函数对象1、创建 axios.js 文件2、创建 defaults.js 文件3、创建 _Axios.js 文件4、总结 当前篇章正式进入手写 axios 源码系列,我们要真枪实弹的开始写代码了。 因为 axios 源码的代码量比较庞大,所以我们这…...

HTB-Time

HTB-Time 信息收集80端口 立足pericles -> root 信息收集 80端口 有两个功能,一个是美化JSON数据。 一个是验证JSON,并且输入{“abc”:“abc”}之类的会出现报错。 Validation failed: Unhandled Java exception: com.fasterxml.jackson.core.JsonPa…...

零基础C/C++开发到底要学什么?

作者:黑马程序员 链接:https://www.zhihu.com/question/597037176/answer/2999707086 先和我一起看看,C/C学完了可以做什么: 软件工程师:负责设计、开发、测试和维护各类型的软件应用程序;游戏开发&#x…...

OpenStack中的CPU与内存超分详解

目录 什么是超分 CPU超分 查看虚拟机虚拟CPU运行在哪些物理CPU上 内存超分 内存预留 内存共享 如何设置内存预留和内存共享 全局设置 临时设置 什么是超分 超分通常指的是CPU或者GPU的分区或者分割,以在一个物理CPU或GPU内模拟多个逻辑CPU或GPU的功能。这…...

main.m文件解析--@autoreleasepool和UIApplicationMain

iOS 程序入口UIApplicationMain详解,相信大家新建一个工程的时候都会看到一个main.m文件,只不过我们很少了解它,现在我们分析一下它的作用是什么? 一、main.m文件 int main(int argc, char * argv[]) {autoreleasepool {return …...

C语言复习之顺序表(十五)

📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c阶段>——目标C、Windows,MySQL,Qt,数据结构与算法,Linux,多线程,会持续分享…...

学系统集成项目管理工程师(中项)系列10_立项管理

1. 系统集成项目管理至关重要的一个环节 2. 重点在于是否要启动一个项目,并为其提供相应的预算支持 3. 项目建议 3.1. Request for Proposal, RFP 3.2. 立项申请 3.3. 项目建设单位向上级主管部门提交的项目申请文件,是对拟建项目提出的总体设想 3…...

电视盒子哪个好?数码小编盘点2023电视盒子排行榜

随着网络剧的热播,电视机又再度受宠,电视盒子也成为不可缺少的小家电。但面对复杂的参数和品牌型号,挑选时不知道电视盒子哪款最好,小编根据销量和用户评价整理半个月后盘点了电视盒子排行榜前五,对电视盒子哪个好感兴…...

flink动态表的概念详解

目录 前言🚩 动态表和持续不断查询 stream转化成表 连续查询 查询限制 表转化为流 前言🚩 传统的数据库SQL和实时SQL处理的差别还是很大的,这里简单列出一些区别: 尽管存在这些差异,但使用关系查询和SQL处理流并…...

ArcGIS Pro用户界面

目录 1 功能区 1.1 快速访问工具栏 1.2 自定义快速访问工具栏 1.3 自定义功能区选项 1.3.1 添加组和命令 1.3.2 添加新选项卡 2 视图 3 用户界面排列 ​编辑 4 窗格 4.1 内容窗格 4.2 目录窗格 4.3 目录视图(类似ArcCatalog) 4.4 浏览对话框…...

HDCTF 2023 Pwn WriteUp

Index 前言Pwnner分析EXP: KEEP_ON分析EXP: Minions分析EXP: 后记: 前言 本人是菜狗,比赛的时候只做出来1题,2题有思路但是不会,还是太菜了。 栈迁移还是不会,但又都是栈迁移的题,真头大。得找时间好好学学…...

告别C盘爆满!手把手教你将VS2010旗舰版安装到其他盘(附完整配置流程)

告别C盘爆满!手把手教你将VS2010旗舰版安装到其他盘(附完整配置流程) 对于开发者而言,Visual Studio 2010(VS2010)作为经典的开发环境,至今仍被许多项目所依赖。然而,随着系统盘空间…...

408 每日一题 Day 2:二叉树的重构与遍历

一、题目描述 已知一棵二叉树的前序遍历序列为 ABDECFG,中序遍历序列为 DBEAFCG,则该二叉树的后序遍历序列是? A. DEBFGCAB. DEBFCGAC. DEBFGACD. DEBFAGC 二、考点分析项目内容核心知识点二叉树的遍历、根据遍历序列重构二叉树难度⭐⭐⭐408…...

UE5 Nanite配置指南:开启D3D12与SM6渲染管线

1. 这个提示不是报错,而是UE5在“敲你门”问你准备好了吗?刚打开UE5项目,编辑器右上角突然弹出一个黄色感叹号提示:“Nanite requires project settings to be configured for SM6 and D3D12”——很多新手第一反应是慌&#xff1…...

蒙古语AI语音落地难?ElevenLabs最新v3.2模型支持率提升至98.7%,但90%开发者忽略这5个编码陷阱

更多请点击: https://intelliparadigm.com 第一章:蒙古语AI语音落地的现实困境与技术拐点 蒙古语作为中国少数民族语言中使用人口较多、语法高度黏着、音系复杂的阿尔泰语系代表,其AI语音技术长期受限于低资源特性——标准语音数据集不足50小…...

利用python计算

#题1:11/21/31/4...1/100sum1 0for i in range(1, 101):sum1 1 / iprint("题1结果:", sum1)# 题2:计算1 - 1/2 1/3 - 1/4 ... 1/nn 100 sum2 0for i in range(1, n1):# 奇数项加,偶数项减if i % 2 1:sum2 1 / ielse:sum2…...

fastapi · FastAPI framework, high performance, easy to learn, fast to code, ready for production

fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 本文整理自 GitHub,经重新整理编辑。 FastAPI framework, high performance, easy to learn, fast to code, ready for production Documentation: https://fas…...

claudecode用户如何通过taotoken解决封号与token不足的痛点

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 claudecode用户如何通过taotoken解决封号与token不足的痛点 1. 场景与核心挑战 对于深度使用 Claude Code 编程助手的开发者而言&…...

告别繁琐操作:用VSCode插件‘Open in Browser’和‘CSS Peek’打造流畅的实时预览调试工作流

极速开发实战:VSCode插件组合拳实现HTML/CSS无缝调试 每次修改完CSS样式都要手动切换到浏览器刷新页面?在庞大的代码库中寻找某个CSS定义像大海捞针?这些问题困扰着无数前端开发者。今天我们将解锁VSCode中两个看似简单却威力巨大的插件——O…...

鸿蒙 PC 跨设备拖拽:实现原理 + 实战代码

网罗开发(小红书、快手、视频号同名)大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方…...

工控机厂家怎么选?20年从业者告诉你这5个关键点

在工业自动化领域,工控机的选择直接关系到生产线的稳定运行。作为一名在工业电脑行业摸爬滚打20年的从业者,我见过太多企业因为选错厂家而付出惨痛代价——设备频繁故障、售后推诿扯皮、项目延期损失百万。今天,我就从专业角度告诉你&#xf…...