调度算法学习卡片
⏱️ 时间片轮转(RR)
- 核心思想
- 公平轮流为各进程服务,确保每个进程在一定时间间隔内都能得到响应
- 算法规则
-
- 按进程到达顺序分配固定长度的时间片
- 时间片用完后,进程被强制剥夺CPU并放回就绪队列队尾
- 通过时钟中断实现精确时间控制
- 适用场景
- 仅用于进程调度
- 抢占性质
- 抢占式算法(通过时钟中断强制剥夺CPU)
- 优缺点
-
优点
缺点
- ✅ 公平、响应快,适合分时系统
- ❌ 频繁切换开销大,时间片选择困难
- 饥饿现象
- 不会导致饥饿
🏆 优先级调度
- 核心思想
- 根据任务紧急程度和重要程度设置优先级
- 调度时机
-
- 非抢占式:仅在进程主动放弃CPU时调度
- 抢占式:新进程到达或优先级变化时可能抢占
- 适用场景
- 可用于作业调度和进程调度
- 优先级类型
-
- 静态优先级:创建时确定后不变
- 动态优先级:根据运行情况调整
- 优缺点
-
优点
缺点
- ✅ 区分任务紧急程度,适合实时系统
- ❌ 可能导致饥饿
- 饥饿现象
- 可能发生(持续高优先级进程到达时)
🔄 多级反馈队列
- 核心思想
- 综合FCFS、SJF和时间片轮转的优点
- 规则
-
- 多级队列,优先级从高到低,时间片从小到大
- 新进程进入最高级队列,时间片用尽后降级到下一队列
- 高级队列进程可抢占低级队列进程的CPU
- 适用场景
- 主要用于进程调度,是抢占式算法
- 优缺点
-
优点
缺点
- ✅ 公平性、响应性、适应性、灵活性
- ❌ 可能产生饥饿,实现复杂度高
- 饥饿现象
- 可能发生(持续短作业阻塞长作业)
📊 算法对比
- 时间片轮转(RR)
-
- 公平性:高
- 响应速度:快
- 适用场景:分时系统
- 饥饿现象:无
- 主要缺点:切换开销大
- 优先级调度
-
- 公平性:低
- 响应速度:快
- 适用场景:实时系统
- 饥饿现象:可能
- 主要缺点:可能导致饥饿
- 多级反馈队列
-
- 公平性:中
- 响应速度:最快
- 适用场景:通用系统(如UNIX)
- 饥饿现象:可能
- 主要缺点:实现复杂,可能饥饿