Operating Systems Design

13.1 THE NATURE OF THE DESIGN PROBLEM

13.1.1 Goals

13.1.2 Why is it Hard to Design an Operating System?

13.2 INTERFACE DESIGN

13.2.1 Guiding Principles

13.2.2 Paradigms

13.2.3 The System Call Interface

13.3 IMPLEMENTATION

13.3.1 System Structure

13.3.2 Mechanism versus Policy

13.3.3 Orthogonality

13.3.4 Naming

13.3.5 Binding Time

13.3.6 Static versus Dynamic Structures

13.3.7 Top-Down versus Bottom-Up Implementation

13.3.8 Useful Techniques

13.4 PERFORMANCE

13.4.1 Why Are Operating Systems Slow?

13.4.2 What Should Be Optimized?

13.4.3 Space-Time Trade-offs

13.4.4 Caching

13.4.5 Hints

13.4.6 Exploiting Locality

13.4.7 Optimize the Common Case

13.5 PROJECT MANAGEMENT

13.5.1 The Mythical Man Month

13.5.2 Team Structure

13.5.3 The Role of Experience

13.5.4 No Silver Bullet

13.6 TRENDS IN OPERATING SYSTEM DESIGN

13.6.1 Virtualization

13.6.2 Multicore Chips

13.6.3 Large Address Space Operating Systems

13.6.4 Networking

13.6.5 Parallel and Distributed Systems

13.6.6 Multimedia

13.6.7 Battery-Powered Computers

13.6.8 Embedded Systems

13.6.9 Sensor Nodes

13.7 SUMMARY

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.