Operating Systems
CS 273 (OS), Fall 2020
Page fault handling
Hardware trap to kernel; save some state
TO UPDATE: Save some process state; call OS (
)arch/i386/mm/fault.c:do_page_fault()
TO UPDATE: OS finds desired VPN (
mm/swap.c
)TO UPDATE: Check validity and protection of VPN. Get free page frame (
mm/page_alloc.c
)TO UPDATE: If page frame is dirty, page out (
) and block process. Reserve that page framemm/page_io.c:rw_swap_page()
TO UPDATE: Get page from disk (
ormm/page_io.c:rw_swap_page()
) (block the process)rw_swap_page_nolock()
Update page tables, mark page frame as being in use
Instruction backup
TO UPDATE: Schedule the process (
kernel/sched.c
)Restore process state; continue execution