UAH CS 690 - Operating System Architectures

Unformatted text preview:

Operating System Architectures Kernel Design Microkernels Primary Reference On Kernel construction Jochen Liedtke Proc 15th ACM Symposium on Operating System Principles SOSP December 1995 Toward Real Microkernels Jochen Liedtke Communications of the ACM Sept 1996 vol 39 No 9 Properties of Monolithic OS All OS functionality is included in a single program address space UNIX Linux most commercial systems Strong points well understood good performance Problems kernel components aren t protected from each other not easily extended modified structure may be unclear Monolithic Structure from Tanenbaum Modern Operating Systems Main function OS services Utility functions MicroKernels Outline OS kernel is very small minimal functionality Other OS functions provided at user level by trusted servers User process trusted by kernel Advantages maintainability flexibility modularity Problems performance Microkernels from Tanenbaum Modern Operating Systems User User file process process server pager microkernel memory process server server User space Kernel space Approach The microkernel layer provides a set of minimal core services and is the interface to the hardware layer Other services drivers memory managers etc are implemented as separate modules with clearly defined interfaces Example Systems Windows NT introduced HAL layer to support hardware independence Other layers not very small Amoeba Tanenbaum s research based OS Chorus Mach CMU and DARPA was the basis for the MAC OS X and GNU HURD L4 is a family of publicly available microkernels Major Advantages Modularity Flexibility and extensibility Easier to replace modules fewer dependencies Different servers can implement the same service in different ways Safety each server is protected by the OS from other servers Servers are largely hardware independent Correctness Easier to verify a small kernel Servers are isolated errors in one don t affect others Major Disadvantages of Early Microkernels Slow due to cross domain information transfers Server to OS OS to server IPC is thought to be a major source of inefficiency Much faster to communicate between two modules that are both in OS Can MicroKernels Perform Well Jochen Liedtke argued that kernels could give the same level of performance as a traditional OS and conducted experiments using his kernels L3 and later L4 to prove his claim He claimed that 1st generation kernels were not implemented correctly e g many were just modifications of existing systems when it would be better to start from scratch kernel Concepts 1 He began by asking which primitives basic abstractions should be in a kernel Criterion a concept function should be in the kernel iff implementing it outside the kernel would prevent the system from working correctly Implication if it s possible to do something more than one way e g scheduling page replacement implement that something externally as a server kernel Concepts 2 Liedtke s set of kernel abstractions address spaces threads and very efficient thread communication IPC unique identifiers for communication To construct a full featured operating system provide user level services to complement the kernel services Flexibility To show that these basic concepts were sufficient he suggested how many basic OS functions could be implemented on top of the kernel Examples Memory manager pager Multimedia resource allocation Device drivers UNIX server Performance 1 Common belief poor kernel performance was due to excessive mode switches and context switches Liedtke demonstrated empirically that mode switching times could be improved by a factor of 6 10 in a well designed kernel He concluded that context switches and IPC could be implemented fast enough Performance 2 Mach showed poor memory system performance measured by MCPI memory cycle overhead per instruction Liedtke quoted measurements to show that the Mach kernel had a very large working set which occupied much of the cache leading to a high cache miss rate for user processes Conclusion performance due to poor kernel design not inherent to kernel concept Section 5 Non Portability First generation kernels were machineindependent built on top of a machine dependent layer like Microsoft HAL Liedtke argued for machine dependent systems Better able to optimize performance based on specific hardware features Able to avoid known hardware inefficiencies A single software layer is more efficient than a twolayer configuration L4 Was Machine Dependent The original L4 operating system was built for the 386 architecture Today L4 is a whole family of operating systems Not all are machine dependent Conclusions 1 kernels can provide higher layers with a minimal set of abstractions that are flexible enough to allow implementation of arbitrary operating systems and allow exploitation of a wide range of hardware Must choose the right abstractions Existing kernels chose poorly or too many or too specialized Conclusions 2 similar to optimizing code generators kernels must be constructed per processor and are inherently not portable Poor performance in kernels is due in part to inefficient implementations poor choice of data structures and algorithms they aren t tuned to the processor s needs Conclusions 3 His design shows that it is possible to achieve well performing kernels through processor specific implementations of processor independent abstractions Operating System Architectures Kernel Design Extensible Operating Systems References Exokernel an Operating System Architecture for Application Level Resource Management Dawson R Engler M Frans Kaashoek and James O Toole jr Proc of the 15th ACM Symposium on Operating Systems Principles SOSP 95 December 1995 Extensibility Safety and Performance in the SPIN Operating System Brian N Bershad Stefan Savage Przemyslaw Pardyak Emin Gun Sirer Mar E Fiuczynski David Becker Craig Chambers Susan Eggers Proc of the 15th ACM Symposium on Operating Systems Principles SOSP 95 December 1995 Hierarchy of Communication Mechanisms Fastest to Slowest Function calls within same process System calls mode switch Context Switch process switch IPC between processes message passing on the same or different machines Motivation for Extensibility The traditional OS provides various abstractions of system resources virtual address spaces processes files interprocess communication Provides general purpose resource management algorithms System calls define user interface to OS Able to handle most applications but handles no


View Full Document

UAH CS 690 - Operating System Architectures

Download Operating System Architectures
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Operating System Architectures and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Operating System Architectures 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?