调度算法的评价指标

CPU利用率

指CPU忙碌时间占总时间的比例

$$利用率=\frac{忙碌的时间}{总时间}$$

Eg:某计算机只支持单道程序,某个作业刚开始需要在CPU上运行5秒,再用打印机打印输出5秒,之后再执行5秒,才能结束。在此过程中CPU利用率、打印机利用率分别是多少?

$$CPU利用率=\frac{5+5}{5+5+5}=66.67%$$

$$打印机利用率=\frac{5}{5+5+5}=33.33%$$

系统吞吐量

单位时间内完成作业的数量,对于计算机而言,肯定更希望用尽可能少的时间处理完尽可能多的作业,即系统吞吐量越大越好

$$系统吞吐量=\frac{总共完成的作业数目}{总共花费的时间总数}(单位:道/秒)$$

周转时间

指从作业被提交给系统开始,到作业完成为止的这段时间间隔。由四部分组成:

  • 高级调度时间:作业在外存后被队列上等待的时间(在一个作业处理过程中,只会发生一次)
  • 低级调度时间(就绪态):进程在就绪队列上等待进程调度的时间。即进程处于就绪态的情况
  • 运行态:进程在CPU上执行的时间
  • 阻塞态:进程等待I/O设备操作完成的时间

(后三种时间在一个作业的整个处理过程种可能发生多次)

$$单个作业周转时间=作业完成时间-作业提交时间$$
$$平均周转时间=\frac{各作业周转时间之和}{作业数}$$

带权周转时间

$$带权周转时间=\frac{作业周转时间}{作业实际运行时间}=\frac{作业完成时间-作业提交时间}{作业实际运行的时间}$$

由上述公式易知带权周转时间必然大于1,带权周转时间与周转时间都是越小越好

对于周转时间相同的两个作业,实际运行时间长的作业在相同时间内被服务的时间更多,带权周转时间更小,用户满意度更高。

对于实际运行时间相同的两个作业,周转时间短的带权周转时间更小,用户满意度更高。

等待时间

指进程/作业处于等待处理机状态的时间之和,等待时间越长,用户满意度越低

对于进程来说,等待时间就是指进程建立后等待被服务的时间之和,在等待I/0完成的期间其实进程也是在被服务的,所以不计入等待时间

对于作业来说,不仅要考虑建立进程后的等待时间,还要加上作业在外存后备队列中等待的时间。

一个作业总共需要被CPU服务多久,被I/O设备服务多久一般是确定不变的,因此调度算法影响的一般只是任务/进程的等待时间

响应事件

指从用户提交请求到首次产生响应所用的时间