This book strikes a unique balance among the theoretical foundation, desigtn considerations, and implementation aspects of operating systems. The book takes a decidedly systems approach by blending the theory,algorithms, and architectural support with design and implementation considerations of contemporary operating systems. An emphasis is placed on synthesis by exploring relationships among different parts of operating systems and demonstrating how they are combined to form complete systems.