______ Operating Systems (CS 273 (OS), Fall 2020)
Home
>>    




Operating Systems

CS 273 (OS), Fall 2020

Page fault handling

  1. Hardware trap to kernel; save some state

  2. TO UPDATE: Save some process state; call OS (arch/i386/mm/fault.c:do_page_fault())

  3. TO UPDATE: OS finds desired VPN (mm/swap.c)

  4. TO UPDATE: Check validity and protection of VPN. Get free page frame (mm/page_alloc.c)

  5. TO UPDATE: If page frame is dirty, page out (mm/page_io.c:rw_swap_page()) and block process. Reserve that page frame

  6. TO UPDATE: Get page from disk (mm/page_io.c:rw_swap_page() or rw_swap_page_nolock()) (block the process)

  7. Update page tables, mark page frame as being in use

  8. Instruction backup

  9. TO UPDATE: Schedule the process (kernel/sched.c)

  10. Restore process state; continue execution