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

进程于线程 -1

进程概念和基本特征

1. 进程的概念

核心定义:进程是 “进程实体的运行过程”,是OS进行 资源分配和调度的独立单位(分配CPU时间片、内存等资源)。

  • 进程实体(进程映像) = 程序段(可执行代码) + 数据段(原始数据/运行结果) + PCB(进程控制块,核心)。
  • PCB的重要性
    ✅ 进程存在的 唯一标志(创建进程=创建PCB,撤销进程=删除PCB)。
    ✅ 记录进程状态(就绪/运行/阻塞)、CPU现场(寄存器值)、优先级等关键信息,供OS调度和管理。

2. 进程的四大特征

特征

含义

关键点

动态性 🚀

进程是程序的一次执行过程,有创建、运行、暂停、终止的生命周期。

最基本特征,区别于静态的“程序”。

并发性 🔄

多个进程同存于内存,在一段时间内同时运行(宏观并行,微观交替)。

引入进程的核心目的(OS最基本特性)。

独立性 🛡️

进程是独立运行、获取资源、接受调度的基本单位(依赖PCB实现)。

无PCB的程序无法独立参与运行。

异步性

进程按不可预知的速度推进(因资源竞争),可能导致结果不可再现。

需同步机制(如信号量)保证正确性。


3. 进程的组成(三部分)

1. 进程控制块(PCB) 📋(核心)

  • 作用:OS通过PCB感知进程存在,管理进程状态、资源和调度。
  • 常驻内存,包含信息:进程ID、状态(就绪/阻塞/运行)、CPU寄存器值(现场保护)、优先级、内存地址、打开文件列表等。
  • 组织方式
    • 链接方式:同状态PCB组成队列(如就绪队列、阻塞队列)。
    • 索引方式:同状态PCB通过索引表访问(如就绪索引表、阻塞索引表)。

2. 程序段 💻

        可执行代码段,能被CPU调度执行。支持多进程共享(如多个用户同时运行浏览器程序)。

3. 数据段 📊

        程序加工的原始数据或运行中产生的中间结果(如变量、数组)。


4. 进程 vs 程序(核心区别)

对比项

进程

程序

本质

动态执行过程(有生命周期)

静态指令集合(无执行含义)

资源

占用资源(CPU、内存、PCB)

不占用资源(存储在磁盘)

独立性

独立运行单位(有PCB)

不能独立运行(需绑定进程)

并发性

支持并发执行

不可并发(单道程序顺序执行)


考试重点
  1. 进程定义:动态执行过程,资源分配和调度的独立单位(核心是“动态性”和“独立性”)。
  2. PCB的作用:进程存在的唯一标志,记录进程状态和控制信息。
  3. 进程特征:动态性(最基本)、并发性(核心目的)、独立性(依赖PCB)、异步性(需同步机制)。
  4. 进程实体组成:PCB(核心)+ 程序段 + 数据段。

一句话总结:进程是动态执行的程序及其资源的集合,通过PCB实现独立调度与并发运行,是OS管理并发的基本单位! ✨


进程的状态与转换

1. 进程的5种状态

        进程在生命周期中会因资源竞争和事件触发而切换状态,核心分为 3种基本状态2种过渡状态

状态名称

含义

关键点

运行态(Running) 🚀

进程 正在CPU上执行

单CPU系统同一时刻仅1个进程处于此状态。

就绪态(Ready) ⏸️

进程 已获得除CPU外的所有资源,等待CPU调度。

就绪队列中多个进程排队,一旦获得CPU立即运行。

阻塞态(Blocked) 🚫

进程 等待某事件(如I/O完成、资源释放),即使CPU空闲也无法运行。

可按阻塞原因分多个队列(如I/O阻塞队列、信号量阻塞队列)。

创建态(New) 🐣

进程 正在被创建(申请PCB、分配资源),尚未就绪。

若资源不足(如内存不够),则停留在创建态。

终止态(Terminated) 💀

进程运行结束或异常终止,正在释放资源并被系统回收。

终止后PCB被删除,进程彻底消亡。


