Webcam Diggs Cam


Scheduling

Kapitel 5 - Scheduling

Inhalt
  • zentral, dezentral und Modelle für Scheduling
  • Scheduling Strategien
  • Prioritätsscheduling und Round Robin
Scheduling wird notwendig, wenn die Anzahl der gleichzeitig laufenden Prozesse die Anzahl der physikalischen Prozessoren übersteigt. Die Verwaltung kann dezentral (Prozesse selbst) oder zentral erfolgen. Es gibt zwei grundlegende Modelle für zentrale Scheduling-Verwaltung:
  • Deterministisches Modell - alle Informationen bekannt (Anzahl Prozesse/Betriebsmittel/Zeitdauer)
  • Probabilistisches Modell - offen (Anzahl Prozesse nicht bekannt) oder geschlossen (Anzahl Prozesse bekannt, aber Bedienzeiten nicht)

Welche Strategien der Prozessorzuteilung werden unterschieden?

  • Durchsatz (Anzahl bearbeiteter Prozesse pro Zeiteinheit maximieren)
  • Verweilzeit (Prozess soll so schnell wie möglich abgearbeitet sein)
  • Wartezeit (Dauer im Zustand "wartend" minimieren)
  • Effizienz (Prozessorleistung maximal ausnutzen)
  • Antwortzeit (möglichst kurze Reaktionszeiten für den Benutzer)
  • Fairness (gerechte Verteilung der Prozessorzeit)
Es ist nicht möglich CPU-Auslastung und Durchsatz zu maximieren und gleichzeitig Warte- und Antwortzeit zu minimieren. Deshalb müssen alle Scheduling Algorithmen Kompromisse eingehen.

Nach welchen Kriterium richtet sich das Scheduling Verfahren?

Dies hängt in erster Linie vom Einsatzgebiet des Systems ab:
  • Echzeitbetrieb
  • Dialogbetrieb
  • Stabel- bzw. Batchbetrieb
  • Hintergrundbetrieb

Was ist das deterministische Modell?

Bei diesem Modell werden die Schedules vor der Ausführung berechnet. Dies funktioniert natürlich nicht in interaktiven offenen Systemen, sondern nur in geschlossenen Systemen mit fester Prozessanahl und vordefinierter Betriebsmittelnutzung mit statischen Ablauf. In Dialogsystemen wird deshalb das offene probabilistische System verwendet, da hier Anzahl der Prozesse und Betriebsmittelnutzung dynamisch erfolgen...

Was ist das probabilistisches Modell?

Die Entscheidung welcher Prozess den Prozessor bekommt, wird dynamisch wärend der Prozessabarbeitung gefällt. Hierbei gibt es einige wichtige Größen, welche als stochastische Variablen zur Berechnung herangezogen werden können. Die Warteschlangentheorie ist wichtiges Mittel für Untersuchungen. (Alle Prozesse welche den Prozessor fordern werden in eine Warteschlange eingereiht).

Prozess

Die Abbildung entspricht einem Scheduling ohne Prioritäten und ohne Entzug.

Was ist das Single-Server-Modell?

Eine Warteschlange nimmt Prozesse in einem bestimmten Abstand (A) auf. Der Scheduler entnimmt nach einer gewissen Wartezeit (W) im Pool einen Prozess und führt diesen in einer bestimmten Zeit (B) aus .
Singe-Server

mittlere Verweildauer in WarteschlangeW
ZwischenankunftsabstandA
Prozessorzeit der TeilprozesseB
Anzahl von Prozessen in WarteschlangeNq (N=Nq+p)
Verkehrswertp=B/A (Poisson-Prozesse)
Verweildauer im System V=A*N (Littles Theroem)


Weiter Größen wie durchschnittliche Warteschlangellänge oder die Wahrscheinlichkeit das sich n Prozesse im System befinden, lassen sich mit Poissen-Verteilungen genauso wie die oben erwähnte mittlere Verweildauer ermitteln.

Wie können Wahrscheinlichkeiten für Prozessgrößen ermittelt werden?

