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

文章目录

一、进程管理


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 调度无关的资源 需要与其它线程共享 , 这些 资源的拥有者是 进程 ;

  • 内存地址空间
  • 代码
  • 数据
  • 文件等资源
相关推荐
塞尔维亚大汉16 小时前
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【中断及异常处理】
操作系统·harmonyos
塞尔维亚大汉1 天前
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)
操作系统·harmonyos
塞尔维亚大汉2 天前
OpenHarmony(鸿蒙南向开发)——轻量系统内核(LiteOS-M)【Shell】
操作系统·harmonyos
MuYe2 天前
Android Hook - dl_iterate_phdr()增强
android·操作系统
it技术分享just_free3 天前
软考教材重点内容 信息安全工程师 第15章 网络安全主动防御技术与应用
运维·web安全·网络安全·信息安全·系统安全·软考
塞尔维亚大汉3 天前
OpenHarmony(鸿蒙南向开发)——轻量系统内核(LiteOS-M)【异常调测】
操作系统·harmonyos
塞尔维亚大汉3 天前
OpenHarmony(鸿蒙南向开发)——轻量系统内核(LiteOS-M)【内存调测】
操作系统·harmonyos
charlie1145141913 天前
我的年度写作计划
网络·c++·算法·操作系统·嵌入式·计算机架构·博客开发计划
Once_day3 天前
Linux之kernel(1)系统基础理论(1)
linux·操作系统·kernel