Question

    What will be the output of the following code snippet implementing the Least Recently Used (LRU) page replacement algorithm?

    def lru(pages, capacity):

        page_frame = []

        page_faults = 0

        for page in pages:

            if page not in page_frame:

                if len(page_frame) < capacity:

                    page_frame.append(page)

                else:

                    lru_page = min(page_frame, key=lambda p: pages.index(p))

                    page_frame.remove(lru_page)

                    page_frame.append(page)

                page_faults += 1

        return page_faults

    pages = [7, 0, 1, 2, 0, 3, 0, 4, 2, 3]

    capacity = 4

    faults = lru(pages, capacity)

    print(faults)

    A 7 Correct Answer Incorrect Answer
    B 5 Correct Answer Incorrect Answer
    C 8 Correct Answer Incorrect Answer
    D 6 Correct Answer Incorrect Answer
    E 4 Correct Answer Incorrect Answer

    Solution

    In the LRU page replacement algorithm, when a page fault occurs and the page is not in the page frame, the algorithm replaces the least recently used page. In the provided code, the sequence of page requests is [7, 0, 1, 2, 0, 3, 0, 4, 2, 3] with a capacity of 4. The pages that cause faults are 7, 0, 1, 2, 3, and 4, leading to a total of 6 page faults throughout the execution. Why Other Options Are Wrong: A) 7: This option is incorrect as it counts one additional fault that does not occur in the given page sequence. B) 5: This option is incorrect as it undercounts the number of faults that occur during the execution. C) 8: This option is incorrect as it overcounts the faults; only 6 pages lead to faults based on the implemented logic. E) 4: This option is incorrect because it suggests that only four pages caused faults, which does not reflect the sequence provided.

    Practice Next

    Relevant for Exams: