Input/output

Devices for communication between computers, such as modems and network cards, typically perform both input and output operations.

Any transfer of information to or from the CPU/memory combo, for example by reading data from a disk drive, is considered I/O.

An I/O algorithm is one designed to exploit locality and perform efficiently when exchanging data with a secondary storage device, such as a disk drive.

[clarification needed] A computer that uses memory-mapped I/O accesses hardware by reading and writing to specific memory locations, using the same assembly language instructions that computer would normally use to access memory.

[1] Both input and output devices have a data processing rate that can vary greatly.

[2] With some devices able to exchange data at very high speeds direct access to memory (DMA) without the continuous aid of a CPU is required.

[2] Higher-level operating system and programming facilities employ separate, more abstract I/O concepts and primitives.

User Application Operating system Hardware