Afterprocessing an can immediatelyresume execution

This preview shows page 8 - 10 out of 16 pages.

Afterprocessing an exception,applications can immediatelyresume execution without entering the kernel. Ensuring that applications can return from their own exceptions (without kernel intervention) requires that all exception state be available for user reconstruction. This means thatallregisters thatare saved mustbe in user-accessible memory locations. Currently, Aegis dispatches exceptions in 18 instructions. The low-level nature of Aegis allows an extremely efficientimplementa- tion: the time for exception dispatching on a DECstation5000/125 is 1.5 microseconds. This time is over five times faster than the most highly-tuned implementation in the literature (8 microsec- onds on DECstation5000/200 [50], a machine that is 1.2 faster on SPECint92 than our DECstation5000/125). Part of the reason for this improvement is that Aegis does not use mapped data structures, and so does not have to separate kernel TLB misses from the more 8
general class of exceptions in its exception demultiplexing rou- tine. Fast exceptions enable a number of intriguing applications: efficient page-protection traps can be used by applications such as distributed shared memory systems, persistent object stores, and garbage collectors [5, 50]. Table 5 shows exception dispatch times for unaligned pointer accesses ( unalign ), arithmetic overflow ( overflow ), attempted use of the floating point co-processor when it is disabled ( coproc ) and access to protected pages ( prot ). The times for unalign are not available under Ultrix since the kernel attempts to “fix up” an un- aligned accessand writes an error message to standard error. Addi- tionally, Ultrix does not allow applications to disable co-processors, and hence cannot utilize the coproc exception. Times are given in Table 5. In each case, Aegis’s exception dispatch times are approx- imately two orders of magnitude faster than Ultrix. This section looks at two problems in supporting application-level virtual memory: bootstrapping and efficiency. An exokernel must provide support for bootstrapping the virtual naming system ( i.e., it must support translation exceptions on both application page-tables and exception code). Aegis provides a simple bootstrapping mech- anism through the use of a small number of guaranteed mappings. A miss on a guaranteed mapping will be handled automatically by Aegis. This organization frees the application from dealing with the intricacies of boot-strapping TLB miss and exception handlers, which can take TLB misses. To implement guaranteed mappings efficiently, an application’s virtual address space is partitioned into two segments. The first segment holds normal application data and code. Virtual addresses in the segment can be “pinned” using guar- anteed mappings and typically holds exception handling code and page-tables.

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture