DescriptionA keeper is a program that responds to faults generated by an executing program. In EROS, faults are of two types:
When a process attempts to execute an instruction that causes an
execution fault, the program is halted and the kernel invokes the
application's process keeper on it's behalf, passing
a message that encapsulates the fault information. The process
keeper is invoked with When a process accesses an invalid address, or performs a write
to a read-only address, the program is halted and the kernel invokes
the address space keeper associated with that address.
The address space keeper is invoked with Separation of execution and memory faults allows user-level applications to provide policies customarily implemented by the kernel. Such policies include
Faults that are handled by a keeper are transparent to the application. The application proceeds, restarting the instruction that generated the fault. Standard Address Space KeepersEROS provides two standard address space keepers:
Invocations on kept address spaces are reflected to their keeper, so in addition to fault handling, the keeper is responsible for providing the standard address space operations and (possibly) additional operations. Both the fresh address space and virtual copy address space keepers provide destroy, truncate, and shorten operations. Refer to the respective documentation pages for the request details. Standard Process KeepersEROS provides a standard process keeper supporting debugging services. This keeper provides emulation for any necessary coprocessor instructions, and invokes the EROS process debugger when a process fault occurs. Copyright 1998 by Jonathan Shapiro. All rights reserved. For terms of redistribution, see the GNU General Public License |