Multiprogrammierung ist eine Technik im Betriebssystemdesign, bei der mehrere Programme gleichzeitig auf einem Computer ausgeführt werden. Dies steht im Gegensatz zu einer einzelnen Programmierung, bei der jeweils nur ein Programm ausgeführt wird.
Die Multiprogrammierung wird durch die Verwendung einer Speicherverwaltungseinheit (MMU) ermöglicht , das es dem Betriebssystem ermöglicht, den verfügbaren Speicher zwischen mehreren Programmen aufzuteilen. Jedes Programm erhält einen eigenen Teil des Speichers, und die MMU stellt sicher, dass kein Programm auf den Speicher eines anderen Programms zugreifen kann.
Damit die Multiprogrammierung effektiv funktioniert, muss das Betriebssystem auch einen Mechanismus für Planung bereitstellen Die Programme, damit sie fair und effizient ausgeführt werden. Der Scheduler verwendet normalerweise ein Round-Robin Algorithmus, der jedem Programm eine Zeitscheibe gleicher Länge zur Ausführung gibt. Wenn die Zeitschnitte eines Programms abgelaufen ist, ist es vorbezahlt und das nächste Programm in der Warteschlange hat eine Chance, auszuführen.
Die Multiprogrammierung hat mehrere Vorteile gegenüber einer einzelnen Programmierung. Erstens verbessert es den Gesamtdurchsatz des Systems, da gleichzeitig mehrere Programme ausgeführt werden können. Zweitens verringert es die Zeit, die ein Benutzer warten muss, bis ein Programm ausgeführt wird, da das Betriebssystem sehr schnell zwischen den Programmen wechseln kann. Drittens ermöglicht es, mehrere Programme gleichzeitig durchzuführen, auch wenn einige Programme mehr I/O-intensiver sind als andere.
Der Hauptnachteil der Multiprogrammierung besteht darin, dass die Menge an Overheads, die dem Betriebssystem verbunden ist, erhöhen kann, da das Betriebssystem den Speicher und die Planung mehrerer Programme verwalten muss. Dieser Overhead ist jedoch in der Regel gering und die Vorteile der Multiprogrammierung überwiegen bei weitem die Kosten.
Hier ist ein vereinfachtes Beispiel dafür, wie die Multiprogrammierung funktioniert:
1. Das Betriebssystem verteilt jedem der Programme, die ausgeführt werden sollen, einen Teil des Speichers.
2. Das Betriebssystem platziert das erste Programm in der Warteschlange von Ready -Programmen.
3. Die CPU führt das erste Programm für eine Zeitscheibe einer bestimmten Dauer aus.
4. Wenn das Zeitstück abgelaufen ist, wird das Betriebssystem das erste Programm vorgelegt und am Ende der Warteschlange der Bereitschaftsprogramme platziert.
5. Das Betriebssystem platziert dann das nächste Programm in die Warteschlange der Bereitschaftsprogramme vor der Warteschlange und verleiht ihm eine Zeitscheibe einer bestimmten Dauer.
6. Der Vorgang wiederholt sich, bis alle Programme ausgeführt wurden.