Präemptives Multitasking

Präemptiv wird in der Regel im Zusammenhang mit so genannten Multitasking-Verfahren verwendet. Es geht darum, auf welche Art und Weise das Betriebssystem eines Computers das Problem löst, dass mehrere Prozesse gleichzeitig ausgeführt werden. Sofern der Computer nur über eine CPU verfügt, kann zu einem bestimmten Zeitpunkt nur ein Prozess diese benutzen.

Beim präemptiven Multitasking wird der Zeitraum in Scheiben definierter Länge unterteilt. Den einzelnen Prozessen werden durch den Scheduler Zeitscheiben zugewiesen. Läuft ihre Zeitscheibe ab, so werden sie unterbrochen und ein anderer Prozess erhält eine Zeitscheibe.

Das kooperative (nicht-präemptive) Multitasking arbeitet ohne Zeitscheiben. Hier blockiert ein Prozess die CPU solange bis er sie freiwillig abgibt.

Ältere Ansätze von Multitasking basierten u.a. auf der Nutzung des Timer-Interrupt-Systems. Dabei wurde beim Interrupt-Aufruf der entsprechende Prozesskontext gewechselt und eine neue Zeitscheibe zugeteilt. Der gravierende Nachteil bestand in der fehlenden Berechtigungs-Differenzierung von Nutzer- und Scheduler-Prozess: Der Nutzerprozess konnte jederzeit dem Scheduler verbieten, die Applikation zu unterbrechen.

Daher ist eine wesentliche Voraussetzung für echtes präemptives Multitasking eine CPU, die verschiedene Berechtigungs-Modi beherrscht und ein Betriebssystemkern, der in der Lage ist, die verschiedenen Modi dahingehend zu nutzen, Anwendungs-Software mit unterschiedlichen Berechtigungen auszuführen. Ein einfaches Beispiel:

Nicht in der Lage diese Bedingungen zu erfüllen waren unter anderem Windows 3.0, Mac OS Classic und manche DOS-Betriebssysteme wie MS-DOS, DR-DOS vor Novell-DOS, und FreeDOS.

Prozessoren, die die o.g. Anforderungen erstmalig vollständig erfüllten, waren u.a. der 80386-Prozessor von Intel samt seiner kompatiblen Nachbauten und die 68030-CPU von Motorola aus der Reihe der 68k CPUs.



Websites: Tagoror | Guajara | Tacoronte Guia | Todo Gomera | Deranet | Radioaficionados | Cinebso | Mi Buscador

Enciclopedia On Line: GNU FDL.