Frage

In einem Multitasking-Betriebssystemkontext, manchmal hört man den Begriff Round Robin. Was ist gemeint?
Welche andere Art der Terminplanung ist es?

War es hilfreich?

Lösung

Round Robin

Wenn Sie ein Host in einer Gruppe von 100 Personen, Round Robin sind würde bedeuten, dass Sie 1 Minute ausgeben (ein fester Betrag) pro Gast. Sie gehen durch jeden Gast one-by-one, und nach 100 Minuten, würden Sie 1 Minute mit jedem Gast verbracht haben. Mehr auf Wikipedia .

Es gibt viele andere Arten von Terminplanung sind, wie prioritätsbasierte (dh wichtigste Menschen zuerst), first-come-first-serve, früheste Frist zuerst (dh Person verläßt früheste zuerst), etc. Sie können starten off für Check-out oder Scheduling-Algorithmen von googeln bei Wikipedia Scheduling

Andere Tipps

Zeitschlitzen zu jedem Round Robin-System in der Praxis inhärentes, AFAIK.

Ich bin nicht einverstanden mit InSciTek Jeffs Implikation, dass die folgende ist Round Robin:

  

Das heißt, jede Aufgabe mit der gleichen Priorität in der Round-Robin-Rotation erlaubt werden kann, laufen, bis sie eine Ressource blockiert Zustand vor yeilding zur nächsten Aufgabe in der Rotation.

erreichen

Ich sehe nicht, wie die Round-Robin angesehen werden könnte. Dies ist eigentlich preemptives Scheduling. Jedoch ist es möglich, einen Planungsalgorithmus zu haben, die Elemente von beiden Round-Robin-Scheduling-und preemptive hat, die sich, wenn VxWorks Round Robin und preemption werden beide aktiviert (Round-Robin ist standardmäßig deaktiviert). Die Art und Weise Round Robin zu ermöglichen, ist ein Nicht-Null-Wert in liefern kernelTimeSlice .

ich mit dieser Aussage nicht einverstanden:

  

Während also Zeitschlitzterminierung Round Robin impliziert, Terminplanung Round-Robin nicht gleich zeitbasierte Zeitschlitzen erforderlich.

Sie haben Recht, dass es nicht gleich viel Zeit erfordert. Vorkaufsrecht kann mit dem Dreck. Und tatsächlich in VxWorks, wenn eine Aufgabe während Round Robin vorbelegt ist, wenn die Aufgabe Kontrolle gerät wieder wird es für den Rest der Zeit ausführen zugeordnet wurde.

Bearbeiten auf InSciTek Jeff gerichtet (Ich habe Kommentar Privilegien nicht) Ja, ich wurde mit Bezug auf Aufgabe Verriegelungs- / Interrupt deaktivieren, obwohl ich natürlich nicht, dass es sehr gut auszudrücken hat. Sie preempted mich (ha!) Mit dem zweiten Kommentar. Ich hoffe, die mehr springenden Punkt zu diskutieren, dass Sie Round Robin glauben, ohne Time-Slicing existieren kann. Oder meinten Sie nur gleich viel Zeit auf Basis Time Slicing? Ich bin nicht einverstanden mit dem ehemaligen, aber einverstanden mit dem letzteren. Ich bin gespannt zu erfahren. Danke.

EDIT2 bei Jeff gerichtet:

  

Round-Robin kann ohne Zeitschlitzen bestehen. Das ist genau das, was in VxWorks passiert, wenn kernelTimeSlice deaktiviert ist (Null).

Ich bin nicht einverstanden mit dieser Aussage. Siehe dieses Dokument Abschnitt 2.2.3 mit der Überschrift Round Robin.

  

Round-Robin-Scheduling verwendet Zeit   Aufschneiden gerechte Verteilung von erreichen   die CPU für alle Aufgaben mit dem gleichen   Priorität. Jede Aufgabe, in einer Gruppe von   Aufgaben mit der gleichen Priorität, führt   für ein definiertes Intervall oder Zeitscheibe.   Round-Robin-Scheduling wird aktiviert, indem   Aufruf kernelTimeSlice (), die   einen Parameter für eine Zeitscheibe, oder   Intervall. [...] Wenn Round-Robin   Terminierung aktiviert ist, und preemption   wird für die Ausführung von Task aktiviert ist, das   Systemtick-Handler erhöht die   Aufgabe der Zeitscheibenanzahl.

