进程与调度.md 2.5 KB


title: 进程与调度 tags:

  • module
  • operating-system
  • process
  • scheduling
  • joplin type: module source_type: reconstructed created: 2026-04-22 updated: 2026-04-22 ---

进程与调度

[!abstract] 这一模块处理操作系统中最核心的动态部分:任务如何被抽象成进程和线程,状态如何变化,CPU 如何在多个任务之间分配执行权。

模块结论

  • [[进程]] 是资源分配的基本单位,[[线程]] 是更细粒度的执行流。
  • 调度的核心不是背算法名字,而是理解公平性、响应速度、吞吐量之间的权衡。
  • 同步、通信和死锁都是并发环境下的必然问题。

一、进程与线程

  • [[进程]]:程序在某个数据集合上的动态执行过程。
  • [[线程]]:CPU 调度的更小单位,共享进程资源。

复习重点

  • 进程和线程的区别不能只背“重/轻”。
  • 必须抓资源边界、切换成本和通信方式。

二、进程状态与转换

  • 创建态
  • 就绪态
  • 运行态
  • 阻塞态
  • 终止态

理解重点

  • 状态转换本质上反映资源是否就绪、CPU 是否占用、事件是否完成。
  • “挂起”是对外存和内存资源紧张时的扩展理解。

三、进程控制

  • 创建原语
  • 终止原语
  • 阻塞原语
  • 唤醒原语

四、同步与通信

  • 互斥
  • 同步
  • 信号量
  • 管程
  • 管道
  • 共享存储
  • 消息传递

易错点

  • 把“同步”和“互斥”混为一谈。
  • 只记工具名,不理解它们各自在控制什么。

五、调度算法

  • [[调度算法]] 的核心比较维度包括:
    • 平均等待时间
    • 响应速度
    • 公平性
    • 是否会饥饿

常见算法

  • FCFS
  • SJF/SPF
  • 时间片轮转
  • 多级反馈队列

六、死锁

  • [[死锁]] 的重点不是定义,而是形成条件和处理策略。
  • 预防、避免、检测与解除,是四种不同思路。

七、复习提问

  • 为什么进程是资源分配单位,而线程更适合作为调度单位?
  • 阻塞态和就绪态的本质区别是什么?
  • 时间片轮转为什么更适合交互系统?
  • 死锁四条件为什么缺一不可?

来源

  • [[raw/Joplin/计算机专业基础/计算机操作系统/_ 计算机操作系统知识文档(考研复试与系统学习重点).md]]
  • [[raw/Joplin/计算机专业基础/计算机操作系统/2.计算机操作系统——进程管理.md]]

相关页面

  • [[操作系统]]
  • [[操作系统存储管理]]
  • [[进程]]
  • [[线程]]
  • [[PCB]]
  • [[调度算法]]
  • [[死锁]]