1.进程调度的任务:
- 保存处理机的现场信息。在进行调度时首先需要保存当前进程的处理机的现场信息,如程序计数器,多个通用寄存器的内容等。
- 按某种算法选取进程。调度程序按照某种算法从就绪队列中选取一个进程,将状态改为运行态,并准备处理机。
- 把处理器分配给进程。
先来先服务 (FCFS,first come first served)
根据进程到达的先后顺序执行进程,不考虑等待时间和执行时间,会产生饥饿现象。属于非抢占式调度,优点是公平,实现简单;缺点是不利于短作业。
最短作业优先(SJF, Shortest Job First)
短作业优先(SJF, Shortest Job First)又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。
算法原理:对预计执行时间短的进程优先分派处理机。通常后来的短进程不抢先正在执行的进程。
算法优点:相比FCFS算法,该算法可改善平均周转时间和平均带权周转时间,缩短进程的等待时间,提高系统的吞吐量。
算法缺点:对长进程非常不利,可能长时间得不到执行,且未能依据进程的紧迫程度来划分执行的优先级,以及难以准确估计进程的执行时间,从而影响调度性能。