Skip to content

进程基本概念

考情分析

进程管理在 408 真题中累计考查约 204 分(2009-2026),是操作系统中分值最高的章节。其中进程与线程小节约 34 分,属于 🔥🔥 中高频考点。

如果所有程序只能串行执行,CPU 大部分时间都在等 I/O——怎样让多个程序"同时"推进?操作系统的答案是把"正在执行的程序"抽象成进程。

进程的定义

进程(Process)是程序的一次执行过程,是系统进行资源分配的基本单位。

注意区分

在未引入线程的系统中,进程既是资源分配的基本单位,也是调度的基本单位。引入线程后,线程成为调度的基本单位,进程仅作为资源分配的基本单位。408 真题多次考查此区分。

程序是静态的代码文件,进程是动态的执行实体。同一个程序可以创建多个进程(比如打开两个记事本窗口),每个进程都有自己独立的地址空间和运行状态。

进程的组成

一个进程由三部分组成:

组成部分说明
PCB进程存在的唯一标志,包含进程管理所需的全部信息
程序段进程要执行的代码
数据段进程运行过程中的数据(变量、堆、栈等)

进程控制块 PCB

PCB 是操作系统中最核心的数据结构之一。操作系统通过 PCB 来感知进程的存在并管理进程——就像医院通过病历卡管理病人一样,没有病历卡,医院就"不知道"这个病人存在。

c
// PCB 的典型结构(简化)
struct PCB {
    int pid;              // 进程标识符
    int uid;              // 用户标识符
    int state;            // 进程状态
    int priority;         // 优先级

    // 处理机状态(上下文)
    int PC;               // 程序计数器
    int PSW;              // 程序状态字
    int registers[16];    // 通用寄存器

    // 进程调度信息
    int arrival_time;     // 到达时间
    int service_time;     // 服务时间

    // 资源信息
    int *memory_base;     // 内存基址
    int open_files[20];   // 打开文件列表

    struct PCB *next;     // 链接指针
};

PCB 的信息可以分为四类:

类别包含信息作用
进程标识信息PID(进程ID)、UID(用户ID)、PPID(父进程ID)唯一标识一个进程
处理机状态信息PC、PSW、通用寄存器、栈指针上下文切换时保存/恢复
进程调度信息状态、优先级、调度策略、等待事件调度程序使用
进程控制信息内存信息、打开文件、I/O设备资源管理

进程的特征

特征说明与程序的对比
动态性进程是程序的一次执行过程,有生命周期程序是静态的代码文件
并发性多个进程可以在一段时间内同时执行程序本身不能并发
独立性每个进程有独立的地址空间和资源程序不涉及资源分配
异步性进程按各自独立的、不可预知的速度推进
结构性进程由 PCB + 程序段 + 数据段组成程序只有代码和数据

动态性是最基本的特征

区分进程和程序的根本特征是动态性。进程是「正在执行的程序」,强调的是执行过程而非代码本身。

进程与程序的关系

比较维度进程程序
状态动态,有生命周期静态,永久存储
资源拥有资源(内存、文件等)不涉及资源
数量关系一个程序可对应多个进程一个进程可包含多个程序
并发可以并发执行不能并发
创建/撤销可以被创建和撤销无此概念

易错

"PCB 是进程存在的唯一标志"不等于"PCB 就是进程"。进程 = PCB + 程序段 + 数据段。PCB 只是操作系统感知和管理进程的依据。选择题常见干扰项:"撤销 PCB 等价于撤销程序"——错,撤销的是进程,程序文件仍然存在于磁盘上。

考研高频考点

  • 🔥🔥🔥 PCB 是进程存在的唯一标志
  • 🔥🔥🔥 进程的四个特征(尤其动态性是最基本特征)
  • 🔥🔥 PCB 中包含的信息分类
  • 🔥🔥 进程与程序的区别和联系
  • 🔥 进程的组成(PCB + 程序段 + 数据段)

进程有了定义和组成,接下来看它在生命周期中会经历哪些状态,以及状态之间如何转换。

真题练习

相关真题(2题)

2021Q30选择题2分

父子进程:各有独立的虚拟地址空间(fork后写时复制)

2012Q31选择题2分

进程与线程:进程始终是资源分配单位,引入线程后线程是调度单位