Computer systems can be loosely classified as such:
Client/Workstation: A general-purpose system primarily for interactions with a human user, such as a PC.
Server: A system primarily used to respond to requests from other systems across the network.
Handheld: Like a client/workstation, but miniaturized, like in a cell phone.
Embedded System: A sytem designed to perform one or a few dedicated functions. It is embedded as part of a complete device, such as a car or toaster.
Mainframe: a server with high-performance data-handling. Used primarily by large organizations for large data processing needs. Mainframes have largely declined in popularity since the 1980’s.
Supercomputer: a system with high-performance computation. Used primarily in scientific modeling, such as predicting the weather.
In all of these cases, the basic design is fundamentally the same: one or more CPU’s, system memory, and I/O devices. Differences in the hardware between these classes stem mainly from differing power and performance considerations.
RAM (Random Access Memory) is characterized by:
- The CPU addresses each byte by its numeric address.
- Contents of RAM are volatile: they get scrambled when the RAM loses power.
- RAM is faster than storage devices like harddrives. Harddrives are especially slow when you read or write from locations scattered throughout the drive. RAM doesn’t have this problem.
- The code of running programs are stored in RAM. Running programs also use RAM as their first place to keep data they need during their operation. (Any data we want to persist between runs of the program must of course be stored on some kind of non-volatile storage.)
