介绍
最高响应比优先算法(Highest Response Rate First,HRRF) 是一种对CPU中央控制器响应比的分配的一种算法。是介于先来先服务和最短进程优先算法之间的折中算法
算法思想
总是调度响应比最大的进程
性能
先来先服务和最短进程优先算法的折中
响应比
响应比Rp = (等待时间 + 预计运行时间)/预计运行时间 = 1 + 等待时间/预计运行时间 = 周转时间/预计运行时间
周转时间
周转时间 = 完成时间 - 到达时间
带权周转时间
带权周转时间 = 周转时间 / 运行时间
平均周转时间
平均周转时间 = 进程周转总时间 / 进程个数
平均带权周转时间
平均周转时间 = 进程带权周转总时间 / 进程个数
等待时间
等待时间 = 最后一个的完成时间 - 该进程的到达时间
例题1
采用: 1 + (等待时间 / 运行时间) = 响应比
进程 | 提交时间 | 执行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|
P1 | 10.0 | 2.0 | ||
P2 | 10.2 | 1.0 | ||
P3 | 10.4 | 0.5 | ||
P4 | 10.5 | 0.3 |
先执行P1
进程 | 提交时间 | 执行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|
P1 | 10.0 | 2.0 | 12.0 | 2.0 |
P2 | 10.2 | 1.0 | ||
P3 | 10.4 | 0.5 | ||
P4 | 10.5 | 0.3 |
响应比:
P2 = 1 + (12.0 - 10.2) / 1.0 = 2.8
P3 = 1 + (12.0 - 10.4) / 0.5 = 4.2
P4 = 1 + (12.0 - 10.5) / 0.3 = 6
所以P4先执行
进程 | 提交时间 | 执行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|
P1 | 10.0 | 2.0 | 12.0 | 2.0 |
P2 | 10.2 | 1.0 | ||
P3 | 10.4 | 0.5 | ||
P4 | 10.5 | 0.3 | 12.3 | 1.8 |
响应比:
P2:1 + (12.3 - 10.2) / 1.0 = 3.1
P3:1 + (12.3 - 10.4) / 0.5 = 4.8
P3先执行
进程 | 提交时间 | 执行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|
P1 | 10.0 | 2.0 | 12.0 | 2.0 |
P2 | 10.2 | 1.0 | 13.8 | 3.6 |
P3 | 10.4 | 0.5 | 12.8 | 2.4 |
P4 | 10.5 | 0.3 | 12.3 | 1.8 |
例题2
进程 | 提交时刻 | 运行时间 | 开始时刻 | 完成时刻 | 周转时间 |
---|---|---|---|---|---|
P1 | 8 : 00 | 2.0 | 8 : 00 | ||
P2 | 8 : 50 | 0.5 | |||
P3 | 9 : 00 | 0.1 | |||
P4 | 9 : 50 | 0.2 |
先执行P1
进程 | 提交时刻 | 运行时间 | 开始时刻 | 完成时刻 | 周转时间 |
---|---|---|---|---|---|
P1 | 8 : 00 | 2.0 | 8 : 00 | 10 :00 | 2.0 |
P2 | 8 : 50 | 0.5 | |||
P3 | 9 : 00 | 0.1 | |||
P4 | 9 : 50 | 0.2 |
响应比:
8 : 50 = 8 : 00 + (50 / 60) = 8 : 83
P2:1 + (10 : 00 - 8 : 83) / 0.5 = 3.34
P3: 1 + (10 : 00 - 9 : 00) / 0.1 = 11
P4: 1 + (10 :00 - 9 :83) / 0.2 = 1.85
P3先执行
进程 | 提交时刻 | 运行时间(时) | 开始时刻 | 完成时刻 | 周转时间 |
---|---|---|---|---|---|
P1 | 8 : 00 | 2.0 | 8 : 00 | 10 :00 | 2.0 |
P2 | 8 : 50 | 0.5 | |||
P3 | 9 : 00 | 0.1 | 10 :00 | 10 : 06 | 1 :06 |
P4 | 9 : 50 | 0.2 |
响应比:
P2:1 + (10 : 06 - 8 : 50) / 0.5 = 4.12
P3: 1 + (10 : 06 - 9 : 50) / 0.2 = 3.18
P2先执行
进程 | 提交时刻 | 运行时间(时) | 开始时刻 | 完成时刻 | 周转时间 |
---|---|---|---|---|---|
P1 | 8 : 00 | 2.0 | 8 : 00 | 10 :00 | 2.0 |
P2 | 8 : 50 | 0.5 | 10 :06 | 10 :36 | 1.86 |
P3 | 9 : 00 | 0.1 | 10 :00 | 10 :06 | 1.06 |
P4 | 9 : 50 | 0.2 | 10 :36 | 10 :48 | 0.98 |
例题3
采用:等待时间 + 运行时间 / 运行时间 = 响应比
进程 | 到达时间 | 运行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|
P1 | 0 | 10 | 10 | 10 |
P2 | 1 | 1 | ||
P3 | 2 | 2 | ||
P4 | 3 | 1 | ||
P5 | 4 | 5 |
响应比:
P2:(9 + 1) / 1 = 10
P3: (8 + 2) / 2 = 5
P4: (7 + 1) / 1 = 8
P5: (6 + 5) / 5 = 2.2
P2先执行
进程 | 到达时间 | 运行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|
P1 | 0 | 10 | 10 | 10 |
P2 | 1 | 1 | 11 | 10 |
P3 | 2 | 2 | ||
P4 | 3 | 1 | ||
P5 | 4 | 5 |
响应比:
P3: (9 + 2) / 2 = 5.5
P4: (8 + 1) / 1 = 9
P5: (7 + 5) / 5 = 2.4
P4先执行
进程 | 到达时间 | 运行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|
P1 | 0 | 10 | 10 | 10 |
P2 | 1 | 1 | 11 | 10 |
P3 | 2 | 2 | ||
P4 | 3 | 1 | 12 | 9 |
P5 | 4 | 5 |
响应比:
P3: (10 + 2) / 2 = 6
P5: (8 + 5) / 5 = 2.6
P3先执行
进程 | 到达时间 | 运行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|
P1 | 0 | 10 | 10 | 10 |
P2 | 1 | 1 | 11 | 10 |
P3 | 2 | 2 | 14 | 12 |
P4 | 3 | 1 | 12 | 9 |
P5 | 4 | 5 | 19 | 15 |