Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier. Präemptiv wird in der Regel im Zusammenhang so genannten Multitasking -Verfahren verwendet. Es geht darum auf welche 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 ein Prozess diese benutzen.
Beim präemptiven Multitasking wird der Zeitraum in Scheiben definierter Länge unterteilt. Den Prozessen werden durch den Scheduler Zeitscheiben zugewiesen. Läuft ihre Zeitscheibe ab werden sie unterbrochen und ein anderer Prozess erhält eine Zeitscheibe.
Das kooperative ( nicht-präemptive ) Multitasking arbeitet ohne Zeitscheiben. Hier blockiert Prozess die CPU solange bis er sie freiwillig abgibt.
Ältere Ansätze von Multitasking basierten u.a. der Nutzung des Timer-Interrupt-Systems. Dabei wurde beim der entsprechende Prozesskontext gewechselt und eine neue zugeteilt. Der gravierende Nachteil bestand in der Berechtigungs-Differenzierung von Nutzer- und Scheduler-Prozess: Der Nutzerprozess jederzeit dem Scheduler verbieten die Applikation zu
Daher ist eine wesentliche Voraussetzung für echtes präemptives Multitasking eine CPU verschiedene Berechtigungs-Modi beherrscht und ein Betriebssystemkern der der Lage ist die verschiedenen Modi dahingehend nutzen Anwendungs-Software mit unterschiedlichen Berechtigungen auszuführen. Ein Beispiel:
Anwendungssoftware ist „unterprivilegiert“ im Sinne von darf nicht alles“. Sie muss nämlich von Prozess mit höher Berechtigungsstufe unterbrechbar sein. Das die Grundvoraussetzung dafür dass der Kernel – oben beschrieben – ihr
eine Zeitscheibe zuteilen und den Prozess kann
bei Ablauf der Zeitscheibe den Prozess und „schlafen“ legen kann und
bei Zuteilung einer neuen Zeitscheibe den wieder so aufwecken kann dass der Prozess merkt dass er unterbrochen wurde
Der Systemkern selbst läuft in einem mit maximaler Berechtigungsstufe.
Bei Linux unterscheidet man hier zwischen Kernel-Mode und
bei Windows NT und Nachfolgern spricht von „Ring 0“ als Kernel-Modus und Ringen Nummerierung für „unterprivilegierte“ Prozesse.
Prozessoren die die o.g. Anforderungen erstmalig erfüllten waren u.a. der 80386 -Prozessor von Intel samt seiner kompatiblen Nachbauten und die von Motorola aus der Reihe der 68k CPUs.