<P> Multiprogramming doesn't give any guarantee that a program will run in a timely manner . Indeed, the very first program may very well run for hours without needing access to a peripheral . As there were no users waiting at an interactive terminal, this was no problem: users handed in a deck of punched cards to an operator, and came back a few hours later for printed results . Multiprogramming greatly reduced wait times when multiple batches were being processed . </P> <P> The expression "time sharing" usually designated computers shared by interactive users at terminals, such as IBM's TSO, and VM / CMS . The term "time - sharing" is no longer commonly used, having been replaced by "multitasking", following the advent of personal computers and workstations rather than shared interactive systems . </P> <P> Early multitasking systems used applications that voluntarily ceded time to one another . This approach, which was eventually supported by many computer operating systems, is known today as cooperative multitasking . Although it is now rarely used in larger systems except for specific applications such as CICS or the JES2 subsystem, cooperative multitasking was once the scheduling scheme employed by Microsoft Windows (prior to Windows 95 and Windows NT) and Classic Mac OS (prior to Mac OS X) in order to enable multiple applications to be run simultaneously . Windows 9x also used cooperative multitasking, but only for 16 - bit legacy applications, much the same way as pre-Leopard PowerPC versions of Mac OS X used it for Classic applications . The network operating system NetWare used cooperative multitasking up to NetWare 6.5 . Cooperative multitasking is still used today on RISC OS systems . </P> <P> As a cooperatively multitasked system relies on each process regularly giving up time to other processes on the system, one poorly designed program can consume all of the CPU time for itself, either by performing extensive calculations or by busy waiting; both would cause the whole system to hang . In a server environment, this is a hazard that makes the entire environment unacceptably fragile . </P>

Allows many users at different terminals to communicate with a single computer at the same time