就绪工作怎样获得CPU
多个活动已经准备好运行,而可用处理器数量有限时,系统需要决定下一步执行谁。调度器根据状态和策略作出选择,切换机制再保存与恢复执行上下文。正在等待输入的活动通常不属于同一个就绪集合;因此增加任务总数与增加真正可运行的工作量,是两个不同变化。
参考:[1]
目标先于具体规则
交互程序关心输入后多久得到回应,批处理关心任务完成量和周转时间,多用户环境还需要公平性。先来先服务、按时间片轮转及优先级等策略,体现不同取舍。评价一种策略时,应明确负载假设与目标,不能只用某个任务最快结束来代表整个系统表现最好。
参考:[2]
时间片与抢占
抢占式安排可以在活动仍未主动结束时暂停它,让其他活动获得机会。时间片较短有助于频繁轮转,也会增加切换开销;过长则可能让交互活动等待较久。实际系统还结合优先级、处理器亲和性等信息,避免把教学中的一个简单队列误当成全部真实调度行为。
参考:[1]
等待与资源竞争
高优先级活动可能等待低优先级活动持有的锁,形成优先级反转等问题;单靠给线程提高优先级,并不会让它需要的资源立即可用。调度设计因而需要与同步、输入输出及负载控制共同分析,才能把处理器分配规则转化为应用真正感受到的响应和完成时间。
参考:[2]