(九)进程
·
一、定义
- 进程 = 正在执行的程序。
- 程序是静态文件,存储在硬盘;进程是动态实体,运行于内存。
- 进程是操作系统资源分配、调度的基本单位。
二、引入进程的三大作用
- 并发:多个程序宏观同时运行,提升 CPU 利用率,避免 CPU 闲置。
- 资源管理:以进程为单位统一分配内存、I/O 外设等软硬件资源。
- 隔离与保护:各进程拥有独立内存地址空间,单一进程崩溃不会干扰其他进程。
三、进程组成(进程映像)
1. 四段内存区域
- 代码段 (Text):存放程序二进制指令。
- 数据段 (Data):存放全局变量、静态变量。
- 堆 (Heap):运行时动态申请内存,对应
malloc/new。 - 栈 (Stack):存储函数局部变量、调用栈帧、函数返回地址。
2. PCB 进程控制块(OS 管理进程的核心结构体)
操作系统依靠 PCB 管理每一个进程,内部保存信息:
- PID(进程 ID):全局唯一数字,标识进程;
- 进程状态:就绪、运行、阻塞、新建、终止;
- 程序计数器 PC:记录下一条待执行指令的内存地址;
- CPU 寄存器集合:上下文切换时保存 / 恢复运算现场;
- CPU 调度信息:进程优先级、时间片配置;
- 内存管理信息:地址空间边界、基址 / 界限寄存器;
- 记账信息:进程累计 CPU 运行时长、资源统计;
- I/O 状态信息:进程打开的全部文件描述符、占用外设列表。
四、进程生命周期与五状态模型
基础状态流转链路
创建 (New) → 就绪 (Ready) → 运行 (Running) → 终止 (Terminated)
- 运行 → 阻塞 (Waiting):进程等待 IO、输入等事件,主动让出 CPU;
- 阻塞 → 就绪:等待的事件完成,重新加入就绪队列;
- 运行 → 就绪:CPU 时间片耗尽,调度器强制切换进程。

五种状态详细说明
- 创建 New:操作系统新建进程,分配 PCB、初始化资源,未进入就绪队列。
- 就绪 Ready:进程已配齐全部资源,仅缺少 CPU 时间片;多个就绪进程排队形成就绪队列。
- 运行 Running:进程指令正在 CPU 上执行。
- 阻塞 / 等待 Blocked:进程需要等待外部事件,此时分配 CPU 也无法运行,主动释放 CPU,事件完成后回到就绪。
- 终止 Exit:程序正常结束或被信号杀死;系统回收内存、文件等全部资源,销毁 PCB。
所有状态切换由操作系统内核调度器 Scheduler 管控。
五、关键专业概念
-
上下文切换 Context Switch CPU 从当前进程切换至另一进程:保存当前进程寄存器、PC、内存现场,加载目标进程运行环境;操作涉及大量内存读写,系统开销大。
-
IPC 进程间通信 进程内存相互隔离,无法直接交换数据,专用通信方式:管道、消息队列、共享内存、信号。
-
并发 vs 并行
- 并发:同一时间段多任务交替执行;单核 CPU 依靠高速切换模拟同时运行,宏观并行、微观串行,解决多任务调度。
- 并行:同一时刻多任务真正同步执行;依赖多核 CPU,每个核心独立运行任务,直接提升程序运行效率。 一句话区分:并发是分时交替跑,并行是同一时刻同时跑。
进程与线程对比
| 对比维度 | 进程 Process | 线程 Thread |
|---|---|---|
| 资源所有权 | 独立地址空间,独占全部资源 | 共享所属进程所有资源 |
| 切换 / 创建开销 | 开销巨大 | 开销极小 |
| 进程间数据通信 | 复杂,必须使用 IPC 机制 | 简单,直接读写共享全局变量 |
| 运行独立性 | 隔离,单个进程崩溃不影响其他进程 | 脆弱,一条线程崩溃会导致整个进程退出 |
| 系统本质定位 | 操作系统资源分配基本单位 | CPU 调度执行的基本单位 |
拓展:
- 僵尸进程:子进程退出后父进程未调用接口回收 PCB;
kill -9无法清除,只能等待父进程结束或重启系统。 - kill -9:发送 SIGKILL 强制终止进程,无法被程序捕获、忽略;对僵尸进程、内核态阻塞进程无效。
- 守护进程 Daemon:后台常驻服务进程,脱离终端,父进程为 init 进程,持续提供服务。
- 孤儿进程:父进程提前退出,遗留子进程由系统 init 进程接管并回收资源。
- PID 规则:PID 为 int 类型数字,系统循环复用,达到最大值后重新从空闲小号分配。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)