调度是操作系统的基本功能。CUP的成功调度依赖于进程的观测属性(an observed property of processes):进程执行有CUP执行和I/O等待周期组成。
CUP调度决策又有以下四种情况发生:
1:当一个进程从运行状态到等待状态;
2:当一个进程从运行状态到就绪状态;
3:当一个进程从等待状态到就绪状态;
4:当一个进程终止时;
1、4为非抢占式的(nonpreemptive) 2、3为抢占式的(preemptive)。
分派程序:是一个模块,用于将CPU的控制权交给短期调度程序所选择的程序。其功能包括:上下文切换、切换到用户模式、跳转到用户程序的合适位置以重新重启这个程序。
调度原则有:CUP使用率、吞吐量、周转时间、等待时间、响应时间。人们需要使CUP使用率、吞吐量最大化,周转时间、等待时间、响应时间最小化。
调度算法:
CPU调度处理从就绪队列中选择那个进程并为之分配CPU的问题。
1:先到先服务调度(frist-come,frist-served,FCFS)
2:最短作业调度(shortest-job-frist,JSF) 有时成为最短剩余时间(shortest-remaining-time-frist)
3: 优先权调度(priorty-shceduing)
4:轮转法调度(rounding-robin,RR)
5:多级队列调度(multilevel queue-scheduing)
6:多级反馈队列调度(multilevel feedback queue-scheduing)
实时调度分为硬实时和软实时调度
进程调度实例:
1:Solaris 2:基于优先级的进程调度
2:Windows:基于优先级的、可抢占调度算法调度
3:Linux:包括两种调度方法:分时算法和为实时任务设计的绝对优先比公平更重要。