# HG changeset patch # User Paul Boddie # Date 1680101988 -7200 # Node ID 18b61314880961a208b6822c0155f376eb5c7d2d # Parent d16654d84235b896d15daaa10b61a37b4f397de0 Added notes about program initialisation and the use of external pagers. diff -r d16654d84235 -r 18b613148809 docs/wiki/Program_Loading --- a/docs/wiki/Program_Loading Wed Mar 29 16:59:10 2023 +0200 +++ b/docs/wiki/Program_Loading Wed Mar 29 16:59:48 2023 +0200 @@ -7,6 +7,16 @@ fault handler configured to provide program file content whenever a region of the program payload is encountered that is not currently resident in memory. +<> + +== Program Initialisation == + +To load and initialise a program, a new task must be created, defining a +separate address space for the program and allowing it to operate +independently of other programs. For a program to actually run, a thread of +execution must be created so that the program's instructions can be read and +processed. + == Internal Page Fault Handlers == When satisfying page faults for a task, one approach involves situating the @@ -86,8 +96,7 @@ == External Page Fault Handlers == -Another approach that may be used to support an internal page fault handler -deployed in a task is to employ an external page fault handler in the creating +Another approach is to employ an external page fault handler in the creating task. When a page fault occurs, the external handler ensures that the appropriate content has been brought into its own memory space. It then returns a flexpage from the handler routine to resolve the fault. @@ -168,6 +177,11 @@ ######## +This arrangement may be used to support a program deployed in a task. Since an +internal page fault handler is just another kind of program, this external +pager arrangement can be constrained to only supporting an internal page fault +handler deployed in a task. + == Configuring Programs == To provide an internal page fault handler alongside an actual program to be