White RoomNEW

Valid But Not Present

A page table entry carries a valid bit and a present bit, and the hardware treats them differently:

PTE = AccessMemory(PTEAddr)
if (PTE.Valid == False)
    RaiseException(SEGMENTATION_FAULT)
else if (PTE.Present == True)
    TLB_Insert(VPN, PTE.PFN, PTE.ProtectBits); RetryInstruction()
else
    RaiseException(PAGE_FAULT)

A process calls mmap for a 4 GB file on a machine with 8 GB of RAM, then writes one byte in the middle of the mapping. Which description matches what the bits say?