Multitasking und Multithreading



Multitasking ist die Fähigkeit, mehrere Tasks, bzw. Programme scheinbar gleichzeitig ablaufen zu lassen. Da die CPU nur sequentiell arbeitet, d.h. Befehle nacheinander abgearbeitet werden, empfindet der User beim Multitasking eine gleichzeitige Bearbeitung.

Man muss zwischen einem echten Multitasking ("Preemptives Multitasking") und einem Pseudo-Multitasking ("nicht-preemptives Multitasking") unterscheiden.

Beim preemptiven Multitasking legt das Betriebssystem fest, wieviel Zeit einer Anwendung zur Verfügung gestellt wird. Anwendungsprogramme haben, im Gegensatz zum nicht-preemptiven Multitasking, keinen direkten Einfluss auf die Prozessorzuteilung.

Beim preemptiven Multitasking können also mehrere Tasks gleichzeitig ausgeführt werden, die Rechenzeit wird (gleichmäßig oder auch durch Prioritäten gesteuert) durch das Betriebssystem auf diese Tasks verteilt.

Beim Kooperativen Multitasking (nicht-preemptives Multitasking), müssen die Anwendungsprogramme Rechenzeit freigeben. Sobald ein Programm eine Operation beendet hat, kann das nächste Anwendungsprogramm auf den Prozessor zugreifen.

Kooperatives Multitasking Preemptives Multitasking
Kooperatives Multitasking Preemptives Multitasking


Unter Multithreading versteht man das gleichzeitige ablaufen von Unterprogrammen innerhalb einer Anwendung. Ein Thread ist eine Programmfunktion, wie z.B. Drucken oder Suchen. Wenn diese Programmfunktionen parallel ausgeführt werden, dann spricht man von Multithreading.