当前位置: 首页 > news >正文

周转时间、带权周转时间、平均周转时间、平均带权周转时间

1. 计算公式

- 周转时间(Turnaround Time) = 完成时间 - 到达时间

例如: 一个作业在时刻0到达,完成时间为时刻10,则周转时间为10 - 0 = 10。

- 带权周转时间(Weighted Turnaround Time) = 周转时间 / 执行时间

例如: 如果周转时间为10,执行时间为5,则带权周转时间为10 / 5 = 2.0。

- 平均周转时间(Average Turnaround Time) = 所有作业的周转时间之和 / 作业数量

例如: 如果有三个作业的周转时间分别为10、5、15,则平均周转时间为 (10 + 5 + 15) / 3 = 10。

- 平均带权周转时间(Average Weighted Turnaround Time) = 所有作业的带权周转时间之和 / 作业数量

例如: 如果有三个作业的带权周转时间分别为2.0、1.5、3.0,则平均带权周转时间为 (2.0 + 1.5 + 3.0) / 3 = 2.17。


2. 调度算法的解释与示例

  1. FCFS (First-Come, First-Served) 先来先服务

    • 定义:按作业到达的顺序依次调度,不考虑作业的执行时间或优先级。
    • 示例:假设有三个作业A、B、C按顺序到达,执行时间分别为4、3、5。则FCFS按A -> B -> C的顺序执行,完成顺序与到达顺序相同。
  2. RR (Round Robin) 时间片轮转

    • 定义:按时间片轮流执行,每个作业在完成一个时间片后,如果未完成,则让给下一个作业。适合交互式系统。
    • 示例:假设有三个作业A、B、C,到达时的执行时间分别为4、3、5,时间片为1。A执行1个时间片后让位给B,B执行1个时间片后让位给C,再轮到A,以此循环直到作业完成。
  3. SJF (Shortest Job First) 最短作业优先

    • 定义:选择执行时间最短的作业优先调度,减少整体等待时间。适用于作业长度已知的情况。
    • 示例:假设有三个作业A、B、C到达,执行时间分别为5、2、3,则SJF调度顺序为B -> C -> A,因为B的执行时间最短。
  4. 非抢占式优先级调度

    • 定义:按照作业的优先级顺序调度,优先级高的作业先执行;相同优先级的按到达顺序执行。
    • 示例:假设有三个作业A、B、C,优先级从高到低依次为B、A、C,执行时间分别为4、3、5。则调度顺序为B -> A -> C,因为B的优先级最高。

在此问题中,我们有5个作业按优先级到达处理机并需要完成的时间和优先级分别如表所示。不同的调度算法将影响每个作业的执行顺序,从而影响平均周转时间和平均带权周转时间。我们将针对每种调度算法(FCFS, RR(时间片为1), SJF, 非抢占式优先级调度)逐一计算周转时间和带权周转时间。

例题

作业执行时间优先级
1103
211
323
414
552

1. FCFS(First-Come, First-Served)先到先服务

按到达顺序执行作业,执行顺序:1, 2, 3, 4, 5。

作业到达时间执行时间完成时间周转时间(完成时间 - 到达时间)带权周转时间(周转时间 / 执行时间)
101010101.0
201111111.0
30213136.5
401141414.0
50519193.8
  • 平均周转时间 = (10 + 11 + 13 + 14 + 19) / 5 = 67 / 5 = 13.4
  • 平均带权周转时间 = (1.0 + 11.0 + 6.5 + 14.0 + 3.8) / 5 = 36.3 / 5 = 7.26

2. RR(Round Robin)时间片轮转(时间片为1)

每个作业按时间片1轮流执行,直到完成。

时间执行的作业当前作业剩余执行时间
0-119
1-220 (完成)
2-331
3-440 (完成)
4-554
5-618
6-730 (完成)
7-853
8-917
9-1052
10-1116
11-1251
12-1315
13-1450 (完成)
14-2010 (完成)

计算周转时间:

作业完成时间周转时间带权周转时间
120202.0
2222.0
3773.5
4444.0
514142.8
  • 平均周转时间 = (20 + 2 + 7 + 4 + 14) / 5 = 47 / 5 = 9.4
  • 平均带权周转时间 = (2.0 + 2.0 + 3.5 + 4.0 + 2.8) / 5 = 14.3 / 5 = 2.86

3. SJF(Shortest Job First)最短作业优先

按作业执行时间从短到长依次执行,执行顺序:2, 4, 3, 5, 1。

作业执行时间完成时间周转时间带权周转时间
21111.0
41222.0
32442.0
55991.8
11019191.9
  • 平均周转时间 = (1 + 2 + 4 + 9 + 19) / 5 = 35 / 5 = 7.0
  • 平均带权周转时间 = (1.0 + 2.0 + 2.0 + 1.8 + 1.9) / 5 = 8.7 / 5 = 1.74

4. 非抢占式优先级调度

按优先级从高到低调度作业,优先级顺序:2, 5, 1, 3, 4。

作业执行时间完成时间周转时间带权周转时间
21111.0
55661.2
11016161.6
3218189.0
41191919.0
  • 平均周转时间 = (1 + 6 + 16 + 18 + 19) / 5 = 60 / 5 = 12.0
  • 平均带权周转时间 = (1.0 + 1.2 + 1.6 + 9.0 + 19.0) / 5 = 31.8 / 5 = 6.36

结果汇总

调度算法平均周转时间平均带权周转时间
FCFS13.47.26
RR(时间片为1)9.42.86
SJF7.01.74
非抢占式优先级12.06.36

从结果中可以看出,SJF 算法在平均周转时间和平均带权周转时间方面表现最佳,而 FCFS 算法由于简单,但在平均周转时间和带权周转时间上表现较差。RR 算法能较好地平衡各作业的响应时间,但在周转时间上表现不如 SJF。


http://www.mrgr.cn/news/63403.html

相关文章:

  • 10 大元素打造的极简主义画卷,究竟藏着什么秘密?(建议收藏)
  • cad刷新快捷键是什么及如何使用?
  • SSRF服务端请求伪造漏洞——POST请求
  • 高并发设计模式之ForkJoin模式
  • ubuntu基于docker-compose部署mysql5.7和mysql8.0
  • 算法2(C++实现)
  • uniapp MD5加密
  • [ComfyUI]Flux TTP分块高清放大技术,效果炸裂
  • 江协科技STM32学习- P29 实验- 串口收发HEX数据包/文本数据包
  • vue3官方示例-简单的 markdown 编辑器。
  • 众测一路追到供应链
  • 阿里巴巴独家的SpringCloud Alibaba学习笔记,面面俱到,太全了
  • springboot志愿者在线辅助学习系统-计算机毕业设计源码01048
  • RTPS发布订阅一条消息流程
  • SpringBoot中扩展Druid的过滤器实现完整的SQL打印
  • Java中I/O系统处理流的使用
  • Java EasyExcel 导出报内存溢出如何解决
  • WSGI、uwsgi、uWSGI与Nginx
  • sqoop问题汇总记录
  • <实用干货>临床试验数据信息查询--中国临床试验数据库
  • 牛客网最新Java高频面试题汇总(2024最新含答案)
  • Rust 力扣 - 189. 轮转数组
  • ^M 字符处理
  • GaussDB Ustore存储引擎解读
  • Google Play商店中的类似应用:它们对ASO优化重要吗?
  • go-zero 的使用