Das Betriebssystem ist die wichtigste Software und das Herzstück des Computers, das nicht nur den Speicher und die Prozesse in einem Computer verwaltet, sondern auch die Ausführung von Anwendungssoftware ermöglicht. Es handelt sich um eine Gruppe von Programmen, die die Hardware des Systems abstrahieren und den Benutzern eine vollständige virtuelle Maschine vorlegen. Neben den grundlegenden Aufgaben wie Verfolgung von Dateien oder Verzeichnissen, Steuern von Peripheriegeräten und Senden der Ausgabe an den Bildschirm dient das Betriebssystem auch höheren Zwecken wie Multiprogramming und Multitasking, um sicherzustellen, dass sich gleichzeitig ablaufende Programme nicht gegenseitig stören. Die modernen Betriebssysteme ermöglichen nicht nur die parallele Verarbeitung, sondern auch Timesharing, was nur ein Konzept der Multiprogrammierung ist. Multitasking ist nur eine rudimentäre Form der Multiprogrammierung, die in einem anderen Kontext verwendet wird.
Multiprogramming ist die Möglichkeit, dass mehrere Benutzer den Computer gleichzeitig mit einer einzelnen CPU verwenden. Die Idee ist, den Prozessor effektiv zu verwenden, um mehrere betriebsbereite Prozesse zu erstellen, wobei jeder Prozess zu einem anderen Benutzer gehört. Wenn der aktuelle Prozess aus irgendeinem Grund angehalten wird, weil er auf ein bestimmtes Ereignis warten muss, weist das Betriebssystem die CPU einem anderen Prozess in der Warteschlange zu. Der gesamte Vorgang wird durch Multi-Programmieren von Betriebssystemen erleichtert, um die CPU-Auslastung zu maximieren und die Leerlaufzeit der CPU zu reduzieren. Die Idee ist, die CPU so lange wie möglich in Betrieb zu halten.
Multitasking bedeutet die gleichzeitige Ausführung mehrerer Prozesse durch einen Benutzer auf demselben Computer unter Verwendung mehrerer CPUs. In einem Multitasking-Betriebssystem können Sie beispielsweise mit einem Programm an einem Word-Dokument arbeiten, während Sie gleichzeitig mit einem anderen Programm Musik hören. Multitasking ist effektiv, wenn Programme auf einem Computer ein hohes Maß an Parallelität erfordern. Es basiert auf dem Konzept der Zeitteilung, da mehrere Prozesse oder Aufgaben in regelmäßigen Abständen entsprechend umgestellt werden können, so dass die Benutzer die Idee bekommen, dass sie gleichzeitig ausgeführt werden.
Der Begriff Multiprogramming ist eine rudimentäre Form der Parallelverarbeitung, das heißt, dass mehrere Prozesse gleichzeitig auf einem einzelnen Prozessor ausgeführt werden. Der Begriff wird in modernen Betriebssystemen verwendet, wenn mehrere Programme oder Prozesse auf einem einzigen Prozessor ausgeführt werden und es die Aufgabe des Betriebssystems ist, alle Prozesse effektiv und effizient zu verwalten. Multitasking bezieht sich auf die Fähigkeit des Betriebssystems, mehrere Tasks gleichzeitig mit mehreren CPUs auszuführen. Im Wesentlichen werden zwei oder mehr CPUs in einem einzigen System für die Zuordnung von Aufgaben verwendet, die gemeinsame Ressourcen wie CPU und Speicher gemeinsam nutzen.
Multiprogrammierung basiert auf dem Konzept der Kontextumschaltung, einem Standardverfahren, das das Umschalten der CPU von einem Threadprozess zu einem anderen unter Verwendung einer einzelnen CPU erleichtert. Es speichert den Status eines aktiven Prozesses für die CPU im Prozesssteuerungsblock (PCB), so dass der Prozess aus demselben Zustand wieder aufgenommen wird. Multitasking hingegen basiert auf dem Konzept der Zeitteilung (Time-Sharing), einer Technik, mit der jedem Benutzer ein Teil des Time-Shared-Systems zur Verfügung gestellt wird, das es Benutzern ermöglicht, die gleichen Ressourcen gleichzeitig zu nutzen. Es ist eine logische Erweiterung der Multiprogrammierung.
Beide Begriffe haben fast dieselbe Bedeutung und sind in modernen Betriebssystemen gebräuchlich, haben jedoch unterschiedliche Ziele. Das Konzept der Multiprogrammierung basiert ausschließlich auf der Fähigkeit des Computers, Programme oder Anweisungen über einen längeren Zeitraum zu speichern, um die CPU-Leerlaufzeit zu reduzieren. Die Prozesszuordnung erfolgt über einen Scheduling-Algorithmus. Das Betriebssystem führt jeweils einen Teil eines Programms aus, gefolgt von einem Teil eines anderen Programms und so weiter. In einem Multitasking-Betriebssystem ermöglicht die CPU die gleichzeitige Ausführung mehrerer Prozesse über die Zeitaufteilung und führt sie entsprechend aus.
Bei Multiprogrammierungs-Betriebssystemen besteht die Idee darin, vollständige Transparenz zwischen den Benutzern bereitzustellen, da mehrere Benutzer dieselbe CPU verwenden, die schnell von einem Benutzer zu einem anderen wechselt, um die CPU-Auslastung zu verbessern. Es ermöglicht eine effiziente und effektive Ressourcenzuteilung ohne Benutzerinteraktion mit dem System. Das Betriebssystem führt einen Teil eines Programms aus, gefolgt von einem anderen Programm, es scheint jedoch, dass alle Programme gleichzeitig ausgeführt werden. Bei Multitasking-Betriebssystemen werden Benutzer durch Programme oder Prozesse ersetzt, und jeder Prozess beansprucht einen angemessenen Teil der CPU-Zeit. Der Prozess läuft so schnell ab, dass anscheinend mehrere Aufgaben gleichzeitig ausgeführt werden.
Zusammengefasst werden beide Begriffe oft zusammen verwendet, um moderne Betriebssysteme darzustellen, jedoch mit unterschiedlichen Zielen und Funktionen. Während ein Multiprogramming-Betriebssystem mehr als ein Programm unter Verwendung einer einzelnen CPU gleichzeitig ausführen kann, können bei einem Multitasking-Betriebssystem mehrere Prozesse oder Aufgaben gleichzeitig ausgeführt werden, wobei mehrere CPUs verwendet werden. Multiprogramming basiert auf Kontextumschaltung, wodurch die CPU nicht im Leerlauf sitzen kann, wodurch die CPU-Auslastung maximiert wird, während Multitasking auf Zeitteilung basiert, da mehrere Tasks nach Priorität in regelmäßigen Zeitabständen für maximale CPU-Leistung umgeschaltet werden können.