【常见调度算法的比较】
处理机调度算法是根据处理机分配策略所规定的处理机分配算法,不同的情况和对象需求不同,适用的方式和算法也不同
以下是几种常见调度算法的比较:
【批处理系统的目标】
CPU 利用率
CPU 利用率是指 CPU 忙碌时间占总时间的比例,即:
为提供系统的资源利用率,应使得系统中的处理机和其他所有资源都尽可能的保持忙碌状态,即 CPU 的利用率越高越好
同时,对于多道程序并发执行的情况,一般会采用甘特图来辅助计算
系统吞吐量
系统吞吐量是指单位时间内系统所完成的作业数,即:
对于长作业来说,其耗费时间长,会降低系统吞吐量;而对于短作业,其耗费时间短,会提高系统吞吐量,因此系统吞吐量与批处理作业的平均长度有关
同时,如果单纯为获得高的系统吞吐量,应尽可能地选择短作业运行
周转时间
周转时间,是指作业从提交给系统到作业完成的时间间隔,分为四个部分:作业等待、就绪队列排队、处理机运行(运行态)、I/O 操作时间总和(阻塞态)
其中,作业等待属于高级调度部分,仅调度一次,就绪队列排队属于低级调度部分,会发生多次
对于每个独立用户来说,其更加关心自己所提交的单个作业调度周转时间,故有:
对于每个用户来说,都希望自己作业的周转时间尽可能的短,但作为操作系统来说,则希望使平均周转时间最短,以尽可能的令大多数用户满意,故有:
为进一步反映单个作业在调度时的性能,又引入了带权周转时间,其被定义为作业周转时间与系统为它提供服务的时间的比,即:
可以发现,对于两周转时间相同的作业来说,实际运行长的作业被服务的更多,带权周转时间也就更小;对于两实际运行时间相同的作业来说,周转时间越短的作业带权时间反而更小
那么,平均带权周转时间为:
等待时间
等待时间,是指进程处于等待处理机状态的时间和
一个作业或进程被 CPU、I/O 服务多久一般是确定不变的,调度算法只会等待时间
对于进程来说,其是进程建立后等待被服务的时间和,即:
对于作业来说,其是进程建立后等待被服务的时间和与作业在外存后备队列的等待时间的和,即:
【实时系统的目标】
响应时间,是指用户从键盘提交一个请求开始,到屏幕显示出处理结果为止的一段时间间隔,其包含三部分时间:
- 请求信息从输入到送到处理机的时间
- 处理机对请求信息处理的时间
- 形成的响应时间回送到终点显示器的时间
用户对响应时间的要求不完全相同,这就要求系统响应时间的快慢程度与用户请求服务的复杂性相适应