复习总结操作系统(第二章:进程管理)

本文基于教材内容与王道考研视频的顺序,对操作系统第二章中的“进程管理”进行系统化总结。
本章的核心任务是理解进程的本质、进程的运行状态和转换、进程控制方式、进程通信等内容,为后续 CPU 调度、同步互斥等章节奠定基础。


一、进程的描述

1.1 进程的定义

进程(Process)是操作系统最重要的概念之一。
程序本身只是静态的指令集合,而进程是它的动态执行过程。

教材中常见的几种典型定义:

  • 进程是程序的一次执行。
  • 进程是程序及其数据在处理机上顺序执行时所发生的活动。
  • 进程是具有独立功能的程序在一个数据集合上运行的过程,是 OS 最基本的调度单位。

进一步结合进程实体可以给出更严格的定义:

进程 = 进程实体的执行过程
其中进程实体包括:

  1. 程序段(要运行的代码)
  2. 数据段(程序运行需要的数据)
  3. 进程控制块(PCB)

操作系统以 PCB 作为进程存在的唯一标志。


1.2 进程的组成

进程由以下三部分构成:

进程 = PCB + 程序段 + 数据段

  • 程序段:程序代码本身;
  • 数据段:程序运行时的数据;
  • PCB(Process Control Block):进程的唯一标识,是 OS 管理进程信息的核心数据结构。

在 OS 角度:

  • 创建进程:创建 PCB,初始化必要信息;
  • 撤销进程:撤销 PCB,回收资源;
  • 进程存在与否:看 PCB 是否存在即可。

这是进程管理的最核心要点。


1.3 进程的组织方式

1. 链接方式组织 PCB

操作系统按照进程状态,将各 PCB 链接成不同队列,如:

  • 就绪队列
  • 阻塞队列
  • 终止队列

每个队列通过链表连接,操作系统维护这些队列头指针。

2. 索引方式组织 PCB

根据进程状态建立多个索引表,操作系统维护索引表地址。
索引方式适合随机查找,链接方式适合顺序遍历。


1.4 进程的特征

进程具有以下四个本质特征:

  • 动态性:进程是程序运行的动态过程;
  • 并发性:多个进程在宏观上同时执行;
  • 独立性:进程是 OS 调度资源的独立单位;
  • 异步性:进程执行速度不可预知,表现为走走停停。

其中“异步性”是多道程序环境导致复杂性的根源,也是后续引入同步互斥机制的原因。


二、进程的基本状态与转换

2.1 进程的三种基本状态

1. 就绪状态(Ready)

进程已具备运行条件,获得 CPU 即可运行。

2. 运行状态(Running)

进程占有 CPU,正在执行。

注意:单核 CPU 下任一时刻最多一个进程处于运行态;多核 CPU 则每核一个。

3. 阻塞状态(Blocked)

进程因某事件(如 I/O、资源不可用)无法继续执行,需要等待。


2.2 其他两种辅助状态

1. 创建状态(New)

系统正在为进程分配资源、初始化 PCB。

2. 终止状态(Exit)

OS 正在回收进程资源,撤销 PCB。


2.3 挂起状态与状态转换

为了便于管理,操作系统引入了挂起(Suspend)机制。

1. 引入挂起机制的原因

  • 用户希望暂停程序检查错误;
  • 父进程希望检查子进程状态;
  • 系统负荷过大,需要挂起部分进程;
  • 操作系统需要重新分配资源、维护系统状态。

2. 引入挂起后出现的状态

进程状态会进一步细分:

  • 活动就绪(Ready)
  • 静止就绪(Suspend Ready)
  • 活动阻塞(Blocked)
  • 静止阻塞(Suspend Blocked)

状态转换主要涉及“活动”与“静止”的切换(即是否在内存)。


2.4 五状态模型与七状态模型

五状态模型:

新建 → 就绪 → 运行 → 阻塞 → 终止

七状态模型(含挂起):

活动就绪 → 静止就绪 → 活动阻塞 → 静止阻塞

教材中常用七状态模型用于完整描述 OS 控制进程的能力。


三、进程的控制(核心内容)

进程控制是操作系统进程管理部分的核心。
所谓进程控制,就是 OS 对进程的生命周期进行管理,包括:

  • 创建(Create)
  • 撤销(Terminate)
  • 阻塞(Block)
  • 唤醒(Wakeup)
  • 切换(Switch)

下文对每个操作进行系统总结。


3.1 进程的创建

进程创建通常涉及以下步骤:

  1. 分配唯一进程标识符(PID);
  2. 分配 PCB 并初始化;
  3. 为程序和数据分配必要资源;
  4. 设置初始状态(通常为就绪);
  5. 将 PCB 插入就绪队列。

通常由系统调用 fork、CreateProcess、clone 等触发。


3.2 进程的终止

进程终止包括:

  • 正常结束(exit)
  • 异常终止(如非法指令)
  • 被其他进程终止(kill)

终止过程:

  1. 收回所有资源(内存、I/O等);
  2. 清理文件、缓存;
  3. 撤销 PCB;
  4. 通知父进程更新状态。

3.3 阻塞与唤醒

阻塞由进程自己主动触发(如等待 I/O)。
唤醒由事件发生后操作系统触发(如 I/O 完成)。

阻塞过程:

  1. 修改进程状态为阻塞;
  2. 将 PCB 从运行队列移入阻塞队列;
  3. 触发调度。

唤醒过程:

  1. 修改进程状态为就绪;
  2. 将 PCB 从阻塞队列移入就绪队列。

阻塞与唤醒不得由用户直接控制,必须由内核管理。


3.4 进程切换

进程切换是 OS 调度的核心,是多道程序并发执行的关键。

切换过程包括:

  1. 保存当前进程上下文(寄存器、PC 等);
  2. 更新 PCB 信息;
  3. 选择新进程;
  4. 恢复新进程上下文;
  5. 进入用户态继续执行。

注意:切换只发生在核心态。

进程切换开销高于线程切换,因为线程共享地址空间。


3.5 进程控制的实现:原语操作

所有进程控制操作(创建、唤醒、阻塞等)都属于原语,具有:

  • 原子性
  • 不可中断性
  • 在核心态执行

操作系统通过中断禁止-开中断机制保证这些操作的原子性。


四、进程通信(补充)

虽然你在原文中未涉及,但进程通信(IPC)也是第二章的重要内容,这里进行简要补充。

进程间通信的主要方法包括:

  • 共享存储
  • 管道通信
  • 消息传递(信箱机制)
  • 套接字(Socket)

每一种方式都有自己的使用场景和适用范围。


五、总结

第二章围绕进程构建了整个操作系统管理的基础:

  • 进程是 OS 管理资源和调度执行的基本单位;
  • PCB 是进程存在的唯一标志;
  • 进程具有动态性、并发性、独立性和异步性;
  • 通过状态模型描述进程运行过程;
  • 通过进程控制操作管理生命周期;
  • 通过通信机制支持进程协作。

这些内容是学习调度算法、同步机制、死锁原理等后续章节的基础框架。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hygge999

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值