--- 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]] - [[调度算法]] - [[死锁]]