一个核轮流切

👁️ 2 人浏览 💬 0 人评论 ❤️ 添加收藏

一口锅,三个菜轮着炒

(只看「算」的格数:核对 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)))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论