一、作业调度的定义
1. 高级调度的作用:作业调度,亦称高级调度,核心任务是管理位于外存后备队列的作业,选择合适的作业调入内存,加入就绪队列。
2. 进程创建与资源分配:当作业被调入内存后,系统会为其创建相应的进程,并分配必要的资源,如CPU时间和内存空间。此时,进程处于就绪态,但尚未开始执行。
二、作业调度的目标
1. 优化系统性能:作业调度的首要目标是提升系统性能,确保单位时间内能处理尽可能多的作业,从而提高系统吞吐量。
2. 合理分配资源:调度系统需确保处理器和I/O设备保持忙碌,同时对各个作业进行公平合理的处理,避免资源浪费和饥饿现象。
三、常用的作业调度算法
1. 先来先服务算法(FCFS):
- 实现机制:按照作业到达的先后顺序进行处理。
- 优点:实现简单,公平性高。
- 适用场景:适合请求频率不高的场合。
2. 短作业优先算法(SJF):
- 核心思想:优先处理预计执行时间短的作业。
- 效果:减少平均等待时间,提高系统吞吐量。
- 潜在问题:可能导致长作业“饥饿”。
3. 高响应比优先算法:
- 优先级调整:结合作业的等待时间和预估执行时间,动态调整优先级。
- 优势:提升系统响应速度和公平性。
- 特点:综合考虑作业等待时间和执行时间,避免长时间等待。
4. 时间片轮转法:
- 基本原理:为每个进程分配固定的时间片,实现公平的CPU分配。
- 应用场景:适用于多道程序环境,防止进程长时间独占CPU。
- 优点:确保所有进程都能获得CPU时间,提高系统效率。