We define input/output as a subsystem of components that moves coded data between external devices and a host system.
I/O subsystems include:
Blocks of main memory that are devoted to I/O functions.
Buses that move data into and out of the system.
Control modules in the host and in peripheral devices
Interfaces to external components such as keyboards and disks.
Cabling or communications links between the host system and its peripherals.