Soweit ich den Konvoieffekt verstehe , im Kontext des Fahrzeugverkehrs in einem Straßennetz. Eine sich langsam bewegende Gruppe von Fahrzeugen passiert das System und verlangsamt den Verkehr auch in Bereichen, die nicht direkt vom Konvoi betroffen waren.
Wie trifft dies im Rahmen der CPU-Planung zu? Es scheint keine analoge Situation zu sein.
Antworten:
Der Konvoieffekt ist das Ergebnis der Verwendung des FCFS-Planungsalgorithmus (First-Come-First-Serve). In diesem Fall führt der Dispatcher (kurzfristige Planung) die im Bereitschaftszustand vorhandenen Prozesse auf FIFO-Weise an den Prozessor weiter. Dies ist im Grunde eine einfache Implementierung von Queue. Prozesse, die zuerst kommen, müssen zuerst den Prozessor verwenden.
Da die nicht präemptive Richtlinie implementiert wird , bedeutet dies, dass der Prozess nach dem Start erst dann gestoppt wird, wenn er seine Aufgabe abgeschlossen hat oder vom Betriebssystem aufgrund eines schwerwiegenden Fehlers oder E / A-Bedarfs blockiert wird. Dadurch werden Prozesse hinter sich selbst blockiert. Wenn ein CPU-intensiver Prozess ausgeführt wird, werden einige E / A-intensive Prozesse nicht ausgelöst. In diesem Fall sind die E / A-Geräte inaktiv . Wenn der CPU-intensive Prozess die Steuerung aufgibt, durchlaufen die E / A-gebundenen Prozesse schnell die CPU, indem sie zu den E / A-Warteschlangen hinzugefügt werden. Während dieser Zeit ist die CPU im Leerlauf .
Wie Sie sehen, ist diese Methode nicht sehr effizient, da sowohl CPU- als auch E / A-Geräte lange Zeit im Leerlauf bleiben. Abgesehen davon ergibt diese Methode oft eine sehr hohe durchschnittliche Wartezeit.
Der Effekt ist analog zum Verkehrsbeispiel. Aufgrund langsam fahrender Fahrzeuge wird das Verkehrssystem ineffizient. Fahrzeuge, die sich schneller bewegen und ihr Ziel schneller erreichen können (ähnlich dem Ausgangszustand eines Prozesses) als die langsam fahrenden Fahrzeuge vor ihnen, können dies nicht. Wenn diese Fahrzeuge in der Lage wären, sich mit ihrer potenziellen Geschwindigkeit zu bewegen, wäre die Straße weniger überlastet als in diesem Fall. Fahrzeuge sind analog zu den Prozessen in der Bereitschaftswarteschlange.
quelle
Die FCFS-Planung (First-Come, First-Served) kann auch auf andere Weise, die als Konvoieffekt bezeichnet wird, zu einer Blockierung in einem ausgelasteten dynamischen System führen.
Wenn ein CPU-intensiver Prozess die CPU blockiert, können mehrere E / A-intensive Prozesse dahinter gesichert werden, sodass die E / A-Geräte inaktiv bleiben. Wenn das CPU-Schwein die CPU endgültig freigibt, durchlaufen die E / A-Prozesse schnell die CPU und lassen die CPU im Leerlauf, während sich alle für E / A anstellen. Der Zyklus wiederholt sich dann, wenn der CPU-intensive Prozess wieder bereit ist Warteschlange.
quelle
Wenn in einem Multiprogrammiersystem mehrere Prozesse auf die Ausführung der CPU in einem FCFS-System warten und ein langsamer Verarbeitungsprozess die CPU nutzt, warten aufgrund des Konvois alle schnellen Prozesse, die auf die CPU warten, unnötig lange. Dies ist ein Konvoieffekt.
quelle
Wenn im FCFS der erste Prozess eine große Servicezeit hat als andere Prozesse mit einer kürzeren Servicezeit, führt dies zu einer Erhöhung der durchschnittlichen Wartezeit, was nicht der Fall ist, wenn in derselben ersten kürzeren Servicezeit Prozesse zuerst bedient werden und dann hat der Prozess im letzten eine große Servicezeit, dann führt dies zu einer geringeren durchschnittlichen Wartezeit als im ersten Fall oben, wenn der Prozess zuerst eine größere Servicezeit hat. es wird als Konvoieffekt bezeichnet.
quelle