DesignPrinciples-Lampson

DesignPrinciples-Lampson - Hints for ComputerSystem Design...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
Hints for Computer System Design Butler W. Larnpson Computer Science Laboratory Xerox Palo Alto Research Center Palo Alto, CA 94304 Abstract Experience with the design and implementation of a num- ber of computer systems, and study of many other sys- tems, has led to some general hints for system design which are described here. They are illustrated by a num- ber of examples, ranging from hardware such as the Alto and the Dorado to applications programs such as Bravo and Star. I. Introduction Designing a computer system is very different from design- ing an algorithm: The external interface (i.e., the requirement) is more complex, less precisely defined, and more subject to change. The system has much more internal structure, and hence many internal interfaces. The measure of success is much less clear. The designer usually finds himself floundering in a sea of possibilities, unclear about how one choice will limit his freedom to make other choices, or affect the size and per- formance of the entire system. There probably isn't a best way to build the system, or even any major part of it; much more important is to avoid choosing a terrible way, and to have clear division of responsibilities among the parts. I have designed and built a number of computer systems, some that worked and some that didn't. I have also used Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. (~)1983 ACM 0-89791-115-6/83/010/0033 $00.75 and studied many other systems, both successful and un- successful. From this experience come some general hints for designing successful systems. I claim no originality for them; most are part of the folk wisdom of experienced designers. Nonetheless, even the expert often forgets, and after the second system [6] comes the fourth one. Disclaimer'. These are not novel (with a few exceptions), foolproof recipes, laws of system design or operation, precisely formulated, consistent, always appropriate, approved by all the leading experts, or guaranteed to work; they are just hints. Some are quite general and vague; others are specific techniques which are more widely applicable than many people know. Both the hints and the illustrative examples are necessarily oversimplified. Many are controversial. I have tried to avoid exhortations to modularity, methodologies for top-down, bottom-up or iterative de- sign, techniques for data abstraction, and other schemes which have already been widely disseminated. Sometimes I have pointed out pitfalls in the reckless application of popular methods for system design. The hints are illustrated by a number of examples, mostly drawn from systems I have worked on. They range from hardware such as the Ethernet local network and the Alto
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 07/30/2011 for the course COP 4600 taught by Professor Montagne during the Spring '08 term at University of Central Florida.

Page1 / 16

DesignPrinciples-Lampson - Hints for ComputerSystem Design...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online