v调度的实质就是一种资源分配。不同的系统和系统目标,通常采用不同的调度算法——适合自己的才是最好的。
1、先来先服务调度算法FCFS
2. 短作业(进程)优先调度算法SJF/SPF:
优点:通过上表可见采用SJF/SPF算法,平均周转时间、平均带权周转时间都有明显改善。SJF/SPF调度算法能有效的降低作业的平均等待时间,提高系统吞吐量。
方式:分抢占和非抢占两种方式,
v SJF/SPF的不足:
1. 对短作业有利,但同时造成了对长作业的不利。
2.由于作业(进程)的长短含主观因素,不一定能真正做到短作业优先。
3.未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)的及时处理。
3. 高优先权优先调度算法HPF:
分两种方式:
非抢占式优先权算法
抢占式优先权算法 关键点:新作业产生
优先权的类型
静态优先权:创建进程时确定,整个运行期间保持不变。一般利用某一范围的一个整数来表示,又称为优先数。
动态优先权:创建进程时赋予的优先权可随进程的推进或随其等待时间的增加而改变。
关于进程优先权确定的依据如下:
1)进程类型:一般来,系统进程高于用户进程。
2)进程对资源的需求:如进程的估计时间及内存需要量的多少,对要求少的进程赋予较高优先权。
3)用户要求:由用户进程的紧迫程度及用户所付费用的多少来确定优先权的。
什么时候计算各进程的响应比优先权?
需要进行调度选择的时候比较各自优先权
作业完成时
新作业产生时(抢占、非抢占)
时间片完成时
进程阻塞时
影响时间片长度的主要因素:系统的处理能力和系统的负载状态
依据用户的处理能力确定时间片长短,使用户输入通常在一个时间片内处理完,否则使响应时间,平均周转时间和
平均带权周转时间延长
多级反馈队列算法FB
特点:多个就绪队列,循环反馈,动态优先级,时间片轮转
1.设置多个就绪队列,各队列有不同的优先级,优先级从第一个队列依次降低。
2.赋予各队列进程执行时间片大小不同,优先权越高时间片越短。