A technique for achieving multiprogramming in a relatively simple
system without a supervisor program. Each of the programs that are to be run
concurrently are broken down into segments that are then linked up into a single program. The function of each segment
and the order of linking is arranged so that maximum use is made of processor
time. A segment that initiates a transfer to a peripheral, i.e. a relatively
slow task not requiring processor activity, is linked to a segment of some other
program for which processor activity is required. A multiplexer channel
interface will interleave transfers from several slow peripherals.