软件架构考试基础知识 002:进程的状态与其切换

进程状态转换的说明

在操作系统中,进程的状态表示其当前的执行情况和资源占用情况。进程状态的转换反映了操作系统如何管理和调度进程。以下是进程状态转换的说明:


1. 三态模型(Three-state Model)

三态模型是最基础的进程状态模型,它将进程的状态分为以下三种:

  1. 运行态(Running)
  2. 就绪态(Ready)
  3. 阻塞态(Blocked)
状态转换图
   +-------+          +-------+          +-------+|       |          |       |          |       || Ready |<-------->|Running|<-------->|Blocked||       |          |       |          |       |+-------+          +-------+          +-------+

状态说明
  1. 运行态(Running)

    • 进程正在CPU上执行,占用CPU资源。
    • 只有当前进程才会处于运行态,其他进程要么等待CPU,要么等待某些外部事件。
  2. 就绪态(Ready)

    • 进程已经准备好执行,等待CPU分配资源。
    • 就绪态的进程被放入一个就绪队列中,等待调度器将其调度到CPU上运行。
  3. 阻塞态(Blocked)

    • 进程由于等待某些外部事件(如I/O操作完成、信号量等)而暂停执行。
    • 一旦外部事件满足,进程会从阻塞态转换到就绪态。
状态转换
  • 就绪态 → 运行态:进程被调度器选择并分配CPU资源。
  • 运行态 → 就绪态:当前运行进程的时间片用完,或更高优先级的进程进入就绪态。
  • 运行态 → 阻塞态:进程需要等待外部事件(如I/O操作)。
  • 阻塞态 → 就绪态:外部事件完成,阻塞状态的进程可以再次进入就绪态。

2. 五态模型(Five-state Model)

五态模型是三态模型的扩展,增加了两个新状态,分别是新建态(New)终止态(Terminated)。五态模型更详细地描述了进程的生命周期。

状态转换图
   +-------+          +-------+          +-------+          +-------+          +-------+|       |          |       |          |       |          |       |          |       ||  New  |--------->| Ready |<-------->|Running|<-------->|Blocked|<-------->|Terminat||       |          |       |          |       |          |       |          |       |+-------+          +-------+          +-------+          +-------+          +-------+

状态说明
  1. 新建态(New)

    • 进程刚刚被创建,尚未被操作系统调度。
    • 操作系统会为进程分配资源(如内存)并将其加入就绪队列。
  2. 就绪态(Ready)

    • 同三态模型中的就绪态。
  3. 运行态(Running)

    • 同三态模型中的运行态。
  4. 阻塞态(Blocked)

    • 同三态模型中的阻塞态。
  5. 终止态(Terminated)

    • 进程完成执行或被操作系统终止。
    • 操作系统会回收该进程的资源。
状态转换
  • 新建态 → 就绪态:操作系统完成进程的初始化,将其加入就绪队列。
  • 就绪态 → 运行态:进程被调度器选择并分配CPU资源。
  • 运行态 → 就绪态:时间片用完或更高优先级进程抢占。
  • 运行态 → 阻塞态:进程等待外部事件。
  • 阻塞态 → 就绪态:外部事件完成,进程从阻塞态转换到就绪态。
  • 运行态 → 终止态:进程完成执行或被操作系统终止。
  • 阻塞态 → 终止态:进程在阻塞状态下被操作系统强制终止。

三态模型 vs 五态模型

模型状态数量特点适用范围
三态模型3简单,适合描述基本的进程调度教学、基础操作系统设计
五态模型5详细,适合描述完整进程生命周期现代操作系统、复杂调度场景

总结

  • 三态模型是理解进程调度的基础模型,适合描述CPU调度和资源分配的简单场景。
  • 五态模型是三态模型的扩展,增加了新建态和终止态,适合描述现代操作系统中进程的完整生命周期。
  • 五态模型更符合现代操作系统的实际调度机制,尤其是在支持多任务、多用户和复杂调度算法的系统中。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络之---MAC协议

