2.计算机操作系统——进程管理.md 4.8 KB

计算机操作系统——进程管理(考研复试终极整理版)


一、进程的定义与组成

1. 进程定义

进程是程序在某个数据集合上的动态执行过程,是操作系统进行资源分配和调度的基本单位

  • 核心公式进程 = 程序段 + 数据段 + PCB
  • 关键特性
    • 动态性:进程由创建到撤销具有生命周期
    • 并发性:多个进程可交替执行
    • 独立性:进程是资源分配的基本单位

2. 进程组成

  • 程序段:存储执行代码(如 main() 函数)
  • 数据段:存储程序运行期间处理的数据
  • PCB(进程控制块):操作系统管理进程的核心数据结构
    • PCB内容
    • 标识信息:进程ID(PID)、父进程ID(PPID)
    • 处理机状态:程序计数器、寄存器值、栈指针
    • 控制信息:进程状态、调度优先级、资源分配表

二、进程的状态与转换

1. 基本状态模型

  • 三态模型
    • 运行态:占用CPU执行
    • 就绪态:具备运行条件,等待CPU调度
    • 阻塞态:等待资源或事件(如I/O完成)
  • 五态模型(扩展):
    • 创建态:进程正在被创建(分配资源、初始化PCB)
    • 终止态:进程资源被回收,PCB被撤销

2. 状态转换

graph LR
  创建态 --> 就绪态
  就绪态 --> 运行态 --> 就绪态(时间片用完)
  运行态 --> 阻塞态(等待资源)
  阻塞态 --> 就绪态(资源就绪)
  运行态 --> 终止态

3. 挂起状态

  • 定义:进程被换出到外存,释放内存资源
  • 触发条件:内存不足或用户主动挂起

三、进程控制与调度

1. 进程控制原语

  • 创建原语:分配PCB、加载程序到内存(如 fork()
  • 终止原语:回收资源、撤销PCB
  • 阻塞原语:主动进入阻塞态(如 wait()
  • 唤醒原语:由其他进程或系统触发(如 signal()

2. 进程调度算法

| 算法 | 核心思想 | 优缺点 |
|-------------------|---------------------------------------|-----------------------------------------|
| FCFS | 先来先服务 | 简单但长作业等待时间长 |
| SJF/SPF | 最短作业/进程优先 | 平均周转时间最短,但可能导致饥饿 |
| 时间片轮转 | 按时间片轮流执行 | 公平但上下文切换开销大 |
| 多级反馈队列 | 优先级队列动态调整 | 兼顾长短作业,实际系统常用 |


四、进程同步与通信

1. 进程同步机制

  • 互斥:同一资源仅允许一个进程访问(如打印机)
  • 同步:协调进程执行顺序(如生产者-消费者问题)
  • 实现工具
    • 信号量P()(等待)和 V()(释放)操作
    • 管程:封装共享数据和操作的高级同步机制

2. 进程通信方式

  • 共享存储:基于内存的共享(如共享内存区)
  • 管道通信:单向字节流(如 pipe()
  • 消息传递:通过发送/接收原语交换数据(如消息队列)

五、死锁与处理

1. 死锁必要条件

  1. 互斥条件:资源独占使用
  2. 不可剥夺条件:资源只能主动释放
  3. 请求与保持条件:持有资源时请求新资源
  4. 循环等待条件:进程间形成环形等待链

2. 死锁处理策略

| 策略 | 方法 | 示例 |
|-------------------|---------------------------------------|-------------------------------|
| 预防 | 破坏必要条件(如资源一次性分配) | 破坏请求与保持条件 |
| 避免 | 银行家算法动态检测安全性 | 安全序列判断资源分配是否安全 |
| 检测与解除 | 资源分配图检测,强制终止进程 | 撤销循环等待链中的进程 |


六、高频考点与答题要点

1. 进程 vs 线程

  • 资源分配:进程是资源分配的基本单位,线程是CPU调度的基本单位
  • 开销:线程切换开销小,共享进程资源

2. 系统调用 vs 库函数

  • 系统调用:需陷入内核态(如 read()
  • 库函数:在用户态执行(如 printf()

3. 进程调度方式

  • 抢占式:优先级高的进程可抢占CPU(如实时系统)
  • 非抢占式:进程主动释放CPU(如FCFS)