多级反馈队列调度算法是一种基于多个队列和反馈机制的调度算法。该算法将进程分为多个队列,每个队列都有自己的优先级。进程首先被放入最高优先级的队列中,如果进程能够在该队列中运行完毕,则被从队列中移除。进程在每个队列中运行的时间片长度是可变的,如果在一个队列中运行的时间过长,则进程的优先级会降低,被移到更低的队列中。反之,如果进程在一个队列中运行的时间很短,则其优先级会提高,被移到更高的队列中。以下是该算法的Python代码示例:

def multilevel_feedback_queue(processes, timeslices):
    queues = []  # create multiple queues
    for i in range(len(timeslices)):
        queues.append([])

    for i in range(len(processes)):
        queues[0].append(processes[i])  # add process to the highest priority queue

    for i in range(len(timeslices)):
        for j in range(len(queues[i])):
            if queues[i][j]["burst"] > timeslices[i]:
                queues[i + 1].append({"name": queues[i][j]["name"], "burst": queues[i][j]["burst"] - timeslices[i]})
            else:
                print("Process", queues[i][j]["name"], "completed.")

    print("All processes completed.")

# Example usage
processes = [{"name": "P1", "burst": 20}, {"name": "P2", "burst": 15}, {"name": "P3", "burst": 25}]
timeslices = [10, 15, 20]
multilevel_feedback_queue(processes, timeslices)