50%(2)1 out of 2 people found this document helpful
This preview shows page 8 - 10 out of 16 pages.
Afterprocessing an exception,applications can immediatelyresumeexecution without entering the kernel. Ensuring that applicationscan 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-accessiblememory locations.Currently, Aegis dispatches exceptions in 18 instructions. Thelow-level nature of Aegis allows an extremely efficientimplementa-tion: the time for exception dispatching on a DECstation5000/125is 1.5 microseconds. This time is over five times faster than themost highly-tuned implementation in the literature (8 microsec-onds on DECstation5000/200 , a machine that is 1.2 faster onSPECint92 than our DECstation5000/125). Part of the reason forthis improvement is that Aegis does not use mapped data structures,and so does not have to separate kernel TLB misses from the more8
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 asdistributed shared memory systems, persistent object stores, andgarbage collectors [5, 50].Table 5 shows exception dispatch times for unaligned pointeraccesses (unalign), arithmetic overflow (overflow), attempted useof the floating point co-processor when it is disabled (coproc) andaccess to protected pages (prot).The times forunalignare notavailable 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 thecoprocexception. Times are given inTable 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-levelvirtual memory: bootstrapping and efficiency. An exokernel mustprovide support for bootstrapping the virtual naming system (i.e.,itmust support translation exceptions on both application page-tablesand 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 byAegis. This organization frees the application from dealing withthe intricacies of boot-strapping TLB miss and exception handlers,which can take TLB misses. To implement guaranteed mappingsefficiently, an application’s virtual address space is partitioned intotwo segments. The first segment holds normal application data andcode. Virtual addresses in the segment can be “pinned” using guar-anteed mappings and typically holds exception handling code andpage-tables.