Jaron
Eine Gruppe von Jobs, die zur Ausführung bereit sind, wird als Job-Pool bezeichnet. Da mehr als ein Job ausgeführt werden kann, kann das Betriebssystem entscheiden, welcher Job als nächstes ausgeführt werden soll. Diese Entscheidung hält die CPU-Auslastung so hoch wie möglich.
Im Allgemeinen ist es für einen einzelnen Benutzer nicht möglich, CPU- oder E/A-Geräte ständig zu beschäftigen. Multiprogramming ermöglicht es dem System, die CPU-Auslastung zu erhöhen, indem sichergestellt wird, dass die CPU immer einen Job auszuführen hat.
Die CPU hat einen Pool von Jobs. Wenn der aktuell ausgeführte Auftrag warten muss (wenn er E/A ausführt), wird er aus der CPU entfernt. Ein anderer Auftrag wird ausgewählt und die CPU führt ihn nun aus. Dieser Prozess stellt sicher, dass die CPU immer einen Job ausführt, wenn ein Job ausgeführt werden muss. Wenn in einem nicht multiprogrammierten System ein Auftrag auf eine E/A-Operation warten müsste, müsste die CPU auch warten, bis die E/A beendet ist.
Die CPU erfordert ausgeklügelte Datenstrukturen, um Multiprogramming zu implementieren. Die CPU muss entscheiden können, welcher Auftrag als nächstes ausgeführt werden soll. Einige Jobs passen sofort in den Speicher. Einige Jobs müssen möglicherweise auf der Festplatte verbleiben. Das Betriebssystem muss in der Lage sein, eine Art Zeitplanung für die Jobs im Jobpool durchzuführen. Es bestimmt, welche Jobs auf der Festplatte verbleiben und welche in den Speicher geladen werden. Das Betriebssystem muss über eine Art Speicherverwaltung verfügen. Die Speicherverwaltung wird verwendet, um zu verfolgen, welche Jobs wo gespeichert sind und wie viel Speicherplatz verfügbar ist.
Manchmal können viele Jobs gleichzeitig ausgeführt werden. Die Interaktion zwischen den Jobs muss kontrolliert werden. Generell sollte ein Job nicht in der Lage sein, die Daten oder den Programmcode eines anderen Jobs zu manipulieren.
Isabella
Multiprogramming-System Ein System, in dem mehrere einzelne Programme aktiv sein können. Jedes aktive Programm impliziert einen laufenden Prozess, daher kann es mehrere Prozesse geben, aber auf einem bestimmten Prozessor läuft zu jeder Zeit nur ein Prozess.