你等的时候我干
(任务模型:每个任务写成 (名字, 算的格数, 等的格数)——「算」要占处理器,「等」是等磁盘或网络回话,不占处理器。「算账」的三个任务:核对算 4 等 0,写盘算 1 等 3,心跳算 1 等 5。)
让「等」和别人的「算」重叠:处理器一次只算一格,等的格子不占处理器。最理想时总时间是「算的总格数」和「最长的一个任务」里大的那个。看它是多少、省了几格:
TASKS = [("核对", 4, 0), ("写盘", 1, 3), ("心跳", 1, 5)]
cpu_total = sum(c for _, c, _ in TASKS)
longest = max(c + w for _, c, w in TASKS)
best = max(cpu_total, longest)
serial = sum(c + w for _, c, w in TASKS)
print(str(cpu_total) + "/" + str(longest) + "/" + str(best) + "/" + str(serial - best))
全部评论