作业的调度:分类:
高级调度:就是作业调度,按照某种调度算法从后备作业队列中挑选作业分配主存和外设资源。并建立进程
中级调度:又称中程调度,为了提高内存利用率和系统吞吐量,将暂时不能运行的进程不再占用宝贵的内存资源,将他们调至外存上去等待,也就是挂起
低级调度:又称进程调度,按照某种原则将将处理器分配给就绪进程或线程
三级调度:指同时出现以上三种调度方式的调度模型。
调度的性能准则:
面向用户的调度性能准则:
周转时间:作业从提交到完成(得到结果)所经历的时间。
响应时间:用户从输入一个请求到系统给出的首次响应
截止时间:开始截止时间和完成截止时间——>实时系统
公平性:不因作业本身的特性而使上述指标过分恶化
优先级:可以使关键任务达到更好的指标
面向系统的调度性准则:
吞吐量:单位时间内所完成的作业数
处理机利用率:对于大众型机器
各种设备的综合利用
调度算法本身的调度性能准则:
易于实现、执行开销比小
处理机调度的两种方式:
抢占方式、非抢占方式
常见的调度算法:
1、先进先出调度算法:不可抢占
2、优先级调度算法:可以设置为抢占或非抢占,优先级在进程创建时确定
3、时间片轮转算法:将所有的就绪进程按照FIFO原则,排成一个队列,按时间片进行轮转,可抢占策略
4、最短进程优先算法:从就绪队列中挑选所需运行时间最短的进程进入主存运行。,非抢占
5、最短剩余时间优先算法:最短进程优先算法的变形,让运行到作业完成时所运行的时间最短的进程优
先得到处理,可抢占
6、最高响应比优先算法:引入动态优先级机制,响应比高的优先调度,非抢占
动态优先数:(等待时间+要求的服务时间)/要求的服务时间=响应式时间/要求服务时间
7、多级反馈队列算法:是时间片轮转算法和优先级算法的综合和发展。
基本算法:设置多个就绪队列,分别设置不同的优先级,如逐级降低,队列1优先级最高。
优先级和时间片相结合,每个队列的时间片的长度不同,规定优先级越低则时间越长
按照FIFO的原则调度;新进程进入后,先投入队列1的末尾
动态优先级:若按队列1一个时间片未能执行完,则降低投入到队列2的末尾,同样按FIFO
算法调度;如此下去,降低到最后的队列,则按“时间片轮转”算法调度直到完成
仅当较高优先级的队列为空,才调度较低优先级的队列中的进程执行。如果进程执行时有新的进程
进入较高优先级队列,则抢占执行新进程,并把被抢先的进程投入原队列的末尾。
原则:I/O型进程:让其进入最高优先级队列,以及响应I/O交互
计算型进程:每次都执行完时间片,进入更低的队列。最终采用最大时间片来执行,减少调度次数
多级反馈队列算法优点:具有较好的性能,能满足各类用户的需要。为提高系统吞吐量率和缩短平均周转时间而照顾短进程;
为了I/O设备利用率和缩短响应时间而照顾I/O型进程;不必估计进程的执行时间,动态调节。