Multiprogramming is the name given to what we have been examining in Figure 5-8. It is the interleaved execution of two or more different and independent programs by the same computer. Notice, however, that multiprogramming is not defined as the execution of instructions from several programs at the same instant in time. Rather, it does mean that there are a number of programs available to the CPU and that a portion of one is executed, then a portion of another, and so on. As we have seen, the OS switches control form one program to another almost instantly. The CPU can thus keep busy while channels and buffers are occupied with the job of bringing in data and writing out information.