The Input/Output, or I/O, Devices are the means by which a computer communicates with the external world. This is taken from the viewpoint of the computer. Thus, the computer receives information from an Input device and sends information to an Output device. An over simplified computer can be diagramatically represented as follows:
+---------+ | Memory | +---------+ ^ C O M P U T E R | v +-------+ +---------+ +--------+ | Input |--->| Control |--->| Output | +-------+ +---------+ +--------+ ^ | v +---------+ Arithmetic | ALU | and Logic +---------+ Unit
Some devices can be both an Input and an Output device. An example of an Input Device is the Keyboard. Examples of Output devices are the Printer and the Monitor (or Screen). Devices which are used for both Input and Output include Modems (used for communications by telephone between computers) and Floppy or Hard Disk Drives. In the diagram in the previous screen, a Disk is not included in the box labeled "Memory". This "Memory" is the internal "main" memory from which the computer executes its instructions. Unlike a disk which retains the information stored in it when the power is turned off, the main memory is completely erased or forgotten when the power is turned off. The only advantage of the main memory is its speed. It is at least 1000 times faster than a disk.
Returning to I/O, most computers consider the Keyboard and Screen (or Monitor or Display) to be a single Input/Output Device called the Console. This is an example of an important concept which unites things which are different, or apparently different, into a single structure.
Every I/O device has a unique name in most operating systems, so that it can be treated the name as a particular file (perhaps with the restriction of read-only or write-only operations permitted). This generalization of I/O devices and files is very handy and lets one switch between different files and devices without necessarily having to modify the program. More will be said about this in the next lesson which is on the concept of: Files.
It is possible to have a computer program run without receiving or using input, and without producing any output; but this is pretty useless. The case where a program produces output but does not have input is meaningful though. Such a program would have some initial data built into the program, but it can only do one fixed thing.