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

news/2025/1/11 21:20:25 标签: 软件架构知识

进程状态转换的说明

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


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.niftyadmin.cn/n/5820202.html

相关文章

Vue2与Vue3在项目开发中的选择:深入探讨

文章目录 前言一、Vue2的优势与挑战二、Vue3的进步与特性三、如何做出选择&#xff1f;结语 前言 Vue.js 是一个用于构建用户界面的渐进式JavaScript框架。Vue2和Vue3是其两个主要版本&#xff0c;它们各自拥有一系列特点和优势。随着Vue3的发布&#xff0c;开发者们面临着在新…

基于Ubuntu2404脚本搭建openstackC版-ovn网络驱动

openstack-C 配置基础环境iaas-install-mysql.shiaas-install-keystone.shiaas-install-glance.shiaas-install-placement.shiaas-install-nova-controller.shiaas-install-neutron-controller.shiaas-install-horizon.shiaas-install-nova-compute.shiaas-install-neutron-com…

汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图)

汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图) 前面的两篇博文简述了AutoSAR CP分层架构的概念&#xff0c;下面我们来具体到每一层的具体内容进行讲解&#xff0c;每一层的每一个功能块力求用一个总览图&#xff0c;外加一个例子的图给大家进…

免费下载 | 2024安全有效性验证能力白皮书

《2024安全有效性验证能力白皮书》是一份由北京知其安科技有限公司与北京数字世界咨询有限公司联合撰写的报告&#xff0c;旨在探讨和阐述安全有效性验证&#xff08;Cybersecurity Validation&#xff0c;CV&#xff09;的概念、市场现状、关键成功因素、与传统安全评估的差异…

《网络安全里的Linux基础:构建安全网络的关键基石》

linux openssl openssl passwd -1 123 openssl是一个开源的加密工具包&#xff0c;提供了各种加密、解密、签名、验证等功能。 password表示这个命令用于处理密码相关的操作。 -1参数指定使用MD5加密算法对密码“123”进行加密处理。MD5是一种常用的哈希算法&#xff0c;它…

音视频入门基础:MPEG2-PS专题(7)——通过FFprobe显示PS流每个packet的信息

音视频入门基础&#xff1a;MPEG2-PS专题系列文章&#xff1a; 音视频入门基础&#xff1a;MPEG2-PS专题&#xff08;1&#xff09;——MPEG2-PS官方文档下载 音视频入门基础&#xff1a;MPEG2-PS专题&#xff08;2&#xff09;——使用FFmpeg命令生成ps文件 音视频入门基础…

大模型WebUI:Gradio全解11——Chatbots:融合大模型的多模态聊天机器人(2)

大模型WebUI&#xff1a;Gradio全解11——Chatbots&#xff1a;融合大模型的聊天机器人&#xff08;2&#xff09; 前言本篇摘要11. Chatbot&#xff1a;融合大模型的多模态聊天机器人11.2 使用流行的LLM库和API11.2.1 Llama Index11.2.2 LangChain11.2.3 OpenAI1. 基本用法2. …

语音实战(一)中文语音识别

一、下载文件 from datasets import load_datasetname mozilla-foundation/common_voice_16_0 load_dataset(name, zh-CN, splittrain).save_to_disk(dataset/ name) from transformers import Wav2Vec2BertForCTCname lansinuote/Chinese_Speech_to_Text_CTC Wav2Vec2BertF…