进程调度的任务
进程调度的任务有三:
1. 保存处理机的现场信息。
2. 按某种算法选取进程。
3. 把处理器分配给进程。
进程调度机制
为了实现进程调度,在进程调度机制中,应具有如下三个基本部分,
- 排队器:为了提高进程调度的效率,应事先将系统中所有就绪进程按照一定的策略排成一个或多个队列,以便调度程序可以最快找到它。
- 分配器:分配器一依据进程调度信息所选定的进程,将其从就绪队列取出,然后进行从分配器到选出的新进程的上下文切换,在将处理器分配给新进程。
- 上下文切换器:对上下文切换时,会保留当前进程的上下文,即把当前进程的寄存器内容保存到进程控制块内的相应单元,再装入新进程的上下文,以便程序运行。
先来先服务调度算法
在进程调度中采用FCFS算法时,每次调度都从就绪队列中选取一个最先进入该队列的进程,为他分配处理机。直到该进程运行完成或是发生某事件致使它阻塞后,进程调度程序再次开始调度。
算法优点:易于理解且实现简单,只需要一个队列(FIFO),且相当公平。
算法缺点:比较有利于长进程,而不利于短进程。会产生饥饿现象。
短进程优先
SJF算法已作业时间长度来计算优先级,时间越短,优先级越高。
调度程序会在就绪队列中选择运行时间最短的进程优先为他们分配处理机,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。
算法优点:缩短作业(进程