Multitasking
Multitasking bezeichnet die Fähigkeit eines Betriebssystems oder allgemeiner einer Software, mehrere Aufgaben (tasks) scheinbar gleichzeitig (nebenläufig) auszuführen. Dabei werden die verschiedenen Prozesse in so kurzen Abständen immer abwechselnd aktiviert, dass der Eindruck der Gleichzeitigkeit entsteht. Bei Echtzeitsystemen ist das Multitasking besonders auf die geforderten Reaktionszeiten hin optimiert. Abgeleitet davon wird der Begriff in den letzten Jahren zunehmend auch auf Menschen verwendet, die mehrere Aufgaben quasi gleichzeitig erledigen. Mittlerweile gilt es als wissenschaftlich weitestgehend bewiesen, dass sich die Multitaskingfähigkeit von Männern und Frauen unterscheidet. Diese Fähigkeit ist auf die Unterschiede in der Anatomie zwischen dem weiblichen und männlichen Gehirn zurückzuführen. Eine von Intel bei KRC Research in Auftrag gegebene Studie stellte 2003 fest, dass 80% der ca. 5000 Befragten aus verschiedenen europäischen Ländern meinten, Frauen seien die besseren Multitasker.
Umsetzung
Die heutzutage am häufigsten angewendete Methode ist das präemptive Multitasking, bei dem der Betriebssystemkern die Abarbeitung der einzelnen Prozesse steuert (s. u.) und jeden Prozess nach einer bestimmten Abarbeitungszeit zu Gunsten anderer Prozesse anhält. Eine beliebte Umsetzung des präemptiven Multitaskings ist die Verwendung einer Vorrangwarteschlange in Verbindung mit der Round-Robin-Scheduling-Strategie. Dabei spricht man auch von sog. "Zeitscheiben", d. h. jedem Prozess wird (absolut oder pro definierter Zeiteinheit) abhängig von dessen Rechenaufwand ein bestimmter Prozentteil dieser Zeit zugewiesen.
Eine alternative Form des Multitasking ist das von Microsoft Windows bis Version 3.11 und Mac OS bis Version 9 bekannte "kooperative Multitasking". Dabei ist es jedem Prozess selbst überlassen, wann er die Kontrolle an den Kern zurückgibt. Es hat den Nachteil, dass Programme, die nicht kooperieren, bzw. die Fehler enthalten, das gesamte System zum Stillstand bringen können.
Hardwareseitig wird Multitasking durch einen Zeitgeber realisiert, der regelmäßig ein Signal (Interrupt) an die CPU schickt, was sie zur Ausführung eines Schedulers veranlasst. Dieser unterbricht die Prozesse, übernimmt nötige Verwaltungsaufgaben (evtl. Swapping) und gibt die Kontrolle wieder an einen der Prozesse zurück.
Moderne Betriebssysteme arbeiten darüber hinaus mit einem Speicherschutz, der verhindert, dass verschiedene Prozesse sich gegenseitig beeinflussen. Voraussetzung dafür sind CPU-Funktionen zur Virtualisierung des Hauptspeichers und verschiedene Berechtigungslevel (Ringe) oder auch Modi (Kernel-Mode oder User-Mode) für Prozesse. Erste Prozessoren, die diese Anforderungen vollständig erfüllten, waren der 80386 von Intel bzw. der 68030 von Motorola.
Das erste weit verbreitete Computersystem, das präemptives Multitasking beherrschte, war der Amiga von Commodore International (1985).