In a multiprogramming environment, it is not unusual for several programs to require the same I/O device. For example, two or more programs may be competing for the printer. Rather than hold up the processing of a program by waiting for the printer to become available, both programs are execute & the printer output for one is temporarily loaded to magnetic disk. As the printer becomes available, the output is called from magnetic disk & printed. This process is Spooling.