[FreeVMS] pager question
Guido
guidoj at users.sourceforge.net
Sat Jun 29 21:02:34 CEST 2013
On Saturday 29 June 2013 18:10:16 BERTRAND Joël wrote:
> When a process try to access to a unmapped page, it generates a
> pagefault IPC. This IPC is received by an event handler loop in its
> parent (for example, PAGER.SYS sends L4_PAGEFAULT IPC to VMSKERNEL.SYS
> and all IPC are caught in sys/sys_loop.c).
>
> Child process does not know if its request can or will be done. It only
> sends L4_PAGEFAULT IPC to its parent and waits for an answer. This
> answer can be a new L4_MapItem() or a L4_AbortIpc_and_stop(). Thus, I
> don't see why we need to separate L4_PAGEFAULT IPC in two IPC calls.
The question is if the the process should try to access an unmapped page if it
actually tries to allocate memory. Shouldn't the process try to request more
pages first and wait for them to be mapped into its address space before it
tries to access them?
It seems to me that this makes the pagefault handling algorithm needlessly
complex. The algorithm could as simple as "if the page is mapped, load it from
cache or swap, otherwise kill the process". A pagefault should be an exception
not a function.
IMHO a page fault and a memory request are completely different and should not
be combined into one IPC call. I'm afraid that combining them will in de long
run this only hurt reliability, stability and maintainability of the OS.
Regards,
Guido
More information about the FreeVMS
mailing list