Chris Maeda

Service Decomposition: A Structuring Principle for Flexible High-Performance Operating Systems Degree Type: Ph.D. in Computer Science
Advisor(s): Brian Bershad, Eric Cooper
Graduated: May 1997

Abstract:

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.

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