2. 3种基本状态的转换(核心!)

(1)就绪态 → 运行态

  • 触发条件:进程被调度程序选中,获得CPU时间片。
  • :就绪队列中优先级最高的进程被调度执行。

(2)运行态 → 就绪态

  • 触发条件
    • 时间片用完(分时系统)。
    • 更高优先级进程就绪(可剥夺调度)。
  • :进程A时间片结束,CPU切换到进程B,A进入就绪队列。

(3)运行态 → 阻塞态 🚧

  • 触发条件:进程主动请求资源(如I/O)或等待事件(如信号量)。
  • 本质:通过 系统调用 放弃CPU(主动行为)。
  • :进程执行read()系统调用读取文件,进入I/O阻塞态。

(4)阻塞态 → 就绪态 🔄

  • 触发条件:等待的事件完成(如I/O结束、资源可用)。
  • 本质:由中断处理程序或其他进程唤醒(被动行为)。
  • :磁盘I/O完成,中断处理程序将进程从阻塞队列移至就绪队列。


3. 就绪态 vs 阻塞态(易混点)

对比项

就绪态

阻塞态

缺什么资源

仅缺少CPU

缺少CPU之外的资源(如I/O设备、信号量)

能否直接运行

能(获得CPU后立即执行)

不能(需等待事件触发后转为就绪态)

转换频率

高(时间片轮转,频繁切换)

低(I/O等事件耗时较长,切换较少)


考试重点
  1. 状态定义:区分就绪态(缺CPU)和阻塞态(缺其他资源),运行态的唯一性(单CPU)。
  2. 转换条件
    1. 就绪→运行:调度程序选中。
    2. 运行→阻塞:主动请求资源(系统调用)。
    3. 阻塞→就绪:事件完成(被动唤醒)。
  3. 主动/被动行为:运行→阻塞是主动(进程自身请求),阻塞→就绪是被动(依赖外部事件)。

一句话总结:进程状态核心是“就绪等CPU,阻塞等事件,运行占CPU”,通过调度和事件触发实现状态转换,是OS并发管理的基础! ✨

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

相关文章:

  • 小架构step系列08:logback.xml的配置
  • 数据提取之lxml模块与xpath工具
  • LLM探索的时代
  • 大学数字经济专业课程介绍
  • maven 发布到中央仓库之持续集成-03
  • 无缝矩阵支持音频分离带画面分割功能的全面解析
  • 【适合 Java 工程师的 AI 转型方向】
  • Shader面试题100道之(21-40)
  • 复杂任务攻坚:多模态大模型推理技术从 CoT 数据到 RL 优化的突破之路
  • 使用python的 FastApi框架开发图书管理系统-前后端分离项目分享
  • Linux操作系统:再谈虚拟地址空间
  • 【UE5】虚幻引擎的运行逻辑
  • 智能推荐社交分享小程序(websocket即时通讯、协同过滤算法、时间衰减因子模型、热度得分算法)
  • Tomcat与IIS:核心差异及接口调用实战解析
  • Spring中过滤器和拦截器的区别及具体实现
  • 26.安卓逆向2-frida hook技术-解密响应
  • LoRaWAN 有几种入网方式?
  • DMA技术与音频数据的存储和播放
  • LLM视觉领域存在模型视觉识别不准确、细粒度视觉任务能力不足等科学问题
  • (四)机器学习小白入门YOLOv :图片标注实操手册
  • C#中封装halcon函数的报错
  • 用基础模型构建应用(第七章)AI Engineering: Building Applications with Foundation Models学习笔记
  • Google AI 刚刚开源 MCP 数据库工具箱,让 AI 代理安全高效地查询数据库
  • 推荐系统中的相似度
  • JAVAEE 代理
  • 短视频电商APP源码开发技术栈解析:音视频、商品链路与互动设计
  • 怪物机制分析(有限状态机、编辑器可视化、巡逻机制)
  • DCL学习
  • SpringAI学习笔记-MCP客户端简单示例
  • C#Halcon从零开发_Day18_OCR识别