kernel - Page Fault Exception Handlers and Updating Page Tables -


in reading how page faults , page hits handled page fault exception handler, 1 thing wasn't clear me. if process using shared page , page fault happens, when page fault exception handler updates page table entry in page table process caused page fault, update page table entries in of other processes share same page? reading on topic seems updates page table entry in page table faulting process how other processes know that page has been paged in? in advance!

this 1 of issues have address in design of memory manager. 1 possible design have shadow pte every page can shared. when process faults on shared page, memory manager checks shadow pte. if shadow pte not resident, handles page fault in normal way, updating both faulting processes pte , shadow pte when page available. if shadow pte resident copies shadow pte process pte. way process ptes updated when process touches page. how think windows - knowledge of linux limited, since every page in linux process can shared @ time (due fork) expect have different way of doing things handle sharing without having have shadow ptes every single page in system.

in model, cleverness needed if have asynchronous page fault handling, since need handle case process faults on page while being faulted in. need handle paging out case. in case need go through every process has page in working set , remove it, may require ipi's , book keeping.


Comments

Popular posts from this blog

java - Jmockit String final length method mocking Issue -

asp.net - Razor Page Hosted on IIS 6 Fails Every Morning -

c++ - wxwidget compiling on windows command prompt -