Zeitschlitzen ist inhärent in Round Robin. Ansonsten auf einer Aufgabe, die Sie setzen CPU-Steuerung zu verzichten, die Round Robin sollte lösen.

Die Antworten hier und auch der Wikipedia-Artikel Round Robin beschreiben von Natur aus zu periodischen Zeitschlitzen umfassen. Während dies sehr häufig ist, glaube ich, dass Round-Robin-Scheduling-und Zeitschlitz ist nicht genau das Gleiche. Sicherlich für Zeitschlitz Sinn zu machen, Round-Robin-Schedling wird angedeutet, wenn jede Aufgabe zu drehen, aber können Sie Round Robin tun, ohne Zeitschlitzen zu haben. Das heißt, jede Aufgabe mit der gleichen Priorität in der Round-Robin-Rotation kann erlaubt werden, zu laufen, bis sie einen Ressourcenblock Zustand erreichen und erst dann in der Rotation läuft die nächste Aufgabe hat. Mit anderen Worten, wenn die gleiche Priorität Aufgaben vorhanden sind, die reschedling Punkte sind nicht Zeit präventiv.

Die obige Idee ist eigentlich speziell im Fall von Wind River VxWorks Kernel realisiert. Im Rahmen ihres Prioritätsschemas, Aufgaben jeder Priorität Round-Robin liefen aber nicht ohne Zeitscheibe speziell diese Funktion im Kernel ermöglicht. Der Grund für diese Flexibilität ist den Aufwand von Zeitschlitzen Aufgaben zu vermeiden, die bereits bekannt sind, in einen Block innerhalb einer gut begrenzten Zeit ausgeführt werden.

Während also Zeitschlitzterminierung Round Robin impliziert, Terminplanung Round-Robin nicht gleich zeitbasierte Zeitschlitzen erforderlich.

Eine Stellungnahme. Es scheint, dass wir Verflechten zwei Mechanismen in einem. Unter der Annahme, nur die ursprüngliche Behauptung des OP „In einem Multitasking-Betriebssystemkontext“, dann

1. - Ein Round-Robin-Scheduler immer plant, dass das nächste Element in einer kreisförmigen Warteschlange

2. - Wie der Scheduler Steuerung gewinnt die Terminierung ist getrennt und unabhängig von durchführen

Ich bin nicht einverstanden nicht, dass die am weitesten verbreitete Methode für 2 Time-Slicing / Ertrag für Ressource warten, aber wie bemerkt worden, es gibt andere. Wenn ich nicht den ersten Mac falsch bin nicht Time-Slicing nutzen, sie freiwillig Ertrag / Ertrag warten verwendeten für Ressource (20+ Jahre alte Gehirnzellen können falsch sein manchmal;).

Round-Robin ist ein einfacher Scheduling-Algorithmus, wo die Zeit gleichmäßig unter Jobs ohne Priorität unterteilt ist.

Zum Beispiel - wenn Sie 5 Prozesse laufen - jeder Prozess wird erlaubt, für 1/5 eine Zeiteinheit ausführen, bevor ein anderer Prozess ausgeführt werden darf. Round-Robin ist in der Regel leicht in einem O zu implementieren.

Eigentlich sind Sie mit Präemptives Scheduling und Round-Robin immer verwirrt. In der Tat ist RR Teil Präemptives Scheduling.

Round Robin auf Time-Sharing-Basis auch als Quanten (max Zeit von der CPU auf jeden Prozess in einem Rutsch genannt) bekannt. Es gibt mehrere Prozesse (die unterschiedliche Zeit erfordern aka Burst Zeit abzuschließen) in einer Warteschlange und CPU hat, sie zu verarbeiten alle so hält sie zwischen Prozessen Schalten jeden Prozess gleich Zeit auf dem Quantenwert anhand zu geben. Diese Art der Terminierung wird als Round Robin bekannt. Kasse diese einfache Video-Round Robin leicht zu verstehen: https://www.youtube.com / watch? v = 9HW-_qJ55K4

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top