IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Allgemein - Scheduling-Verfahren



Scheduling-Verfahren

Es werden die drei Scheduling-Verfahren Round Robin, Priority-Based-Scheduling und Multilevel Feedback erklärt.


Autor: Tobias Surmann (incsoft)
Datum: 18-03-2004, 16:58:41
Referenzen: Betriebssysteme und Rechnerstrukturen I
Schwierigkeit: Profis
Ansichten: 9304x
Rating: 8.67 (6x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einleitung

Eine der Hauptaufgaben eines Betriebssystems ist die Überwachung und Steuerung von Prozessen. Bei Mehrprozesssystemen bzw. Mehrprogrammsystemen gibt es mehrere Prozesse, deren Ablauf koordiniert werden muss. Das Scheduling ist in solchen Betriebssystemen dafür zuständig den verschiedenen Prozessen Betriebsmittel - insbesondere den Prozessor - zuzuweisen bzw. auch wieder zu entziehen. Es muss sichergestellt sein, dass jeder bereite Prozess irgendwann mal ausgeführt wird, sodass der Eindruck eines zeitlich verzahnten Ablaufs aller Prozesse entsteht. Im Wesentlichen gibt es dazu drei Verfahren, die in modernen Betriebssystemen eingesetzt werden. Diese werden wir jetzt mal genauer unter die Lupe nehmen.

Round Robin

Bei dem "Round Robin" genannten Verfahren erhält jeder Prozess eine Zeitscheibe, das heißt er kann den Prozessor eine gewisse Zeit benutzen. Ist diese Zeit abgelaufen, wird der Prozess wieder ans Ende der Warteschlange der bereiten Prozesse gestellt. Diese Warteschlange heißt Ready-Queue. Danach wird der nächste Prozess aus der Ready-Queue ausgewählt und dieser Prozess laufend gesetzt (d. h. er bekommt den Prozessor zugeteilt). Hat ein Prozess schon vor dem Ablauf der zugeteilten Zeit seine Arbeiten erledigt, so gilt die Zeitscheibe als abgearbeitet; dies bedeutet, dass der nachfolgende Prozess nicht die eingesparte Zeit des vorigen Prozesses erhält. Somit kann man festhalten, dass jeder Prozess seine eigene Zeitscheibe hat und sich diese nicht auf andere Prozesse übertragen lässt. Zu diesem Verfahren habe ich zur Verdeutlichung des Ablaufs ein Bild gezeichnet, welches die parallele Ausführung von drei Prozessen zeigt.




Priority-Based-Scheduling

Dieses Verfahren basiert auf Round Robin. Zusätzlich wird jedem Prozess eine Wichtigkeitsstufe zugeordnet - die Priorität. Bei einem Prozesswechsel wird nun der Prozess aus der Ready-Queue ausgewählt, der die höchste Priorität besitzt. Es wird nun stets der Prozess mit der höchsten Priorität aktiv und verdrängt somit Prozesse niedrigerer Priorität. Verdrängung bedeutet, dass einem Prozess vorzeitig ein Betriebsmittel (hier der Prozessor) entzogen wird, weil ein Prozess höherer Priorität diese benötigt. Den Prozessen ist beim Priority-Based-Scheduling jeweils eine feste Priorität zugeordnet, die sich während der kompletten Lebensdauer des Prozesses nicht ändert. Haben mehrere Prozesse die gleiche Priorität, so wird Round Robin angewendet.

Multilevel-Feedback

Dieses Verfahren basiert wiederum auf dem Priority-Based-Scheduling. Allerdings werden hier die Prozessprioritäten dynamisch zugeordnet: Je mehr Ressourcen (d. h. Betriebsmittel) ein Prozess verbraucht, desto niedriger wird seine Priorität. Dies ist notwendig, damit jeder Prozess an die Reihe kommt.

Um dieses Verfahren zu veranschaulichen, betrachten wir die Berechnungsformel für UNIX-Systeme. Diese setzt sich aus zwei Teilen zusammen:

a) TCPU = TCPU : 2
b) Dynamische Priorität = TCPU : Konstante + Basispriorität + nice

Intern zählt die CPU in jedem Takt einen Zähler hoch. Der Zählerstand wird Ticks genannt. Hierüber können Zeitfunktionen implementiert werden. Dies ist beim Scheduling recht nützlich. Damit unsere Variable TCPU nicht irgendwann einen Überlauf verursacht, wird sie vor der Berechnung der Priorität durch 2 geteilt. Zusätzlich wird diese Variable (eingesetzt in Formel b)) noch durch eine vom Betriebssystem abhängige Konstante geteilt. Beim Start des Prozesses bekommt dieser eine Basispriorität zugeteilt, die nie unterschritten wird. Außerdem kann der Benutzer noch einen "nice" genannten Wert festlegen, der allerdings nur positiv sein kann und somit die Prozesspriorität nur negativ beeinflussen kann. Denn je niedriger der errechnete Wert, desto höher ist die Priorität - und umgekehrt.


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04510
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06247
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0