【系统架构设计师】操作系统 - 进程管理 ① ( 进程概念 | 进程组成 | 进程 与 程序 | 进程 与 线程 | 线程 可共享的资源 - ☆考点 )

文章目录

一、进程管理


1、进程概念

进程概念 : 进程(Process)是 操作系统 中 程序 的 执行实例 , 是 资源 分配、调度 的 基本单位 ;

当一个 程序 被执行时 , 操作系统会为其创建一个 进程 , 并为其 分配所需的 资源 , 如 : CPU、内存、I/O设备等 ;

2、进程组成

进程组成 :

  • 程序块 : 程序可执行代码 ;
  • 进程控制块 : PCB , Process Control Block , 进程存在的标志 ;
    • 进程ID ( PID ) , 又称为 进程标识符
    • 进程状态
    • 程序计数器 ( PC ) , 程序执行位置信息
    • CPU 寄存器
    • 进程优先级
    • 队列指针 : 用于链接同一状态的进程 ;
    • 现场保护区 :
    • 资源信息(如打开的文件、使用的内存等)
  • 数据块 : 进程运行所需的数据资源 ;
    • 数据段(data segment):已初始化的全局变量和静态变量 ;
    • (Heap):动态分配的内存区域 ;
    • (Stack):用于存储函数调用信息、本地变量等 ;

3、进程 与 程序

进程 与 程序 :

  • 程序是 静态 的 , 存储在磁盘上 , 是一组指令和数据的集合 ;
  • 进程是 动态 的 , 是 " 程序 " 执行后在内存中的实例 , 并且拥有独立的资源 ;
  • 一个程序 可以启动 多个进程 , 如 : 同时打开多个浏览器窗口 , 每个窗口就是一个独立的进程 ;
对比项 进程(Process) 程序(Program)
定义 进程是程序的执行实例 ,是动态的 程序是静态的指令和数据集合
存储方式 进程存储在内存中,包含代码、数据、栈、堆等 程序通常存储在磁盘或其他存储设备上
运行状态 进程可以创建、运行、挂起、终止,有生命周期 程序本身是静态文件,不能直接运行
是否独立 进程是独立的,拥有自己的资源(如内存、文件等) 程序只是可执行文件,不能独立运行
多实例 一个程序可以有多个进程实例同时运行 程序本身只有一个副本
关系 进程是程序执行的实例 程序是进程运行的基础

4、进程 与 线程

进程 与 线程 :

  • 对应关系 : 线程 可以理解为 进程 的 子单位 , 一个程序 可以启动 多个进程 , 一个进程 可以启动 多个线程 ;
  • 调度主体 : 进程 是 资源分配、调度 的基本单位 ( 资源包括 CPU ) , 线程 只是 CPU 调度 的基本单位 ;
  • 资源共享 : 进程可以独立拥有资源 , 线程只能共享进程的资源 ;
    • 线程 只有自己的 CPU 调度相关资源 , 如 : PC 程序计数器 , 寄存器 , 栈 等 ;
    • 线程 执行所需的 内存地址空间、代码、数据、文件 都要共享进程的资源 ;
  • 主体通信 : 进程间 通信 ( IPC ) 比较复杂,线程间通信 ( 共享内存 ) 比较简单 ;
对比项 进程(Process) 线程(Thread)
定义 进程是程序的执行实例 ,是资源分配的基本单位 线程是进程中的执行流 ,是CPU 调度的基本单位
资源独立性 进程拥有独立的资源(如内存、文件、I/O 设备) 线程共享进程的资源(如内存、文件)
通信方式 进程间通信(IPC)需要特殊机制(如管道、共享内存、消息队列) 线程间通信无需额外机制,共享全局变量即可
调度开销 进程切换开销较大(需要保存和恢复资源) 线程切换开销较小(只需保存少量寄存器信息)
运行关系 进程可以包含多个线程,但至少有一个主线程 线程属于某个进程,不能独立存在
崩溃影响 进程崩溃不会影响其他进程,除非有父子进程关系 线程崩溃可能导致整个进程崩溃
应用场景 适用于独立运行的应用(如浏览器、数据库) 适用于需要并行执行的任务(如多线程下载、并行计算)

二、线程 可共享的资源 - ☆考点


进程 是 资源分配、调度 的基本单位 ( 资源包括 CPU ) , 线程 只是 CPU 调度 的基本单位 ;

线程 除了 CPU 调度相关资源 可以 独立拥有 之外 , 其它资源都需要 与其它线程共享 ;

线程不可共享资源 : CPU 调度相关资源 不可共享 , 也就是 线程独立拥有的资源 :

  • 程序计数器 PC
  • 寄存器
  • 栈 ( 栈指针 )

线程可共享资源 : 与 CPU 调度无关的资源 需要与其它线程共享 , 这些 资源的拥有者是 进程 ;

  • 内存地址空间
  • 代码
  • 数据
  • 文件等资源
相关推荐
远方的人家19 小时前
【软考系统架构设计师】信息安全技术基础知识点
系统架构·软考·信息安全技术
远方的人家20 小时前
【软考系统架构设计师】系统配置与性能评价知识点
系统架构·软考
软考诸葛老师21 小时前
软考高级系统架构设计师-第12章 系统质量属性与架构评估
架构·系统架构·软考高级·系统架构设计师·软考诸葛老师
脑子慢且灵21 小时前
计算机操作系统——存储器管理
linux·服务器·windows·操作系统·存储器·存储器多级结构
易保山1 天前
MIT6.S081 - Lab7 Locks(锁优化 | 并发安全)
linux·操作系统·c
软考诸葛老师1 天前
软考高级系统架构设计师-第11章 系统架构设计
系统架构·软考高级·系统架构设计师·软考诸葛老师
肥仔哥哥19302 天前
架构生命周期(高软57)
架构·软考·高软笔记
塞尔维亚大汉2 天前
【鸿蒙南向开发】标准系统方案之瑞芯微RK3566移植案例(下)
操作系统·嵌入式·harmonyos
知识浅谈2 天前
【Windows】如何在任意文件夹中右键打开cmd终端
操作系统
罗念笙2 天前
操作系统中的进程有哪几种状态?
操作系统