Also found in: Dictionary, Thesaurus, Medical, Wikipedia.
a method of simultaneous execution on a digital computer of several programs related to different problems.
The increase in processor speed and memory size and in the number of data input-output devices led to unequal loads on particular units of the computer. For example, the arithmetic unit does not operate until the exchange of data between the direct-access memory and magnetic tape memory or a data input-output device is completed. While the processor is operating, the peripheral gear is idle, waiting for data processing to be completed or to receive data for output. In addition, the unevenness of the load on different units is also a result of the nature of the problems being solved; some problems require input of a large quantity of data and a small number of computations, whereas others require the opposite. Multiprogramming ensures a maximum load on the individual units and provides for their simultaneous operation, which increases the overall productivity of the computer.
During multiprogram operation, the computer memory holds programs for several problems simultaneously. If there is a delay in the execution of one of the programs—for example, because of a search for the segment of a magnetic tape where the raw data are stored—its execution is interrupted and a switch is made to the supervisory program, which passes control to the next program. All the data required to continue execution of the interrupted program are stored in the computer memory. The new program will be executed until it is necessary to refer to the peripheral gear or until the cause of the delay in the previous program has been eliminated. The switch from one program to another may be done automatically or by an operator at the control console when the time allocated for solving the problem has expired, when errors in computations have occurred, or when malfunctions in the computer are discovered.
There are two basic systems of multiprogram computer operation: batch (group) processing and time sharing. Batch processing involves the compilation of batches of problems as requests are received from users and the processing of each batch in a sequence that ensures maximum load on the individual units. A batch should be made up of problems with different data volumes and different rates of exchange with the units of the computer. The programs of the problems are fed into the auxiliary storage and are executed in order. In case of forced interruptions of the program being run, the computer switches to execution of the next program in the batch and, after elimination of the cause of the interruption, the interrupted program is resumed. The priority of the requests received, the time of their arrival, and other factors are considered in batch processing. The batch processing mode increases computer productivity and reduces equipment downtime to a minimum; it is the typical mode of operation at computer centers. However, batch processing is not efficient from the user’s point of view because, not working directly with the computer, he cannot find and correct errors in programs quickly. The turnaround time also increases.
The time-sharing mode gives every user the impression that the computer is working for him alone. Each user is supplied with a data input-output device (of the display type) or other equipment that ensures interaction with the computer. This includes equipment that uses telephone lines. Each user solves his problem periodically during the machine time allocated to him, studies the results, and prepares the next assignment for the computer. The user ordinarily uses a general library of programs, but he may also have a private archive. If the general library is used, a supervisory program plans and executes forced interruptions of programs depending on user priority, machine time allocated to him, and the nature of the problem being solved. The time-sharing mode permits the user to carry on an effective dialogue with the machine, which is most convenient in control systems for production processes, automatic control systems for enterprises and sectors of the national economy, reference and information services, and large computer centers. When it is not serving users, the computer may do batch processing.
Multiprogramming is provided by hardware and software. The hardware includes memory protection and the organization of interruptions. The software includes supervisory programs and problem-oriented programming languages that take into account the characteristics of multiprogramming. Multiprogramming is characteristic for many computers of the 1970’s, such as the BESM-6, Minsk-32, Ural-14, and ES-1020 in the USSR and the IBM-360 and CDC-7600 in the USA.
REFERENCESSovremennoe programmirovanie. Mul’tiprogrammirovanie i razdelenie vremeni: Sb. st. Moscow, 1970. (Translated from English.)
Pashkeev, S. D. Osnovy mul’tiprogrammirovaniia dlia spetsializirovannykh vychislitel’nykh sistem. Moscow, 1972.
Pospelov, D. A. Vvedenie v teoriiu vychislitel’nykh sistem. Moscow, 1972.
Bertin, J., M. Ritout, and J. C. Rougier. Rabota EVM s razdeleniem vremeni, 2nd ed. Moscow, 1972. (Translated from French.)
A. V. GUSEV