DATA STRUCTURES
🇬🇧UK Edition🇨🇦Canada Edition🌐Global Tech

Virtual Memory Management: LRU, FIFO, and Clock Page Replacement Algorithms

Dr. Alistair Vance
Dr. Alistair Vance
Principal CS Fellow
Updated 03/09/20266 min read0 views

Page Faults & Virtual Memory

When a requested virtual page is not present in physical RAM, a page fault triggers the OS to swap pages from secondary disk storage.

python
# Second-Chance (Clock) Page Replacement Simulator
def clock_page_replacement(pages, capacity):
    memory = [-1] * capacity
    use_bit = [0] * capacity
    pointer = 0
    page_faults = 0

    for page in pages:
        if page in memory:
            idx = memory.index(page)
            use_bit[idx] = 1
        else:
            page_faults += 1
            while use_bit[pointer] == 1:
                use_bit[pointer] = 0
                pointer = (pointer + 1) % capacity
            memory[pointer] = page
            use_bit[pointer] = 1
            pointer = (pointer + 1) % capacity

    return page_faults

print("Page Faults:", clock_page_replacement([1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5], 3))

Frequently Asked Questions (FAQ)

Q: What is Belady's Anomaly?

In FIFO page replacement, increasing page frames can paradoxically increase page fault count.

Dr. Alistair Vance
Written by Dr. Alistair VanceAdSense EEAT Verified

Principal CS Fellow. Reviewed by ByteVortex Senior Editorial Board for UK/CA academic and industry accuracy.