A term sometimes used in reference to the control of input and output. It covers both the hardware (channels and interrupts) and software (resource allocation and process synchronization) necessary to achieve the orderly and correct movement of data in a multiprogramming system.