Day65 调度算法的评价指标以及FCFS、SJF、HRRN调度算法

我是大白(●—●),这是我开始学习记录大白Java软件攻城狮晋升之路的第六十五天,今天学习的是进程调度的算法的评价指标以及FCFS、SJF、HRRN调度算法~

文章目录

  • 一、调度算法的评价指标
    • 1.CPU利用率
    • 2.系统吞吐量
    • 3.周转时间
    • 4.等待时间
    • 5.响应时间
  • 二、调度算法
    • 1.FCFS算法(先来先服务)
    • 2.SJF算法(短作业优先)
    • 3.HRRN算法(高响应比优先)

一、调度算法的评价指标

image.png

1.CPU利用率

由于早期的CPU造价极其昂贵,因此人们会希望让cPU尽可能多地工作
CPU利用率:指CPU“忙碌”的时间占总时间的比例。

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

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

C P U 利 用 率 = 5 + 5 5 + 5 + 5 = 66.66 % CPU利用率=\frac{5+5}{5+5+5}=66.66\% CPU=5+5+55+5=66.66%

打 印 机 利 用 率 = 5 15 = 33.33 % 打印机利用率=\frac{5}{15}=33.33 \% =155=33.33%

2.系统吞吐量

对于计算机来说,希望能用尽可能少的时间处理完尽可能多的作业。
**系统吞吐量:**单位时间内完成作业的数量

系 统 吞 吐 量 = 总 共 完 成 了 多 少 道 作 业 总 共 花 了 多 少 时 间 系统吞吐量=\frac{总共完成了多少道作业}{总共花了多少时间} =

3.周转时间

对于计算机的用户来说,他很关心自己的作业从提交到完成花了多少时间。
周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。
它包括四个部分:作业在外存压备队列上等待作业调度(高级调度)的时间、进程在就绪队列上等待进程调度(低级调度)的时间、进程在CPU上执行的时间、进程等待I/O操作完成的时间。后三项在一个作业的整个处理过程中,可能发生多次。
( 作 业 ) 周 转 时 间 = 作 业 完 成 时 间 − 作 业 提 交 时 间 (作业)周转时间=作业完成时间-作业提交时间 =
对于用户来说,更关心自己的单个作业的周转时间

平 均 周 转 时 间 = 各 作 业 周 转 时 间 总 和 作 业 数 平均周转时间=\frac{各作业周转时间总和}{作业数} =

对于操作系统来说,更关心系统的整体表现,因此更关心所有作业的周转时间的平均值

带 权 时 间 = 作 业 周 转 时 间 作 业 实 际 运 行 的 时 间 = 作 业 完 成 时 间 − 作 业 提 交 时 间 作 业 实 际 运 行 的 时 间 带权时间=\frac{作业周转时间}{作业实际运行的时间}=\frac{作业完成时间-作业提交时间}{作业实际运行的时间} ==
带权周转时间必然≥1

平 均 带 权 周 转 时 间 = 各 作 业 带 权 周 转 时 间 之 和 作 业 数 平均带权周转时间=\frac{各作业带权周转时间之和}{作业数} =
image.png

4.等待时间

计算机的用户希望自己的作业尽可能少的等待处理机
等待时间,指进程/作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低。
image.png
对于进程来说,等待时间就是指进程建立后等待被服务的时间之和,在等待I/O完成的期间其实进程也是在被服务的,所以不计入等待时间。
对于作业来说,不仅要考虑建立进程后的等待时间,还要加上作业在外存后备队列中等待的时间
一个作业总共需要被CPU服务多久,被I/O设备服务多久一般是确定不变的,因此调度算法其实只会影响作业/进程的等待时间。当然,与前面指标类似,也有“平均等待时间”来评价整体性能。

5.响应时间

对于计算机用户来说,会希望自己的提交的请求(比如通过键盘输入了一个调试命令)尽早地开始被系统服务、回应。
响应时间,指从用户提交请求首次产生响应所用的时间。

二、调度算法

image.png

1.FCFS算法(先来先服务)

image.png

2.SJF算法(短作业优先)

image.png

3.HRRN算法(高响应比优先)

对于FCFS和SJF两种算法的思考
image.png
为了解决上面的问题就有了如下的算法
image.png

你可能感兴趣的:(408,算法,调度算法,java,操作系统,进程)