Lecture 1 Notes

by Dan Do and Alexander Nguyen

Systems

What is a system? The Oxford English Dictionary (1928) traces the word system to the Greek root systema (set up with):

system
an organized or connected group of objects
a set of principles, a scheme, method

Principles of Computer System Design prefers a more concrete definition: A system is a set of interconnected components that has a specified behavior observed at the interface with its environment (1.A.2).

What is an operating system? Encarta (2007) defines an operating system as the master control program in [a] computer. The American Heritage Dictionary (Fourth Edition) defines an operating system as software designed to control the hardware of a specific data-processing system in order to allow users and application programs to make use of it. The last time Professor Eggert checked, Wikipedia defined an operating system as a set of computer programs that manage the hardware and software resources of a computer.

Common Problems of Systems

Problems common to many fields include trade-offs, incommensurate scaling, emergent properties, and propagation of effects.

Trade-offs

Goals of a system can conflict with each other.

Incommensurate Scaling

As a system scales, not all parts of it scale in the same way.

Emergent Properties

As a system scales, its parts combine in ways not anticipated by studying the parts in isolation.

Propagation of Effects

There are no small changes in a large system.

Why Computing is Different

Stephen Ward pointed out that computer technology appears to be the only discipline in which the technology being improved is routinely employed to improve the technology. Indeed, computer technology has improved exponentially (according to the differential equation…) with time over the past 35 years. Moore's Law has closely predicted increases in number of transistors on a chip. Kryder's Law has predicted even more enormous increases in drive capacity. (However, not all technologies have experienced such dramatic growth: CPU speed, disk transfer rate, and disk access time have not improved much over the past 10 years.) The growth rate of computer technology allows for construction of very (verrry) complicated systems!

Complexity

A system that has a large number of components or large number of interconnections can be difficult to understand. Two closely related concepts for coping with complexity are modularity and abstraction. A modular system divides its complexity among multiple self-contained modules. An abstraction is an intuitive interface to a module.

An automobile is a complex machine, but a driver needs to be aware of just a few modules. The transmission is an interface to the gearbox. The pedals provide an interface to the throttle, brakes, and clutch. The steering wheel is an interface to the mechanics required for steering.

References