软件架构考试基础知识 002:进程的状态与其切换
进程状态转换的说明
在操作系统中,进程的状态表示其当前的执行情况和资源占用情况。进程状态的转换反映了操作系统如何管理和调度进程。以下是进程状态转换的说明:
1. 三态模型(Three-state Model)
三态模型是最基础的进程状态模型,它将进程的状态分为以下三种:
- 运行态(Running)
- 就绪态(Ready)
- 阻塞态(Blocked)
状态转换图
+-------+ +-------+ +-------+| | | | | || Ready |<-------->|Running|<-------->|Blocked|| | | | | |+-------+ +-------+ +-------+
状态说明
-
运行态(Running)
- 进程正在CPU上执行,占用CPU资源。
- 只有当前进程才会处于运行态,其他进程要么等待CPU,要么等待某些外部事件。
-
就绪态(Ready)
- 进程已经准备好执行,等待CPU分配资源。
- 就绪态的进程被放入一个就绪队列中,等待调度器将其调度到CPU上运行。
-
阻塞态(Blocked)
- 进程由于等待某些外部事件(如I/O操作完成、信号量等)而暂停执行。
- 一旦外部事件满足,进程会从阻塞态转换到就绪态。
状态转换
- 就绪态 → 运行态:进程被调度器选择并分配CPU资源。
- 运行态 → 就绪态:当前运行进程的时间片用完,或更高优先级的进程进入就绪态。
- 运行态 → 阻塞态:进程需要等待外部事件(如I/O操作)。
- 阻塞态 → 就绪态:外部事件完成,阻塞状态的进程可以再次进入就绪态。
2. 五态模型(Five-state Model)
五态模型是三态模型的扩展,增加了两个新状态,分别是新建态(New)和终止态(Terminated)。五态模型更详细地描述了进程的生命周期。
状态转换图
+-------+ +-------+ +-------+ +-------+ +-------+| | | | | | | | | || New |--------->| Ready |<-------->|Running|<-------->|Blocked|<-------->|Terminat|| | | | | | | | | |+-------+ +-------+ +-------+ +-------+ +-------+
状态说明
-
新建态(New)
- 进程刚刚被创建,尚未被操作系统调度。
- 操作系统会为进程分配资源(如内存)并将其加入就绪队列。
-
就绪态(Ready)
- 同三态模型中的就绪态。
-
运行态(Running)
- 同三态模型中的运行态。
-
阻塞态(Blocked)
- 同三态模型中的阻塞态。
-
终止态(Terminated)
- 进程完成执行或被操作系统终止。
- 操作系统会回收该进程的资源。
状态转换
- 新建态 → 就绪态:操作系统完成进程的初始化,将其加入就绪队列。
- 就绪态 → 运行态:进程被调度器选择并分配CPU资源。
- 运行态 → 就绪态:时间片用完或更高优先级进程抢占。
- 运行态 → 阻塞态:进程等待外部事件。
- 阻塞态 → 就绪态:外部事件完成,进程从阻塞态转换到就绪态。
- 运行态 → 终止态:进程完成执行或被操作系统终止。
- 阻塞态 → 终止态:进程在阻塞状态下被操作系统强制终止。
三态模型 vs 五态模型
模型 | 状态数量 | 特点 | 适用范围 |
---|---|---|---|
三态模型 | 3 | 简单,适合描述基本的进程调度 | 教学、基础操作系统设计 |
五态模型 | 5 | 详细,适合描述完整进程生命周期 | 现代操作系统、复杂调度场景 |
总结
- 三态模型是理解进程调度的基础模型,适合描述CPU调度和资源分配的简单场景。
- 五态模型是三态模型的扩展,增加了新建态和终止态,适合描述现代操作系统中进程的完整生命周期。
- 五态模型更符合现代操作系统的实际调度机制,尤其是在支持多任务、多用户和复杂调度算法的系统中。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
软件架构考试基础知识 002:进程的状态与其切换
进程状态转换的说明 在操作系统中,进程的状态表示其当前的执行情况和资源占用情况。进程状态的转换反映了操作系统如何管理和调度进程。以下是进程状态转换的说明: 1. 三态模型(Three-state Model) 三态模型是最基础的进程状态模…...
![](https://i-blog.csdnimg.cn/direct/a10c2659ef41463189c6e8ca634f7304.png)
新车月交付突破2万辆!小鹏汽车“激活”智驾之困待解
首次突破月交付2万辆规模的小鹏汽车,稳吗? 本周,高工智能汽车研究院发布的最新监测数据显示,2024年11月,小鹏汽车在国内市场(不含出口)交付量(上险口径,下同)…...
![](https://i-blog.csdnimg.cn/direct/921913888d8246f9a20008f872443b63.png#pic_center)
VideoPlayer插件的功能和用法
文章目录 1. 概念介绍2. 使用方法2.1 实现步骤2.2 具体细节3. 示例代码4. 内容总结我们在上一章回中介绍了"如何获取文件类型"相关的内容,本章回中将介绍如何播放视频.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 播放视频是我们常用的功能,不过Flutter官方…...
![](https://www.ngui.cc/images/no-images.jpg)
.NET体系架构
引言 .NET是由微软开发的一个广泛应用的开发平台,旨在帮助开发者构建各种类型的应用程序,包括桌面应用、Web应用、移动应用和云服务。最初,.NET平台的构建主要集中在Windows环境上,但随着.NET Core和随后.NET 5及以上版本的推出&…...
![](https://www.ngui.cc/images/no-images.jpg)
QT中引入OpenCV库总结(qmake方式和cmake方式)
文章目录 前言opencv环境配置一、opencv库获取的两种方式二、qmake和cmake配置2.1、 qmake2.2、cmake2.2.1、引入opencv示例 三、qt与opencv对应关系四、问题 前言 我的软件环境,写在前面 Windows10QT5.12.12VS2017OpenCV4.5.4 opencv环境配置 一、opencv库获取…...
![](https://www.ngui.cc/images/no-images.jpg)
matlab系列专栏-快捷键速查手册
目录 1在命令窗口(Command Window)中 2. 在编辑器(Editor)(m文件)中 1在命令窗口(Command Window)中 1)【↑、↓】——切换到之前、之后运行过的命令,可以重复按多次来达到想要的命令。 2)【Tab】——自动补全。在Command窗口,…...
![](https://www.ngui.cc/images/no-images.jpg)
对于 NestJS + TypeORM 查询构造器分页功能的简单二次封装
NestJS 作为 Node.js 领域备受欢迎的框架,其与 TypeORM 的结合为开发者提供了强大的 ORM 能力,简化了数据库操作。然而,在处理分页查询时,直接在每个服务方法中重复编写分页逻辑既不高效也容易出错。为此,我们可以通过…...
![](https://www.ngui.cc/images/no-images.jpg)
Kafka消息队列出现消息堆积如何解决
Kafka消息队列出现消息堆积,通常是由于消息生产速度远大于消费速度,可能由消费者处理能力不足、网络问题、Kafka配置不合理等原因导致。以下从多个方面介绍应对消息堆积的方法: 消费者端优化 提升消费并行度 增加消费者实例数量:…...
![](https://www.ngui.cc/images/no-images.jpg)
LeetCode hot100-100
287. 寻找重复数 给定一个包含 n 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。你设计的解决方案必须 不修改 数组…...
![](https://i-blog.csdnimg.cn/direct/22a4d5d9b9ee47f8a18083bbb95d1679.png#pic_center)
Vue.js:现代前端开发的灵活框架
大家好!我是 [数擎 AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:前端开发 | A…...
![](https://i-blog.csdnimg.cn/direct/020c3c9f78a3496980687046302b7f80.png)
CUDNN详解
文章目录 CUDNN详解一、引言二、cuDNN的基本使用1、初始化cuDNN句柄2、创建和设置描述符 三、执行卷积操作1、设置卷积参数2、选择卷积算法3、执行卷积 四、使用示例五、总结 CUDNN详解 一、引言 cuDNN(CUDA Deep Neural Network library)是NVIDIA为深度…...
![](https://www.ngui.cc/images/no-images.jpg)
下载并安装MySQL
在Linux系统上下载并安装数据库(以MySQL为例)的步骤如下: 一、下载MySQL 访问MySQL官网 打开浏览器,访问MySQL的官方网站:https://www.mysql.com/。 进入下载页面 在MySQL官网首页,找到并点击“Downloads…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux ffmpeg 基础用法
简介 FFmpeg 是一个强大的开源多媒体框架,用于处理视频、音频和其他多媒体文件和流。它允许转换、录制、编辑、流媒体等等。 安装 Debian/Ubuntu sudo apt update sudo apt install ffmpegRed Hat/CentOS sudo dnf install ffmpegmacOS (via Homebrew) brew i…...
![](https://i-blog.csdnimg.cn/direct/5cbe13136c2b4135a9f151baa91fa5ef.png)
【C++入门】详解(中)
目录 💕1.函数的重载 💕2.引用的定义 💕3.引用的一些常见问题 💕4.引用——权限的放大/缩小/平移 💕5. 不存在的空引用 💕6.引用作为函数参数的速度之快(代码体现) Ǵ…...
![](https://www.ngui.cc/images/no-images.jpg)
深度学习的加速器:Horovod,让分布式训练更简单高效!
什么是 Horovod? Horovod 是 Uber 开发的一个专注于深度学习分布式训练的开源框架,旨在简化和加速多 GPU、多节点环境下的训练过程。它以轻量级、易用、高性能著称,特别适合需要快速部署分布式训练的场景。Horovod 的名字来源于俄罗斯传统舞…...
计算机的错误计算(二百零八)
摘要 用两个大模型计算 arccot(0.9911588354432518e10) . 保留16位有效数字。两个的输出均是错误的。代码的输出格式亦均出错。 本节题目为一读者来信提议(不知该题目有何玄机?)。 例1. 计算 arccot(0.9911588354432518e10) . 保留16位有…...
![](https://i-blog.csdnimg.cn/img_convert/ad8c23697157803df8ec6174d500489a.png)
海康机器人IPO,又近了一步
导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。欢迎大家到本文底部评论区留言。 海康机器人的IPO之路,一路跌宕起伏,让无数投资者和业内人士关注。这不仅仅是一家企业的上市之旅,更是中国智能制造…...
![](https://i-blog.csdnimg.cn/direct/fe2d27d92fcd43b3aa353c4db9379e58.png)
【环境搭建】Metersphere v2.x 容器部署教程踩坑总结
前言 Metersphere部署过程中遇到的问题有点多,原因是其容器的架构蛮复杂的,比较容易踩坑,所以记录一下。 介绍 MeterSphere 是开源持续测试平台,遵循 GPL v3 开源许可协议,涵盖测试管理、接口测试、UI 测试和性能测…...
![](https://i-blog.csdnimg.cn/direct/31e0dd13c136467293de362d5e2fa017.png)
系统看门狗配置--以ubuntu为例
linux系统配置看门狗 以 ubuntu 系统配置看门狗为例 配置看门狗使用的脚本文件,需要使用管理员权限来执行: 配置是:系统每 30S 喂一次狗,超过 60S 不进行投喂,就会自动重启。 1. 系统脚本内容: #!/bin/b…...
![](https://i-blog.csdnimg.cn/direct/810e3489f4bb4699a9af4c58727d442a.png)
阅读笔记——《A survey of protocol fuzzing》
【参考文献】Zhang X, Zhang C, Li X, et al. A survey of protocol fuzzing[J]. ACM Computing Surveys, 2024, 57(2): 1-36.【注】本文仅为作者个人学习笔记,如有冒犯,请联系作者删除。 目录 1、Introduction 2、Background 2.1、Communication Pro…...
![](https://www.ngui.cc/images/no-images.jpg)
C# 语法中级
总目录 C# 语法总目录 C# 语法中级 lambda 表达式1. 捕获外部变量2. 捕获迭代变量 匿名类型匿名方法异常相关1. 枚举器2. 可枚举对象3. 迭代器3. 迭代器语义4. yield break 语句5. 组合序列 可空类型1. Nullable< T > 结构体 lambda 表达式 编译器在内部将lambda表达式编…...
![](https://i-blog.csdnimg.cn/direct/393fa98f7dee4556a9375ab35ad73aa7.png)
STORM:从多时间点2D图像中快速重建动态3D场景的技术突破
随着计算机视觉和机器学习技术的迅猛发展,我们已经能够利用AI来解决许多复杂的问题。然而,在处理大规模室外动态3D场景重建时,现有的方法往往面临着诸多挑战,如需要大量人工标注数据、处理速度慢以及难以准确捕捉移动物体等。为了解决这些问题,研究者们开发了STORM(Spati…...
![](https://www.ngui.cc/images/no-images.jpg)
excel前缀和(递增求和)
方法一:https://www.zhihu.com/zvideo/1382164996659515392?utm_id0 假设输入数据在B2:B10,选中单元格C2,输入SUM(B2:B2,然后选中其中的B2,按F4(或者直接输入SUM(B$2:B2),回车确认&…...
![](https://i-blog.csdnimg.cn/direct/14a48dff36144c48b077e0ab92c08c98.png)
【AI日记】25.01.11 Weights Biases | AI 笔记 notion
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI kaggle 比赛:Forecasting Sticker Sales笔记:我的 AI 笔记主要记在两个地方 有道云笔记:数学公式和符号比较多的笔记notion:没什么数学公式的…...
![](https://www.ngui.cc/images/no-images.jpg)
P8772 [蓝桥杯 2022 省 A] 求和
题目描述 给定 𝑛 个整数 𝑎1,𝑎2,⋯ ,𝑎𝑛 求它们两两相乘再相加的和,即 𝑆𝑎1⋅𝑎2𝑎1⋅𝑎3⋯𝑎1⋅𝑎𝑛&…...
![](https://i-blog.csdnimg.cn/direct/22ea8b96ca3a4a9780deb3bbdd289663.png)
【Oracle篇】深入了解执行计划中的访问路径(含表级别、B树索引、位图索引、簇表四大类访问路径)
💫《博主介绍》:✨又是一天没白过,我是奈斯,从事IT领域✨ 💫《擅长领域》:✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(…...
![](https://www.ngui.cc/images/no-images.jpg)
WSDL的基本概念
《WSDL 语法》这篇文章将详细介绍WSDL(Web Services Description Language)的语法。WSDL是一种基于XML的语言,用于描述Web服务及其访问方式。它允许开发者将Web服务定义为服务访问点或端口的集合,这些服务访问点可以通过特定的协议…...
![](https://www.ngui.cc/images/no-images.jpg)
RabbitMQ解决消息积压的方法
目录 减少发送mq的消息体内容 增加消费者数量 批量消费消息 临时队列转移 监控和预警机制 分阶段实施 最后还有一个方法就是开启队列的懒加载 这篇文章总结一下自己知道的解决消息积压得方法。 减少发送mq的消息体内容 像我们没有必要知道一个的中间状态,只需…...
![](https://www.ngui.cc/images/no-images.jpg)
Android 网络层相关介绍
关注 Android 默认支持的网络管理行为,默认支持的网络服务功能。 功能术语 术语缩写全称释义DHCPv6Dynamic Host Configuration Protocol for IPv6动态主机配置协议的第六版,用于在IPv6网络中动态分配IP地址和其他网络配置参数。DNS Domain Name System域名系统。LLALink-Loc…...
![](https://www.ngui.cc/images/no-images.jpg)
2025年第三届“华数杯”国际赛B题解题思路与代码(Matlab版)
问题1:产业关联性分析 在 question1.m 文件中,我们分析了中国主要产业之间的相互关系。以下是代码的详细解读: % 问题1:分析中国主要产业之间的相互关系function question1()% 清空工作区和命令窗口clear;clc;% 设置中文显示set…...
做电商网站用什么软件/引擎优化seo
一、Hibernate持久化对象三种状态 在Hibernate中持久化类的对象可以划分为三种状态,分别是瞬态,持久态,脱管态。 1. 瞬态(Transient),也叫临时态。处于这种状态的对象具备的特征如下: a) 不在Session的缓存中ÿ…...
![](https://img-blog.csdnimg.cn/img_convert/302bad67f9dda864b7616bad5169f95e.gif)
网站建设新闻/开发网站的流程
转自:http://xjsunjie.blog.iyunv.com/999372/684447在SUSE Linux下部署应用的时候,有时会遇到“Socket/File: Can’t open so many files”的问题,这其实是因为SUSE Linux系统的文件句柄限制造成的,一般系统默认都是允许打开1024…...
![](/images/no-images.jpg)
小说网站seo排名怎么做/篮网目前排名
打开这两个地址,就能看到最新的安装包了。。。。 http://www.jianshu.com/p/c67c14b3110c https://static.xamarin.com/installer_assets/v3/Mac/Universal/InstallationManifest.xml...
![](/images/no-images.jpg)
dw使用模板做网站教程/百度推广手机版
JUC高并发编程 六、多线程锁 6.2)公平锁和非公平锁 6.2.1)代码示例 6.2.1.1)公平锁 以卖票为例进行举例,代码如下: //第一步 创建资源类,定义属性和和操作方法 class LTicket {//票数量private int …...
![](/images/no-images.jpg)
宽城区网站建设/免费seo营销软件
近日使用VMware fushion 8 centos 7.0时,无法使用共享功能,所以必须安装vmtools。但是安装过程中有2个错误需要解决。 1、gcc错误 Searching for GCC... The path "" is not valid path to the gcc binary. 2、内核头文件问题 Searching for …...
![](https://www.oschina.net/img/hot3.png)
廊坊网络推广建站/google官方版下载
2019独角兽企业重金招聘Python工程师标准>>> 列表:非常的灵活,可以存储任意的数据类型,还支持append()方法,问题是浪费大量的空间 数组: 假设你知道 array 中所有的数据类型都是一样…...