1 / 17

Exokernel: An Operating System Architecture for Application-Level Resource Management

Dawson R. Engler, M. Frans Kaashoek, and James O'Tool Jr. M.I.T Laboratory for Computer Science Cambridge, MA 02139, U.S.A Presented by Jennifer Minor. Exokernel: An Operating System Architecture for Application-Level Resource Management. What is a Kernel?. Definition from wiktionary.org:

kendalli
Download Presentation

Exokernel: An Operating System Architecture for Application-Level Resource Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dawson R. Engler, M. Frans Kaashoek, and James O'Tool Jr. M.I.T Laboratory for Computer Science Cambridge, MA 02139, U.S.A Presented by Jennifer Minor Exokernel: An Operating System Architecture for Application-Level Resource Management

  2. What is a Kernel? Definition from wiktionary.org: • The core, center, or essence of an object or system. • (computing) The central part of many computer operating systems which manages the system's resources and the communication between hardware and software components. So what is an Exokernel?

  3. A Monolithic Kernel is... • All operating system services run in kernel mode. • Single address space. • High level abstractions given to application. • Must support a wide range of applications. • Slow to change. • System Calls are expensive.

  4. A Microkernel is... • Separate mechanism from policy. • Only lower level mechanisms are supported in kernel mode. (Address space management, scheduling and basic IPC)‏ • Policies are implemented in user level which are easier to change. • Kernel must protect servers from each other. • Good protection but has to use IPC to communicate.

  5. So an Exokernel is... • Similar to microkernel in that only minimum functionality is in the kernel. • Unlike the microkernel it exports hardware resources rather than emulating them. • Physical resources are safely allocated to the application, where it can be managed. • All abstractions are implemented in application-level or as part of a library OS that is part of the application address space.

  6. Exokernel ArchitectureGoal: Separate protection from management. 1. Low-level interface: Provide simple and efficient primitives. 2. Multiplex resources: Securely and fine-grained. 3. Limit management to protection: Protect without specific usage knowledge of resource. 4. Export hardware resources: Expose hardware and kernel data structures. 5. Notify Application: Event notifications and visible resource revocation.

  7. Exporting Resources Securely 1. Secure Bindings • Hardware mechanisms • Software caching • Downloading application code 2. Visible Resource Revocation • Application level guided deallocation • Application specific knowledge of state needed to be saved • Application notification that resources are scarce 3. Abort Protocol • Mechanism for kernel to force-ably take back resources. • Still notifies application after the fact.

  8. Aegis: an Exokernel • Guaranteed Mappings Holds application data and code in memory. Also allows each application a small number of pinned virtual addresses. • Dynamic Code Generation Creation of executable code at runtime. Used by the network subsystem to download filters for demultiplexing messages. • Protected Control Transfers Changes the program counter to callee, donates current time slice to callee's processor environment and switches to the callee's context. User level efficient IPC abstraction can easily be built on top of PCT's. • Processor Time Slicing Represents CPU as a linear vector partitioned time slices that can be allocated by the application. • Timer Interrupts Denote the beginning and end of a time slice to the user-level code where scheduler activations can be implemented. • Processor Environments Structures that store information needed to deliver events to applications. (Upcalls)‏ • STLB A large software TLB is over the hardware TLB and can be used on a cache miss to map address.

  9. Aegis: Events Four Types: Exceptions, Interrupts, Protect Control Transfers and Address Translations Event Handler Contexts Include: • Program counter to jump to on event. • Memory location to save registers. • Additional status registers are needed for timer interrupts and tlb misses. • What happens on a hardware exception? • Aegis saves three scratch registers into the “save-area”. • Loads the exception program counter, the last virtual address translation and cause. • Performs a indirect jump into an applications-specified program counter. • Note: After handling the exception the application can resume execution without going back to the kernel. Special event handlers have to be defined for start-time-slice, end-time-slice, asynchronous control transfers, and synchronous control transfers.

  10. Aegis: Performance Why is performance so much better on Aegis? • Kernel data structures are not mapped. No need to worry about a interrupted TLB miss. • Two paths for system calls, one for calls that require a stack and a second for ones that do.

  11. ExOS: a Library Operating System Implements traditional operating system abstractions at the application level, since it runs in the applications address space. • Fault Isolation • Each application runs in it's own address space. • Efficient • No protection domain crossing to manage resources after they have been allocated. • System calls are near procedure call speed. • Extensible • Policies can be altered at application level. • IPC abstraction • Built on top of protected control transfers. • Virtual Memory • Using low-level hardware abstractions ExOS provides a rudimentary VM system. • Remote Communications • Downloading code into the kernel allows the demultiplexing of the messages without a context switch.

  12. ExOS: IPC Performance • ExOS built a lrpc abstraction on top of the low-level protected procedure call interface given by Aegis. • Ultrix does not currently have a lrpc implementation to add new functionality it would need to build on top of one of the existing high-level abstractions such pipes.

  13. ExOS: VM Performance • Kernel transitions can be eliminated by implementing abstractions at application level. • Application-level software can implement functionality that is frequently not provided by traditional operating system.

  14. ExOS: Application-Specific Safe Handlers • ASH: Untrusted application-level message-handlers that are downloaded into the kernel, made safe with code inspection and sand boxing. • Reduces intermediate copies of message. • Can integrate check summing in transfer mechanism. • Low-latency message replies • Control initiation Roundtrip Latency (microseconds)‏ Number of Processes

  15. Why are Exokernels important? • Fixed high level abstractions hurt application performance • Fixed high level abstractions hide information • Fixed high level abstractions limit the functionality "Because all applications must share the core abstractions, changes to core abstractions occur rarely, if ever. This is perhaps why few good ideas from the last decade of operating systems research have been adopted into widespread use. What operating systems support scheduler activations [3], multiple protection domains within a single address space [10], efficient IPC [29], or efficient and flexible virtual memory primitives [4, 21, 25]?”

  16. Exokernel Design Proves: • Resources can be securely partitioned with low overhead • Low-level interfaces and exposed kernel data structure can produce efficient implementation due to simplicity • Downloadable application code into the kernel increase performance and responsiveness • Library Operating Systems provide extensible and customizable services at application level.

  17. References • MIT Exokernel Operating System http://pdos.csail.mit.edu/exo.html • Wikipedia: Exokernel http://en.wikipedia.org/wiki/Exokernel • Wikipedia: Kernel (computer science) http://en.wikipedia.org/wiki/Kernel_%28computer_science%29 • Wikipedia: MicroKernel http://en.wikipedia.org/wiki/Microkernel • Wikipedia: Monolithic Kernel http://en.wikipedia.org/wiki/Monolithic_kernel • Wiktionary: kernel http://en.wiktionary.org/wiki/kernel

More Related