Kooperatives Multitasking:
1. Aufgabenerfüllung: Beim kooperativen Multitasking geben Aufgaben freiwillig die Kontrolle über den Prozessor an andere Aufgaben ab. Dies wird durch eine „yield“-Anweisung oder einen gleichwertigen Mechanismus in der Programmiersprache erreicht.
2. Vertrauen auf Aufgabenkooperation: Jede Aufgabe ist dafür verantwortlich, die Kontrolle über die CPU explizit abzugeben, um die Ausführung anderer Aufgaben zu ermöglichen. Wenn eine Aufgabe die Kontrolle nicht übernimmt, kann es sein, dass das gesamte System hängen bleibt oder nicht mehr reagiert.
3. Keine prioritätsbasierte Planung: Da Aufgaben zusammenarbeiten und entscheiden, wann sie nachgeben, gibt es kein Konzept einer prioritätsbasierten Planung. Alle Aufgaben haben die gleiche Priorität und die Reihenfolge der Ausführung hängt ausschließlich vom nachgebenden Verhalten jeder Aufgabe ab.
4. Einfachheit: Kooperatives Multitasking ist im Vergleich zu präemptivem Multitasking relativ einfach zu implementieren. Es sind weder ein Planungsmechanismus noch ausgefeilte Algorithmen zur Aufgabenverwaltung erforderlich.
5. Häufig in frühen Betriebssystemen: Kooperatives Multitasking wurde häufig in frühen Betriebssystemen verwendet, bei denen Einfachheit Vorrang vor Leistung oder der Bewältigung komplexer Arbeitslasten hatte.
Präventives Multitasking:
1. OS-Kontrolle über die Aufgabenplanung: Beim präemptiven Multitasking hat das Betriebssystem (OS) die Kontrolle über die Aufgabenplanung und entscheidet, wann Aufgaben gewechselt werden. Das Betriebssystem verdrängt Aufgaben, die für eine vorgegebene Zeitspanne ausgeführt wurden, und gibt anderen Aufgaben die Möglichkeit, diese auszuführen.
2. Prioritätsbasierte Planung: Präventives Multitasking ermöglicht eine prioritätsbasierte Planung, was bedeutet, dass Aufgaben mit höherer Priorität Vorrang vor Aufgaben mit niedrigerer Priorität erhalten. Dies sorgt für eine bessere Ressourcenzuteilung und Reaktionsfähigkeit bei zeitkritischen Aufgaben.
3. Erzwungener Kontextwechsel: Das Betriebssystem kann die Ausführung einer Aufgabe zwangsweise unterbrechen und ihren Status im Speicher speichern. Wenn die Aufgabe fortgesetzt wird, wird ihr vorheriger Zustand wiederhergestellt, wodurch Kontinuität und Integrität gewährleistet werden.
4. Verbesserte Leistung: Präventives Multitasking ermöglicht eine effizientere und vorhersehbare Aufgabenplanung, was zu einer besseren Gesamtsystemleistung und Reaktionsfähigkeit führt.
5. Komplexität: Präventives Multitasking umfasst komplexere Algorithmen und Mechanismen für die Planung, den Kontextwechsel und die Verwaltung von Aufgabenzuständen, was die Implementierung schwieriger macht.
Zusammenfassend lässt sich sagen, dass kooperatives Multitasking auf der freiwilligen Aufgabenübergabe beruht, wobei Aufgaben die gleiche Priorität haben und das Betriebssystem keine Kontrolle über die Planung hat. Es ist einfacher zu implementieren, kann jedoch zu Systemabstürzen führen, wenn Aufgaben nicht kooperieren. Präventives Multitasking hingegen bietet eine bessere Kontrolle über das Betriebssystem, ermöglicht eine prioritätsbasierte Planung und gewährleistet eine vorhersehbare Aufgabenausführung. Es ist effizienter und eignet sich für moderne Computerumgebungen, die hohe Leistung und Reaktionsfähigkeit erfordern.