140 likes | 297 Views
D.R. Engler, F. Kaashoek and J. O'Toole, Exokernel: An Operating System Architecture for Application-Level Resource Management, In Proc. of the 15th ACM Symposium on Operating System Principles, Dec. 1995. Presenter: John Otto.
E N D
D.R. Engler, F. Kaashoek and J. O'Toole, Exokernel: An Operating System Architecture for Application-Level Resource Management, In Proc. of the 15th ACM Symposium on Operating System Principles, Dec. 1995. Presenter: John Otto Exokernel: An Operating System Architecture for Application-Level Resource Management
Outline • Overview • Why Ultrix? • Motivation • Design Goals • Exokernel / Aegis • App Level Library OS / ExOS • Related Work • Discussion
Overview • Exokernel (Aegis): barebones system resource management • Application level library operating system (ExOS): implement customized higher level OS functions • Emphasis on increased virtual memory and IPC performance in comparison to Ultrix
Why Ultrix? • Ultrix and Aegis both developed for and run on DEC platform • Ultrix implements System V IPC—good for comparative performance tests • BSD-based systems tend to be more research-oriented
Motivation • Core abstractions: e.g. files, processes • Core abstractions can make development of certain applications difficult: • Hiding knowledge/implementation of the hardware • Example: LRU page replacement with database • Ongoing issue: • Current core abstractions are so heavily relied upon that it's difficult for new ideas or abstractions to gain a foothold in popular OSes
Design Goals • Goal: securely manage resources • Methods: • Expose hardware names and information to application, allowing “informed” application resource management • Event system for application notification • Enforce access to system resources • Use Secure Binding to give exclusive control of resources to an application
Exokernel / Aegis • Revocation • Comparison Claims and Costs • Exceptions • Supporting Application Virtual Memory
Revocation • “invisible”: no OS communication with application; it is likely unaware of the loss of resources • unaware when resources are scarce • “visible”: dialogue between exokernel and application • 1: Request to application: “asking nicely” • 2: Imperative to application: “demand” • 3: Abort Protocol • Repossession Exception passed to application
Comparison Claims and Costs • Argument: fair comparison between Aegis and Ultrix • Ultrix has the advantage with larger cache, more tuned OS • Typical result: Aegis is at least an order of magnitude faster than Ultrix • Doubts: While Aegis is faster without any high-level OS extensions, will this improved performance be paralleled in higher-level OS functionality?
Exceptions • 1: Application's exception handling code is invoked • 2: After handling the exception, application continues to run • Comparison to Explicit Checks • Require portable, correct compiler • Not as efficient as Aegis's simple exceptions
Supporting ApplicationVirtual Memory • Virtual Memory Address Space “Sectors” • 1: Application data • 2: Exception handling code • Exception handling sector can be pinned down, or Aegis can handle a cache miss • Prevents application's access of exception code from generating yet another exception from cache miss • Software TLB used as second level cache
App Level Library OS / ExOS • IPC • pipe: send message between processes; yield call used to transfer control • shmem: increment counters in shared memory • lrpc: remote procedure call • Note: Ultrix couldn't perform many of these tests by the same mechanism • Virtual Memory • Current implementation limitations: • No swapping • Page tables as linear vector • Tuning, improved implementation should increase performance
Related Work • Comparison to VM/370 OS • VM/370 implements an entire virtual machine • Costly and inefficient • Exokernel only implements hardware interface • Gives direct control of hardware to applications • Simple and efficient • Cache Kernel • Focuses on reliability, not efficiency • Still mostly qualifies as an “exokernel”
Discussion / Questions • Virtual Machines vs. Exokernels • Optimizing app level OS libraries for a particular application; conflicting goals? • Exokernel focus on customizability? How important is the improved performance? • Given variability of hardware, is the exokernel idea feasible? • What is the target audience of exokernels?