Durch Poisson-Prozesse (Markow) können Erwartungswerte, Mittelwerte und Varianzen für Zwischenankunftsabstände, Bedienwünsche und Auslastung berechnet werden. Die Betrachtungen beziehen sich hier auf den stationären Fall (t->unendlich, also FiFo).

Wie arbeitet First Come First Serve - FCFS?

Ankommende Prozesse werden in eine FIFO Liste eingereiht und sequentiell abgearbeitet. Somit ist dieses Modell nicht für Timesharing geeignet, da es eher eine Batchverarbeitung ist.

Kommt ein langer Prozess zuerst, müssen andere winzige Prozesse alle auf die Beendigung des großen Prozesses warten! Unfair. Bessere Implementationen können deshalb das Token entziehen.

Durchschnittliche Wartezeit W = (Wartezeit(P1) + Wartezeit(P2) + ... + Wartezeit(Pn)) / n

Ist P1 ein vielfach größerer Prozess als die restlichen, so müssen alle folgenden Prozesse auf die Beendigung von P1 warten. Dies läßt die durchschnittliche Wartezeit extrem steigen.

Bsp.:

t(P1) = 24 t(P2) = 3 t(P3) = 3

Bei einer Abarbeitungsfolge von P1 -> P2 -> P3 wäre W = 17.
Bei einer Abarbeitungsfolge von P2 -> P3 -> P1 nur 3!

Was ist Prioritäts-Scheduling?

Hier wird jedem Prozess eine Priorität zugewiesen. Ausgewählt wird vom Scheduler der ausführbereite Prozess mit der höchsten Priorität. Die Prioritäten können statisch definiert und dynamisch zugewiesen werden.

Bsp: FEP (Fixed External Priorities)

Prioritätsscheduling

Was ist das Problem von Schedulern mit Prioritäten?

Hauptproblem beim Arbeiten mit Prioritäten ist das Aushungern von Prozessen, welche möglicherweise nie aktiv werden können, da es immer Prozesse höherer Priorität gibt.

Lösung hierfür ist das Aging. (dynamische Anhebung der Priorität der älter werdenden Prozesse)

Ein anderes Problem ist die Prioritätenumkehr. Ein hochpriorisierter Prozess wartet auf ein Betriebsmittel, welches ein niedrigpriorisierter Prozess reserviert hat.

Wie funktioniert Shortest Job First (dynamische Priorität ohne Entzug)?

Es wird der kürzeste Job zur Verarbeitung ausgewählt. Dabei werden die Durchlauflängen der einzelnen Prozesse protokolliert. Nach jedem Prozesswechsel wird die "bereit"-Warteschlange anhand der Wartezeiten absteigend neu sortiert.

Deshalb optimiert Shortest Job First die mittlere Wartezeit. Problem ist hier auch das Aushungern von Prozessen, was auch durch Aging (Altern) verhindert werden kann.

SJF ist ohne Entzug (nonpreemtiv). Eine Variante mit Enzug ist SRTF. Dabei wird der Prozessor entzogen, falls ein Prozess in der Warteschlange ist, der kürzer als der verbliebene Rest des aktiven Prozesses.

Wie arbeiten Shortest Remaining Time First und Shortest Elapsed Time (dynamisch mit Entzug)?

Diese beiden Verfahren sind mit Prioritäten und mit Entzug. Sie sind daher relativ aufwendig, da ein ständiger Abgleich der Prioritätsdaten erfolgen muss. Bei SET wird Prozessen, welche schon viel Prozessorzeit zugesprochen bekamen, die die Prozessorzeit entzogen.

Wie arbeitet Highest Response Ratio Next - HRN?

Umso länger ein Prozess wartet, umso höher steigt er in seiner Priorität. So wird Aushungern verhindert.

Wie funktioniert Round-Robin Scheduling (ohne Prioritäten)?

