处理器管理:调度策略与算法解析
在多编程环境中,待执行的对象(作业、进程和线程)数量往往超过系统同一时间能够处理的能力。在操作系统对这些对象进行调度之前,需要先解决系统存在的三个限制:
1. 资源数量有限。
2. 某些资源一旦分配给某个作业,就不能再与其他作业共享。
3. 有些资源的重新分配需要操作员干预,无法自动在作业之间进行重新分配。
调度目标与策略
一个好的调度策略需要考虑多个目标,但这些目标之间可能存在相互矛盾的情况:
|目标|实现方式|
| ---- | ---- |
|最大化吞吐量|在给定时间内运行尽可能多的作业,可通过只运行短作业或不间断地运行作业来实现|
|最小化响应时间|快速处理交互式请求,可通过只运行交互式作业,让其他作业等待,直到交互式负载结束|
|最小化周转时间|使整个作业快速进出系统,可先运行所有批处理作业,因为批处理作业分组运行效率更高|
|最小化等待时间|尽快将作业从就绪队列中移除,可通过减少系统允许的用户数量,确保作业进入就绪队列时CPU立即可用|
|最大化CPU效率|让CPU始终保持100%的忙碌状态,可只运行CPU密集型作业|
|确保所有作业公平性|为每个作业分配相等的CPU和I/O时间,按作业到达顺序运行,不给予特殊待遇|
由于这些目标之间存在冲突,系统设计者或管理员需要根据具体系统确定最重要的标准,然后选择最符合这些目标的调度策略。
调度算法
作业调度器会选择作业以确保就绪队列和I/O队列保持平衡,但有时会出现一个作业长时间占用CPU而不发出I/O请求的情况,这会导致就绪队列堆积,I/O队
超级会员免费看
订阅专栏 解锁全文
84万+

被折叠的 条评论
为什么被折叠?



