操作系统中的进程调度
操作系统使用各种调度器进行下面所描述的进程调度。
1. 长期调度器
长期调度器也称为作业调度器。它从池(辅助存储器)中选择进程,并将它们保留在主存储器中的就绪队列中。
长期调度器主要控制多道程序设计的程度。长期调度器的目的是在池中的作业中选择IO密集型和CPU密集型进程的完美组合。
如果作业调度器选择的是更多IO密集型进程,则所有作业都可能一直停留在阻塞状态,而CPU将大部分时间处于空闲状态。这将降低多道程序设计的程度。因此,长期调度器的工作非常关键,可能会对系统产生很长时间的影响。
2. 短期调度器
短期调度器也称为CPU调度器。它从就绪队列中选择一个作业,并将其分派到CPU进行执行。
选择哪个作业将被分派执行是使用调度算法来确定的。短期调度器的工作可能非常关键,因为如果它选择的作业的CPU爆发时间非常长,那么之后的所有作业都必须在就绪队列中等待很长时间。
如果短期调度器在选择作业时犯了一些错误,这个问题称为饥饿现象可能会产生。
3. 中期调度器
中期调度器负责处理被换出的进程。如果运行状态的进程需要一些IO时间来完成,则需要将其状态从运行更改为等待。
中期调度器用于此目的。它将进程从运行状态中移除,为其他进程腾出空间。这些进程是被换出的进程,该过程称为换入切换。中期调度器负责挂起和恢复进程。
它减少了多道程序设计的程度。换入切换对于在就绪队列中具有完美进程组合是必要的。