Computer multiprogramming is the allocation of a computer system and its resources to more than one concurrent application, job or user ("program" in this nomenclature).

Initially, this technology was sought in order to optimize use of a computer system, since time and processing resources were often wasted when a single job waited for human interaction was developed as a feature of operating systems in the late 1950s and came into common use in mainframe computing in the mid- to late 1960s. This followed the development of hardware systems that possessed the requisite circuit logic and instruction sets to facilitate the transfer of control between the operating system and one or more independent applications, users or job streams.

The use of multiprogramming was enhanced by the arrival of virtual memory and virtual machine technology, which enabled individual programs to make use of memory and operating system resources as if other concurrently running programs were, for all practical purposes, non-existent and invisible to them.

Multiprogramming should be differentiated from multi-tasking since not all multiprogramming entails—or has the capability for-- "true" multi-tasking. This is the case even though the use of multi-tasking generally implies the use of some multiprogramming methods.

In this context, the root word "program" does not necessarily refer to a compiled application, rather, any set of commands submitted for execution by a user or operator. Such "program" could include a script or job control stream and any included calls to macro-instructions, system utilities or application program modules. An entire, interactive, logged-in user session can be thought of as a "program" in this sense.

A program generally comprises numerous tasks, a task being a relatively small group of processor instructions which together achieve a definable logical step in the completion of a job or the execution of a continuous-running application program. A task frequently ends with some request requiring the moving of data, a convenient opportunity to allow another program to have system resources, particularly CPU time.

In multiprogramming, concurrent running (sharing of the processor) is achieved when the operating system identifies opportunities to interrupt the handling of one program between tasks (e.g., when it is waiting for input/output) and to transfer process control to another program (application, job or user). To a great extent, the ability of a system to share its resources equitably—or according to certain priorities—is dependent upon the design of the programs being handled and how frequently they may be interrupted.

Multi-tasking eliminates that dependency and expands upon multiprogramming by enabling the operating system supervisor to interrupt programs in the middle of tasks and to transfer processor control so rapidly that each program is now assured a portion of each processing second, making the interruptions imperceptible to most human-interactive applications.

Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Multiprogramming — Mul|ti|pro|gram|ming 〈[mʌ̣ltıprɔgræmıŋ] n. 15; unz.; EDV〉 parallel stattfindendes, in zeitlicher Hinsicht auf den Ablauf hin koordiniertes Arbeiten von mehreren Programmen innerhalb eines einzelnen Computers [<Multi... + engl. program… …   Universal-Lexikon

  • Multiprogramming — Mul|ti|pro|gram|ming [... prougræ...] das; [s] <aus gleichbed. engl. multiprogramming> Betrieb von Datenverarbeitungsanlagen in der Weise, dass gleichzeitig mehrere Programme (4) in zeitlicher Verzahnung ablaufen (EDV) …   Das große Fremdwörterbuch

  • Multiprogramming with a Variable number of Tasks (MVT) — was the most sophisticated of three available configurations of the OS/360 s control program.cite book author = IBM title = OS/360 Introduction series = IBM Systems Reference Library date = 1972 url =… …   Wikipedia

  • Multiprogramming Monitor —   [Abk. MP/M], eine Version des Betriebssystems CP/M für Multitasking und Mehrbenutzerbetrieb …   Universal-Lexikon

  • Multiprogramming with a Variable number of Tasks — History of IBM mainframe operating systems On early mainframe computers: GM OS GM NAA I/O 1955 BESYS 1957 UMES 1958 SOS 1959 IBSYS 1960 CTSS 1961 On S/360 and successors: BOS/360 1965 TOS/360 1965 TSS/360 1967 MTS 1967 …   Wikipedia

  • multiprogramming — noun Date: 1959 the technique of utilizing several interleaved programs concurrently in a single computer system …   New Collegiate Dictionary

  • multiprogramming — /mul tee proh gram ing, greuh ming, mul tuy /, n. Computers. the overlapped or interleaved execution of two or more programs by a single CPU. [1955 60; MULTI + PROGRAM + ING1] * * * …   Universalium

  • Multiprogramming — Mul|ti|pro|gram|ming 〈[mʌ̣ltıprɔgræmıŋ] n.; Gen.: s; Pl.: unz.; EDV〉 parallel stattfindendes, in zeitlicher Hinsicht auf den Ablauf hin koordiniertes Arbeiten von mehreren Programmen innerhalb eines einzelnen Computers [Etym.: <Multi… + engl.… …   Lexikalische Deutsches Wörterbuch

  • multiprogramming — mul·ti·programming …   English syllables

  • multiprogramming —    A technique for handling multiple routines or programs seemingly simultaneously by overlapping or interleaving their execution …   IT glossary of terms, acronyms and abbreviations

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”