Question

    Given the following code snippet implementing a Round Robin CPU scheduling algorithm, what will be the output when the processes are scheduled?

    def round_robin(processes, burst_time, quantum):

        n = len(processes)

        waiting_time = [0] * n

        remaining_time = burst_time[:]

        t = 0

        while True:

            done = True

            for i in range(n):

                if remaining_time[i] > 0:

                    done = False

                    if remaining_time[i] > quantum:

                        t += quantum

                        remaining_time[i] -= quantum

                    else:

                        t += remaining_time[i]

                        waiting_time[i] = t - burst_time[i]

                        remaining_time[i] = 0

            if done:

                break

        return waiting_time

    processes = [1, 2, 3]

    burst_time = [10, 5, 8]

    quantum = 2

    waiting_time = round_robin(processes, burst_time, quantum)

    print(waiting_time)

    A [12, 3, 6] Correct Answer Incorrect Answer
    B [14, 5, 8] Correct Answer Incorrect Answer
    C [10, 2, 4] Correct Answer Incorrect Answer
    D [9, 1, 2] Correct Answer Incorrect Answer
    E [0, 0, 0] Correct Answer Incorrect Answer

    Solution

    The Round Robin scheduling algorithm allocates a fixed time quantum to each process. In the given example, three processes have burst times of 10, 5, and 8, respectively. With a time quantum of 2, each process is executed in turn until all are completed. The waiting times for each process are calculated as follows: • Process 1: Waiting time = Total time elapsed - Burst time = 20 - 10 = 12 • Process 2: Waiting time = 5 - 5 = 3 • Process 3: Waiting time = Total time elapsed - Burst time = 20 - 8 = 6 Thus, the output is [12, 3, 6]. Why Other Options Are Wrong: B) [14, 5, 8]: This option is incorrect as it does not accurately reflect the waiting times computed in the Round Robin scheduling. C) [10, 2, 4]: This option is incorrect because it implies significantly lower waiting times than calculated. D) [9, 1, 2]: This option is incorrect as it underestimates the waiting times based on the execution order. E) [0, 0, 0]: This option is incorrect as it assumes no waiting time at all, which is not the case.

    Practice Next

    Relevant for Exams: