Round-Robin-Planung: Erlauben Sie das mehrfache Auflisten eines Prozesses?


9

In einem Round-Robin-Scheduler ist das mehrfache Hinzufügen eines Prozesses zur Prozessliste eine kostengünstige Möglichkeit, ihm eine höhere Priorität zu geben.

Ich frage mich, wie praktisch dieser Ansatz sein könnte. Welchen Nutzen hat es gegenüber anderen Techniken, z. B. dem Prozess eine längere Zeitscheibe zu geben (Vorteil: weniger Schaltzeit) oder eine separate Liste von Prozessen mit hoher Priorität zu führen. Wie beeinflusst insbesondere die mehrfache Auflistung eines Prozesses die Fairness und Reaktivität?

(Aus Übung 2.16 in Andrew Tanenbaums Betriebssysteme: Design und Implementierung 1. Aufl.)


Tannenbaum hat viele Bücher geschrieben. Vermutlich meinen Sie Betriebssysteme .
Dave Clarke

@ DaveClarke Ja, danke, dass du darauf hingewiesen hast. (Und eigentlich habe ich hier nur eine Übersetzung, aber ich glaube nicht, dass ein Teil des Textes fehlt.)
Gilles 'SO - hör auf böse zu sein'

Antworten:


4

Der Vorteil dieses Ansatzes besteht darin, dass die Round-Robin-Planung sehr effizient ist, sodass Sie sich nicht auf einen komplexeren Planer verlassen müssen, der Zyklen stehlen würde. Das Einführen längerer Zeitscheiben für Prozesse mit höherer Priorität würde die Reaktionsfähigkeit anderer Threads verringern und es dem Betriebssystem erschweren, sich auf einen Interrupt usw. einzulassen. Das Verwalten separater Prozesslisten würde einen viel komplexeren Scheduler erfordern, der in Bezug auf Zyklen teurer wäre. Ich sehe jedoch kein Problem mit der Fairness. Ich denke, das Problem ist, dass die Granularität ziemlich natürlich ist: Prozesse können nur ganzzahlige Vielfache der Basiszeitscheibe haben.

Ein negativer Punkt ist, dass das Entfernen eines Prozesses teurer wäre, da jedes Auftreten des Prozesses aus der Warteschlange entfernt werden müsste. Vielleicht kann dies aber auch faul gemacht werden.


2

Das mehrmalige Hinzufügen der Aufgabe zu einer Round-Robin-Planungswarteschlange führt zu dem Problem, sicherzustellen, dass die Einträge angemessen verteilt bleiben. Dies ist leicht sicherzustellen, wenn das System keine dynamische Erstellung oder Löschung von Aufgaben zulässt, dies jedoch im Allgemeinen nicht möglich ist.

Zusätzlich zu dem komplexeren Prozess des Entfernens der Elemente aus der Warteschlange führt das eventuelle Verzerren der Prozesseinträge in der Warteschlange zu einem unausgeglichenen Verhalten, das mit mehreren Prioritätsstufen einfacher gerecht zu werden ist.


Widerspricht der Wunsch nach Prioritäten nicht der Fairness?
Raphael
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.