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.
Problems common to many fields include trade-offs, incommensurate scaling, emergent properties, and propagation of effects.
Goals of a system can conflict with each other.
As a system scales, not all parts of it scale in the same way.
As a system scales, its parts combine in ways not anticipated by studying the parts in isolation.
There are no small changes in a large system.
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!
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.