一个核轮流切
一口锅,三个菜轮着炒
(只看「算」的格数:核对 4、写盘 1、心跳 1。处理器一次算一格。)
round_robin 模拟一个核按时间片轮流:每次给一个任务算一格,轮完一圈再来。看处理顺序和总格数:
JOBS = [("核对", 4), ("写盘", 1), ("心跳", 1)]
def round_robin(jobs, quantum):
left = {name: n for name, n in jobs}
order = []
while any(left.values()):
for name, _ in jobs:
if left[name] > 0:
step = min(quantum, left[name])
left[name] -= step
order.append(name)
return order
order = round_robin(JOBS, 1)
print(",".join(order) + "/" + str(len(order)))
全部评论