Das RR ist die verbreitetste Strategie, da sie fair ist und sich auch einfach implementieren lässt. Das Prinzip ist einfach. Jeder Prozess erhält für eine konstante Zeit t (Quantum) die Prozessorzeit. Nach Ablauf des Zeitquantums wird der nächste Prozess aus der Warteschlange entnommen und bearbeitet. Der zuvor bearbeitete Prozess wird wieder am Anfang der Liste eingefügt.

Hauptproblem ist eine sinnvolle Zeitspanne für das Quantum zu finden. Da bei jedem Kontextwechsel Register umgeladen müssen, muss ein gewisser Zeitraum für Verwaltungsarbeiten eingerechnet werden. Dauert das Umladen der Register 5 ms macht ein Quantum von 10 ms wenig sinn, da 50% Prozessorzeit verschwendet werden würde. Wählt man das Quantum aber zu groß (z.B. 500 ms) so ist im Mehrbenutzerbetrieb nur bedingte Interaktivität möglich. (RR nähert sich somit FCFS an)

Sinnvoll erwiesen sich Quanten von 100 ms.


  • Scheduling mit oder ohne Entzug
  • Scheduling mit oder ohne Prioritäten
Merktabelle: Scheduling Algorithmen

Was ist Zweistufiges Scheduling?

Angenommen der Arbeitsspeicher reicht nicht aus, um alle Prozesse abzubilden, müssen diese auf einen Tertiärspeicher ausgelagert werden. Da das Auslagern bzw. Einlagern eines Prozesses sehr viel Zeit in Anspruch nimmt, werden zwei Stufen benutzt, um das Scheduling zu realisieren. Die erste Stufe arbeitet nur im Hauptspeicher, während die zweite Stufe für das Ein- oder Auslagern von Prozessen verantwortlich ist. Kriterien sind hier dieselben wie oben schon erwähnt.
  1. Wie lange ist ein Prozess Aus- oder Eingelagert?
  2. Wieviel Prozessorzeit hat ein Prozess in Anspruch genommen?
  3. Wie groß ist der Prozess im Speicher?
  4. Welche Priorität hat der Prozess?

Was steht im Widerspruch zu hohem Durchsatz und guter Auslastung?

Im Widerspruch dazu stehen gutes Antwortzeitverhalten im Dialog- und Stapelbetrieb. Denn ein hoher Durchsatz und eine gute Auslastung bedingen viele Prozesse im Rechner, so daß jeder Prozeß nur relativ selten aktiv werden kann, d.h. das Antwortzeitverhalten schlechter wird. Auch die Zuteilungsfairness wird dadurch zunehmend schlechter bzw. unfairer.
Printansicht Inhalt Anfang zurück vor
Kapitel 1Einleitung
Ebenen- oder Schichtenmodell, Aufgaben...
Kapitel 2Modelle
Schichtenmodell, Betriebsmittel, Instanzen...
Kapitel 3Aktivitäten
Token, Multitasking, Prozesse,Timesharing...
Kapitel 4Kritischer Abschnitt
Gegenseitiger Ausschluss,Peterson,Semaphore...
Kapitel 5Scheduling
Prozessorzuteilung, Prioritätsscheduling, RR...
Kapitel 6Speichermanagment
Freispeicherverwaltung, Segmentierung, Paging...
Kapitel 7Seitenersetzung
NRU, FiFo, Second Chance, LRU, NFU, Aging...
Kapitel 8Deadlocks
Bedingungen, Erkennung und Auflösung...
Kapitel 9Dateisysteme
Freispeicherverwaltung, Festplattenscheduling...
UNIX Codes
Unix Prozesse
Kommunikation
Quellen:
Andrew S. Tanenbaum
Computerarchitektur
Andrew S. Tanenbaum
Moderne Betriebssysteme
Petterson
Computer Architectur & Design
Christian Märtin
Rechnerarchitekturen
Kalfa
Skript und Vorlesung
Word Wide Web
Verschiedenste Seiten
Links:
Prozesse
FH-Bielefeld

login

last change 06.04.2008 16:28:47  © 2002 - 2005 Holger Kreissl