Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Principles of computer system design : an introduction
Saltzer J., Kaashoek M., Morgan Kaufmann Publishers Inc., San Francisco, CA, 2009. 576 pp. Type: Book (9780123749574)
Date Reviewed: Nov 9 2009

This authoritative text starts with an overview of systems and the four techniques we employ to cope with their complexity: modularity, abstraction, layering, and hierarchy. It then details the elements of computer systems organization through the three fundamental abstractions of memory, interpreters, and communication links. Subsequent chapters cover: the design of naming schemes; the enforcement of modularity through the division of work between clients and services, and through virtualization; and performance optimization. Additional chapters on networks, fault tolerance, atomicity, consistency, and information security are provided online (http://ocw.mit.edu/ans7870/resources/system/index.htm).

The authors’ clear perspective on some timeless classics is refreshing. The book includes examples of name overloading; encryption keys as names from a large and sparsely populated name space; and virtualization in terms of multiplexing, aggregation, and emulation. It also makes a candid argument for monolithic kernels. The authors document practical implementations, including tacit knowledge, such as the principle of least astonishment, the layer bypass optimization technique, and the reason why Unix file systems prohibit hard links between directories.

The text is illustrated with many clearly drawn diagrams, although I would have preferred them drawn in a standard notation, such as the unified modeling language (UML). They use the term “timing diagram” for what is commonly known as a sequence diagram, which was particularly disconcerting. Entertaining war stories, such as the one that describes problems with zip code renumbering, and detailed case studies, such as those of Unix, network file system (NFS), and Intel architectures, provide relevance and succinctly document some classic computer systems. The book contains many clever and interesting exercises, a number of larger problem sets, and a rare case of an annotated bibliography that is actually a joy to read. Some readers may even consider the list of 25 design principles and four design hints, on the inside front cover, to be worth the price of the book.

From a pedagogical perspective, it is sometimes unclear whether the book targets beginners or graduate students: on page 78, one of the book’s many excellent sidebars introduces the concept of an operating system (OS), while an example on page 68 requires knowledge of page map registers. A bigger question is whether system design principles can actually be taught; it may be that they can only be learned through a detailed study of actual systems, along with lots of design and implementation experience.

Reviewer:  D. Spinellis Review #: CR137475 (1011-1126)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Systems Analysis And Design (K.6.1 ... )
 
 
Design Tools and Techniques (D.2.2 )
 
 
General (D.2.0 )
 
 
General (C.0 )
 
 
General (D.0 )
 
 
Operating Systems (D.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Systems Analysis And Design": Date
Strategic value analysis: a modern approach to systems and data planning
Curtice R., Prentice-Hall, Inc., Upper Saddle River, NJ, 1987. Type: Book (9789780138514525)
Nov 1 1987
Information systems development research
Avison D., Wood-Harper A. The Computer Journal 34(2): 98-112, 1991. Type: Article
May 1 1992
Seven ways to develop office systems
Noble F. The Computer Journal 34(2): 113-121, 1991. Type: Article
Mar 1 1992
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy