进程调度:如何分配CPU。(自行回顾进程调度状态图的三模态、五模态)
1.引起进程调度的时机
1)现运行进程运行结束或者因任务完成而正常结束,或者因出现错误而异常结束。
2)现运行进程因某种原因,比如I/O请求,从运行进出入阻塞状态。
3)现运行进程执行某种原语操作,如P操作、阻塞原语等,进入阻塞状态。
4)一个具有更高优先级的进程要求使用处理机,即进入就绪队列(这与调度方式有关)。
5)分配给该进程运行的时间片已用完(这与系统类型有关,多用于分时系统中)。
2.调度方法分为可剥夺和不可剥夺两种。即当有更高优先级的进程到来时,是否可以将正在运行进程的CPU分配给高优先级的进程,可以则为可剥夺,否则为不可剥夺的。
在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。
高级调度:又称长调度或作业调度。它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。系统中一个作业只需经过一次高级调度。
中级调度:又称短程调度或对换调度。它决定处于交换区中的就绪进程哪个可以调入内存,以便直接参与对CPU的竞争。在内存资源紧张时,为了将进程调入内存,必须将内存中处于阻塞状态的进程调出交换区,以便为调入进程腾出空间。
低级调度:又称短程调度或进程调度。它决定处于内存中的就绪进程中的哪个可以占用CPU。最活跃、最重要的调度程序,对系统影响也是最大的。
3.进程调度算法的选择
先来先服务 (first come first served)