Also found in: Dictionary, Thesaurus, Medical, Wikipedia.


(computer science)
The interleaved execution of two or more programs by a computer, in which the central processing unit executes a few instructions from each program in succession.



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.


Sovremennoe 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.)




An earlier term for performing two or more tasks at the same time. See multitasking.
References in periodicals archive ?
When this number increases to 24 or 32, TMPI can still sustain reasonable performance on 8 processors despite the increased communication overhead, Note, for CG, it requires the number of MPI nodes to be a power of 2; so we do not have data for 6 processors, and we tested multiprogramming degree of 1, 2, and 4.
Star/OS provides both multi-tasking and multiprogramming in Ada and "C.
This policy will give us an idea of the benefits obtained by multiprogramming the cluster, when compared with the other policies that use an MPL > 1.
Shared-memory communication is a natural extension of techniques used in operating systems, but multiprogramming is replaced by true multiprocessing.
We argue that finitary fairness (1) is sufficiently abstract to capture all possible implementations, both in the context of multiprogramming and in the context of distributed computing, and (2) does not suffer from either of the two aforementioned disadvantages associated with the standard notion of fairness.
1 [Operating Systems]: Process Management--multiprocessing / multiprogramming
The RP3 runs a version of the Mach operating system, modified to eliminate multiprogramming and to allow kernel threads to be bound to processors [3].
There are residual errors, however, due to clock resolution, external events like interrupts, multiprogramming and I/O activity, unreproducible variations in the hit ratio of the cache, and paging [Clapp et al.
Adaptive hash joins for a multiprogramming environment.
array pointer dereferencing), proper memory allocation and deallocation, performance optimization, event-driven programming, multiprogramming, quality assurance testing, defect tracking, and configuration management.
To say that a multiprogramming system is one in which several programs reside in memory at the same time is equivalent to calling MS-DOS a multiprogramming environment.
In the question section, it is stated that "a multiprogramming system may be defined as one in which several programs can reside in [main] memory at the same time.

Full browser ?