Task
aus Wikipedia, der freien Enzyklopädie
Bei Microsoft-Windows-Betriebssystemen ist eine Task (englisch für Aufgabe) ein Prozess (zum Beispiel ein Programm), der auf der untersten Systemebene (Kernel) läuft. In diesem Kontext wird also Task mit Prozess gleichgesetzt. In anderen Bereichen wird eine Task als Subprozess angesehen, stellt also einen Thread dar. Durch die weiteren Begriffe Multitasking und Taskwechsel, welche sich sowohl auf Prozesse als auch auf Threads beziehen können, sollte Task also eher als Oberbegriff für Prozess und Thread gesehen werden. Multitasking nennt man allgemein die Technik, mehrere Prozesse (oder Threads) gleichzeitig laufen zu lassen. Da aber ein Prozessor in einer Zeiteinheit immer nur eine Task bearbeiten kann (er kann nicht mehrere Dinge gleichzeitig tun), schaltet das System ständig zwischen den verschiedenen Tasks hin und her und täuscht so eine gleichzeitige Bearbeitung vor. Da dies in Sekundenbruchteilen geschieht, merkt der Anwender nichts davon. Es werden drei Arten von Multitasking unterschieden:
- Kooperatives Multitasking
- Präemptives Multitasking
- Echtes Multitasking
Eine ähnliche Bedeutung hat der Begriff Task bei der Programmierung mit Threads bzw. nebenläufigen Prozessen. Ein weit verbreiteter Lösungsansatz besteht darin, ein Problem in viele kleine (aber möglichst voneinander unabhängige) Teilprobleme zu zerlegen (Parallelisierung). Diese Teilprobleme werden dann in einem sog. Task Pool (oder Job Queue) abgelegt. Jeder Thread wartet, bis in diesem Taskpool etwas vorhanden ist, entnimmt es und beginnt mit den entsprechenden Berechnungen.