Computer Science Department
School of Computer Science, Carnegie Mellon University


Service Decomposition: A Structuring Principle for Flexible, High-Performance Operating Systems

Chris Maeda

April 1997

Ph.D. Thesis

Unavailable Electronically

Keywords: Operating systems, networking, file systems, performance, software architecture, software engineering

In this thesis, I present Service Decomposition, a new approach to operating system structure that is motivated by the need to build evermore complex and performant operating systems. Service Decomposition is based on the observation that services may be divided into session management and session use functions. Service Decomposition exploits this observation by colocating the session use function with each application, achieving a minimal number of protection boundary crossings in the common case, and resulting in high performance. Since services are implemented with user-level components that may be specialized or replaced, Service Decomposition yields highly flexible operating systems as well.

I describe the implementaiton of two critical operating system services, networking and filing. In networking, sessions are network connections, session management consists of setting up and shutting down connections, and session use consists of sending and receiving data on established connections. In filing, sessions are open files, sessions are established by opening and closing files, and sessions are used by reading and writing opened files. I evaluate the service implementations to show that Service Decomposition provides superior flexibility without sacrificing safety or performance. The service implementations I describe achieve end-to-end application performance on a user-level operating system that is competitive with well-tuned commercial operating systems.

155 pages

Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by