Kooperatives Multitasking

Kooperatives Multitasking, auch bekannt als Nicht preemptiver Multitasking, ist ein Stil von Computer Multitasking in welcher Betriebssystem initiiert nie a Kontextschalter von einem Lauf Prozess zu einem anderen Prozess. Stattdessen, um mehrere Anwendungen gleichzeitig auszuführen, Prozesse freiwillig Ertragskontrolle regelmäßig oder im Leerlauf oder logisch verstopft. Diese Art von Multitasking heißt Kooperative Weil alle Programme zusammenarbeiten müssen, um das Planungssystem zu arbeiten.

In diesem Schema die Prozessplaner eines Betriebssystems ist als a bekannt Genossenschaftsplaner deren Rolle beschränkt sich darauf beschränkt, die Prozesse zu starten und sie freiwillig wieder zu kontrollieren.[1][2]

Verwendungszweck

Obwohl es selten als primärer Zeitplanungsmechanismus in modernen Betriebssystemen verwendet wird, wird es häufig in der Speicherbeschränkung verwendet eingebettete Systeme und auch in bestimmten Anwendungen wie z. CICs oder der JES2 Teilsystem. Kooperatives Multitasking war das primäre Planungsschema für 16-Bit-Anwendungen, die bei verwendet wurden Microsoft Windows Vor Windows 95 und Windows NTund durch die Klassischer Mac OS. Windows 9x gebraucht nichtPräventiver Multitasking für 16-Bit-Legacy-Anwendungen und die Powerpc Versionen von Mac OS X vor Leopard benutzte es für klassisch Anwendungen.[1] Netware, ein netzwerkorientiertes Betriebssystem, das kooperative Multitasking bis zu Netware 6.5 ist. Kooperatives Multitasking wird immer noch verwendet RISC OS Systeme.[3]

Kooperatives Multitasking wird verwendet mit erwarten in Sprachen, wie z. JavaScript oder PythonIn ihrer Laufzeit eine Event-Schleife mit einem Thread.

Probleme

Da ein kooperativ multitaskiertes System darauf angewiesen ist, dass jeder Prozess regelmäßig Zeit für andere Prozesse auf dem System gibt beschäftigt zu warten; Beide würden das gesamte System dazu bringen aufhängen. In einem Server Umwelt, dies ist eine Gefahr, die die gesamte Umwelt unannehmbar fragil macht.[1]

Im Gegensatz, Präventiv Multitasking unterbricht Anwendungen und gibt die Kontrolle über andere Prozesse außerhalb der Kontrolle der Anwendung.

Das Systempotential für das System kann durch Verwendung von a gelindert werden Watchdog -Timer, oft in Hardware implementiert; Dies ruft normalerweise a auf Hardware -Reset.

Kooperatives Multitasking ermöglicht eine viel einfachere Implementierung von Anwendungen, da ihre Ausführung niemals unerwartet vom Prozessplaner unterbrochen wird. Zum Beispiel verschiedene Funktionen innerhalb der Anwendung muss nicht sein wieder eingetreten.[2]

Siehe auch

Verweise

  1. ^ a b c "Definition von nicht preemptivem Multitasking". pcmag.com. Abgerufen 15. August, 2015.
  2. ^ a b Joe Bartel (5. November 2011). "Nicht preemptive Multitasking" (PDF). Classiccmp.org. Abgerufen 15. August, 2015.
  3. ^ "Präventiver Multitasking". riscos.info. 2. November 2009. Abgerufen 15. August, 2015.