MAC协议的作用 在数据链路层中&#xff0c;MAC&#xff08;媒介访问控制&#xff09;协议负责控制设备如何访问共享的通信介质&#xff08;如以太网、无线电波等&#xff09;&#xff0c;确保在多台设备共享同一传输媒介时能够有效地进行数据传输&#xff0c;避免冲突、控制流…

124.【C语言】数据结构之快速排序的小区间优化和非递归的解决方法

目录 1.小区间优化 测试代码 运行结果 2.非递归的解决方法(重要!) 递归产生的问题 一般来说,递归改非递归有两种方法 算法分析 递归产生的二叉树 栈的示意图 先写代码框架 再填写细节部分 1.小区间优化 回顾121.【C语言】数据结构之快速排序(未优化的Hoare排序存在…

如何学习Vue设计模式

如何学习Vue设计模式 Vue 设计模式是 Vue.js 框架中用于解决常见问题的可复用解决方案。这些模式帮助开发者更有效地组织和管理代码&#xff0c;提升代码的可维护性、可扩展性和可读性。以下是一些常见的 Vue 设计模式&#xff1a; 1. 数据存储模式 可组合函数&#xff1a;用…

汽车免拆诊断 | 2007款保时捷Carrera S车行驶中发动机冷却液温度报警灯异常点亮

故障现象 一辆2007款保时捷Carrera S车&#xff0c;搭载3.8 L自然吸气发动机&#xff0c;累计行驶里程约为7.8万km。车主反映&#xff0c;车辆行驶一段距离后&#xff0c;组合仪表上的发动机冷却液温度报警灯异常点亮。为此&#xff0c;在其他维修厂已更换过节温器、发动机冷却…

CES 2025|美格智能高算力AI模组助力“通天晓”人形机器人震撼发布

当地时间1月7日&#xff0c;2025年国际消费电子展&#xff08;CES 2025&#xff09;在美国拉斯维加斯正式开幕。美格智能合作伙伴阿加犀联合高通在展会上面向全球重磅发布人形机器人原型机——通天晓&#xff08;Ultra Magnus&#xff09;。该人形机器人内置美格智能基于高通QC…

WPF中组件之间传递参数的方法研究

在 WPF (Windows Presentation Foundation) 中&#xff0c;组件&#xff08;或称为控件&#xff09;之间传递参数的方法有很多种。不同的传递方式适用于不同的应用场景&#xff0c;具体选择取决于应用需求、性能、可维护性等因素。以下是几种常见的传递参数的方法&#xff0c;并…

【14】模型训练自制数据集前的一些数据处理操作

辅助工具 坏图像扫描与检查所有文件连续重命名排号划分数据集为训练集、测试集和验证集将标注的json文件转换成yolo格式文件&#xff0c;即txt文件将xml格式文件转换成yolo格式可读取的文件将gt后缀的图像数据文件进行解析统计yolo存储文件下各类标签下所对应标注目标的数量&am…

Taro+Vue实现图片裁剪组件

cropper-image-taro-vue3 组件库 介绍 cropper-image-taro-vue3 是一个基于 Vue 3 和 Taro 开发的裁剪工具组件&#xff0c;支持图片裁剪、裁剪框拖动、缩放和输出裁剪后的图片。该组件适用于 Vue 3 和 Taro 环境&#xff0c;可以在网页、小程序等平台中使用。 源码 https:…

Opencv查找、绘制轮廓、圆形矩形轮廓和近似轮廓

查找、绘制轮廓、圆形矩形轮廓和近似轮廓 目录 查找、绘制轮廓、圆形矩形轮廓和近似轮廓1 轮廓查找和绘制1.1 轮廓查找1.1.1 函数和参数1.1.2 返回值 1.2 轮廓绘制1.2.1 函数和参数 1.3 步骤1.4 实际测试绘制轮廓 2 绘制近似轮廓2.1 函数和参数2.2 查找特定轮廓2.3 近似轮廓测试…

HTTPS协议的基础与工作原理

什么是HTTPS&#xff1f; HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;是HTTP协议的安全版本&#xff0c;它通过SSL/TLS协议对通信数据进行加密&#xff0c;确保数据的安全传输。与HTTP相比&#xff0c;HTTPS能防止数据被窃取、篡改或伪造&#xff0c;广…

【Linux】模拟Shell命令行解释器

一、知识补充 1.1 snprintf snprintf() 是 C语言的一个标准库函数&#xff0c;定义在<stdio.h>头文件中。 snprintf() 函数的功能是格式化字符串&#xff0c;并将结果存储在指定的字符数组中。该函数的原型如下&#xff1a; int snprintf(char *str, size_t size, con…

云计算基础,虚拟化原理

文章目录 一、虚拟化1.1 什么是虚拟化1.2 虚拟化类型 二 、存储虚拟化2.1 存储指标2.2 存储类型2.3 存储协议2.4 RAID 三、内存 i/O虚拟化3.1 内存虚拟化基本概念地址空间转换原理内存共享与隔离原理 3.2 I/O 虚拟化基本概念模拟&#xff08;Emulation&#xff09;方式半虚拟化…

Vue3 + Vite + Electron + Ts 项目快速创建

一、创建 Vue 项目 1. 创建项目 pnpm create vite 2. 安装依赖 cd excel-electron pnpm install 3. 运行项目 pnpm dev 二、添加 Electron 1. 安装 electron pnpm add electron -D 2. 修改 package.json 添加入口 js 和执行命令。 {"main": "dist-ele…

pytest+allure 入门

使用allure如何生成自动化测试报​​​​​​告 &#xff1f;一文详解allure的使用 。_allure测试报告-CSDN博客 例子&#xff1a; import allure import pytest import osallure.epic("闹钟") allure.feature("闹钟增删") class TestSchedule():def setu…

新活动平台建设历程与架构演进

01 前言 历时近两年的重新设计和迭代重构&#xff0c;用户技术中心的新活动平台建设bilibili活动中台终于落地完成&#xff01;并迎来了里程碑时刻 —— 接过新老迭代的历史交接棒&#xff0c;从内到外、从开发到搭建实现全面升级&#xff0c;开启了活动生产工业化新时代&#…

文生图模型的技术原理、训练方案与微调方案

文生图模型的技术原理、训练方案与微调方案 引言 文生图(Text-to-Image)模型是一类能够根据文本描述生成对应图像的深度学习模型。近年来,随着生成对抗网络(GANs)和扩散模型(Diffusion Models)等技术的进步,文生图模型在图像生成领域取得了显著的进展。本文将详细介绍…

从CentOS到龙蜥:企业级Linux迁移实践记录(系统安装)

引言&#xff1a; 随着CentOS项目宣布停止维护CentOS 8并转向CentOS Stream&#xff0c;许多企业和组织面临着寻找可靠替代方案的挑战。在这个背景下&#xff0c;龙蜥操作系统&#xff08;OpenAnolis&#xff09;作为一个稳定、高性能且完全兼容的企业级Linux发行版&#xff0…

MR实战:IP地址去重

文章目录 1. 实战概述2. 提出任务2.1 原始问题2.2 简单化处理 3. 准备数据3.1 在云主机上创建文本文件3.2 上传文件到HDFS指定目录 4. 实现步骤4.1 创建Maven项目4.2 添加相关依赖4.3 创建日志属性文件4.4 创建网址去重映射器类4.5 创建网址去重归并器类4.6 创建网址去重驱动器…

STM32的存储结构

STM32F103 芯片是基于 ARM Cortex-M3 内核的微控制器&#xff0c;它集成了多种类型的存储器&#xff0c;每种存储器都有其特定的作用和存储对象。以下是关于 STM32F103 中 Flash、ROM 和 SRAM 的详细介绍&#xff1a; 1. Flash Memory (闪存) 作用&#xff1a;Flash 是非易失性…

AnaConda下载PyTorch慢的解决办法

使用Conda下载比较慢&#xff0c;改为pip下载 复制下载链接到迅雷下载 激活虚拟环境&#xff0c;安装whl&#xff0c;即可安装成功 pip install D:\openai.wiki\ChatGLM2-6B\torch-2.4.1cu121-cp38-cp38-win_amd64.whl