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.
McGraw-Hill Dictionary of Scientific & Technical Terms, 6E, Copyright © 2003 by The McGraw-Hill Companies, Inc.
The following article is from The Great Soviet Encyclopedia (1979). It might be outdated or ideologically biased.



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


The Great Soviet Encyclopedia, 3rd Edition (1970-1979). © 2010 The Gale Group, Inc. All rights reserved.


This article is provided by FOLDOC - Free Online Dictionary of Computing (


Concurrent operation. Multiprogramming may refer to two or more processes running within the same program concurrently (see multithreading and multicore) or to having two or more programs open in the computer at the same time (see multitasking).
Copyright © 1981-2019 by The Computer Language Company Inc. All Rights reserved. THIS DEFINITION IS FOR PERSONAL USE ONLY. All other reproduction is strictly prohibited without permission from the publisher.
References in periodicals archive ?
These studies show that multiprogramming makes efficient use of system resources and that space/time sharing is the most viable solution.
Star/OS provides both multi-tasking and multiprogramming in Ada and "C." It supports the full Ada tasking model of the MIL-STD-1815a Ada language specification and is compatible with the compiler output of the validated MipsCo Ada compiler.
Shared-memory communication is a natural extension of techniques used in operating systems, but multiprogramming is replaced by true multiprocessing.
Since all reasonable implementations of the system, whether in multiprogramming or in multiprocessing, are expected to be fair, if we prove that a program satisfies a property under the assumption of fairness, it follows that the property holds for all possible implementations of the program.
M Multiprogramming level that maximizes the number of active txns in the system K.
Cache performance of operating system and multiprogramming workloads.
Also, the cost of a disk access on a workstation can more easily be mitigated by multiprogramming, a technique whereby another task (or another user) can use the workstation's CPU, while the first task is awaiting disk service.
Most synchronization algorithms have been designed to run on a dedicated machine, with one application process per processor, and can suffer serious performance degradation in the presence of multiprogramming. Problems arise when running processes block or, worse, busy-wait for action on the part of a process that the scheduler has chosen not to run.
Because processors are virtual, not physical, the mechanism described here may be used to support distributed processing, in which the processors are physically distinct computers, as well as multiprogramming, in which the processors are supported by operating system processes.
Finally, the system software of most distributed-memory systems supports some form of multiprogramming. This will simplify the implementation of the stream manager, since the scheduling of the modules on the network interface can be handled by the operating system or threads package, thus eliminating the need for the custom scheduler.

Full browser ?