3.2.10 Scheduling

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=Scheduling=
<p>
<p>
Beim Scheduling geht es um die Zuteilung des Betriebsmittels ''CPU'' zu den einzelnen Prozessen.
Beim Scheduling geht es um die Zuteilung des Betriebsmittels ''CPU'' zu den einzelnen Prozessen.
Zeile 4: Zeile 5:


<br />
<br />
==== Definition: Scheduling ====
== Definition: Scheduling ==
<p>
<p>
<loop_index>Scheduling|Prozess-Scheduling|CPU-Scheduling</loop_index>
<loop_index>Scheduling|Prozess-Scheduling|CPU-Scheduling</loop_index>
Zeile 19: Zeile 20:


<br />
<br />
==== Definition: Scheduler ====
== Definition: Scheduler ==
<p>
<p>
<loop_index>Scheduler|Prozess-Scheduler|CPU-Scheduler</loop_index>
<loop_index>Scheduler|Prozess-Scheduler|CPU-Scheduler</loop_index>
Zeile 34: Zeile 35:
<br />
<br />


==== Definition: Dispatcher ====
== Definition: Dispatcher ==
<p>
<p>
<loop_index>Dispatcher</loop_index>
<loop_index>Dispatcher</loop_index>
Zeile 49: Zeile 50:


<br />
<br />
==== Aufgabe 1 ====
== Aufgabe 1 ==
<p>
<p>
<loop_area type="task">
<loop_area type="task">
Zeile 66: Zeile 67:


<br />
<br />
==== Definition: Non-preemptive Scheduling ====
== Definition: Non-preemptive Scheduling ==
<p>
<p>
<loop_index>Non-preemptive Scheduling|Scheduling, non-preemptive|nicht-unterbrechendes Scheduling|Scheduling, nicht-unterbrechend|nicht-verdrängendes Scheduling|Scheduling, nicht-verdrängend</loop_index>
<loop_index>Non-preemptive Scheduling|Scheduling, non-preemptive|nicht-unterbrechendes Scheduling|Scheduling, nicht-unterbrechend|nicht-verdrängendes Scheduling|Scheduling, nicht-verdrängend</loop_index>
Zeile 84: Zeile 85:
<br />
<br />


==== Definition: Preemptive Scheduling ====
== Definition: Preemptive Scheduling ==
<p>
<p>
<loop_index>Preemptive Scheduling|Scheduling, preemptive|unterbrechendes Scheduling|Scheduling, unterbrechend|verdrängendes Scheduling|Scheduling, verdrängend</loop_index>
<loop_index>Preemptive Scheduling|Scheduling, preemptive|unterbrechendes Scheduling|Scheduling, unterbrechend|verdrängendes Scheduling|Scheduling, verdrängend</loop_index>
Zeile 102: Zeile 103:
<br />
<br />


==== Definition: Zeitscheibe (Quantum) ====
== Definition: Zeitscheibe (Quantum) ==
<p>
<p>
<loop_index>Zeitscheibe|Quantum|Zeit-Quantum</loop_index>
<loop_index>Zeitscheibe|Quantum|Zeit-Quantum</loop_index>
Zeile 118: Zeile 119:
<br />
<br />


==== Aufgabe 2 ====
== Aufgabe 2 ==
<p>
<p>
<loop_area type="task">
<loop_area type="task">
Zeile 134: Zeile 135:
<br />
<br />


==== Aufgabe 3 ====
== Aufgabe 3 ==
<p>
<p>
<loop_area type="task">
<loop_area type="task">
Zeile 149: Zeile 150:


<br />
<br />
==== Aufgabe 4 ====
== Aufgabe 4 ==
<p>
<p>
<loop_area type="task">
<loop_area type="task">
Zeile 173: Zeile 174:


<br />
<br />
==== Scheduling-Ziele ====
== Scheduling-Ziele ==
<p>
<p>
<loop_index>Scheduling-Ziele|Ziele, Scheduling</loop_index>
<loop_index>Scheduling-Ziele|Ziele, Scheduling</loop_index>
Zeile 180: Zeile 181:


<br />
<br />
==== Aufgabe 5 ====
== Aufgabe 5 ==
<p>
<p>
<loop_area type="task">
<loop_area type="task">
Zeile 198: Zeile 199:


<br />
<br />
==== So geht es weiter: ====
== So geht es weiter: ==
<p>
<p>
<loop_area type="arrangement"><loop_toc>  </loop_toc></loop_area>
<loop_area type="arrangement"><loop_toc>  </loop_toc></loop_area>

Version vom 13. Oktober 2014, 10:41 Uhr

Scheduling

Beim Scheduling geht es um die Zuteilung des Betriebsmittels CPU zu den einzelnen Prozessen.


Definition: Scheduling

Definition

Unter Scheduling (genauer: Prozess-Scheduling oder CPU-Scheduling) versteht man die Tätigkeit des Aufteilens der verfügbaren Prozessorzeit auf alle Prozesse.

Es sei an die im Kapitel Nur ein Prozessor mit einem Kern genannte Bedingung erinnert.


Definition: Scheduler

Definition

Unter einem Scheduler (genauer: Prozess-Scheduler oder CPU-Scheduler) versteht man den Teil des Betriebssystems, welcher die Scheduling-Tätigkeit durchführt.

Der Scheduler ist somit dafür zuständig zu entscheiden, welcher Prozess als nächstes die CPU zugeteilt bekommt. Die Umsetzung dieser Entscheidung obliegt dem Dispatcher.


Definition: Dispatcher

Definition

Unter einem Dispatcher versteht man den Teil eines Betriebssystems, welcher bei einem Kontextwechsel dem derzeit aktiven Prozess die CPU entzieht, um sie anschließend dem nächsten Prozess zuzuteilen.

Man kann sich leicht vorstellen, dass der Dispatcher bei einem Kontextwechsel eine Reihe von kleinen Dingen erledigen muss.


Aufgabe 1

Aufgabe

Überlege, recherchiere und diskutiere in deiner Lerngruppe, um eine Liste mit kleinen Tätigkeiten zusammenzustellen, welche der Dispatcher bei einem Kontextwechsel zu erledigen hat!

Bei der Bearbeitung dieser Aufgabe ist es ausdrücklich erwünscht, dass in der erstellten Liste Fachbegriffe verwendet werden. Hier ein Beispiel für eine kleine Tätigkeit mit Fachbegriffen:

  • Der Dispatcher ändert innerhalb der Prozesstabelle im Prozesskontrollblock des von der CPU scheidenden Prozesses den Zustand von Rechnend auf Bereit bzw. auf Blockiert.


Definition: Non-preemptive Scheduling

Definition

Man spricht von non-preemptive Scheduling (oder auf deutsch: nicht-unterbrechendes Scheduling oder nicht-verdrängendes Scheduling), wenn ein Prozess die exklusive Nutzung der CPU nur dann aufgeben muss, wenn er

  • in den Zustand Blockiert wechselt,
  • freiwillig und von selbst die CPU abgibt, oder
  • sich selbst beendet.

Hierbei ist es also denkbar, dass ein Prozess, sobald er die CPU bekommt, diese erst wieder bei seiner Terminierung abgibt, egal wie lange es bis dahin dauert. Alle weiteren Prozesse müssen sich unter Umständen also sehr lange gedulden.


Definition: Preemptive Scheduling

Definition

Man spricht von preemptive Scheduling (oder auf deutsch: unterbrechendes Scheduling oder verdrängendes Scheduling), wenn einem Prozess die exklusive Nutzung der CPU zu einem beliebigen Zeitpunkt entzogen werden kann, um sie einem anderen Prozess zu übertragen.

Üblicherweise wird die Prozessorzeit dabei in kleine Zeiteinheiten eingeteilt und (spätestens) am Ende einer Zeiteinheit entscheidet der Scheduler neu darüber, welcher Prozess als nächstes die CPU bekommt.

Diese kleine Zeiteinheit ist in der Literatur unter verschiedenen Namen anzutreffen:


Definition: Zeitscheibe (Quantum)

Definition

Unter einer Zeitscheibe oder einem Quantum vesteht man den (i.d.R. sehr kleinen) zusammenhängenden Zeitraum, innerhalb dessen ein Prozess auf einem preemptiven Betriebssystem die CPU nutzen darf, ohne dabei von einem anderen Prozess verdrängt zu werden.

Innerhalb eines Quantums ist es möglich, dass der auf der CPU aktive Prozess durch Interrupts unterbrochen wird. Jedoch bekommt er nach der Abarbeitung der jeweiligen Interruptbehandlungsroutine die CPU zurück und darf diese weiter nutzen; maximal bis das Quantum aufgebraucht ist. (Siehe hierzu auch die folgende Aufgabe:)


Aufgabe 2

Aufgabe

Bei den Erläuterungen zum preemptiven Scheduling heisst es: "(spätestens) am Ende einer Zeiteinheit entscheidet der Scheduler neu".

Nenne mindestens zwei Gründe, warum der Scheduler auch schon früher als am Ende der Zeiteinheit eine Scheduling-Entscheidung treffen könnte/müsste.


Aufgabe 3

Aufgabe

Ist es beim unterbrechenden Scheduling denkbar, dass am Ende der Zeitscheibe der Scheduler dem gerade aktiven Prozess erneut die CPU zuteilt, ohne dass zwischendurch ein anderer Prozess an der Reihe war?

Diskutiere mögliche dafür- oder dagegen-sprechende Gründe in deiner Lerngruppe!


Aufgabe 4

Aufgabe

Denke dir folgende Situation: Der gerade auf der CPU aktive Prozess blockiert.

  • Gib drei mögliche Gründe an, warum der Prozess blockiert.

In dieser Situation kommen Scheduler und Dispatcher ins Spiel. Aber in welcher Reihenfolge?

  • Erst der Scheduler und dann der Dispatcher?
  • Oder erst der Dispatcher und dann der Scheduler?
  • Oder ist der Dispatcher ein Teil des Schedulers und wird aus diesem heraus aufgerufen?
  • Oder ist der Scheduler ein Teil des Dispatchers und wird aus diesem heraus aufgerufen?
  • Oder fällt dir noch eine andere Variante ein?

Diskutiere die Varianten in deiner Lerngruppe und begründe deine Entscheidung!


Scheduling-Ziele

Bevor im folgenden Kapitel verschiedene Scheduling-Verfahren erläutert werden, können zunächst einige Ziele identifiziert werden, deren Umsetzung vom Scheduler so weit wie möglich angestrebt werden sollte.


Aufgabe 5

Aufgabe

Mandl 2013 erläutert in Kapitel 5.1 (Scheduling-Kriterien) verschiedene Scheduling-Ziele.

  • Welche Ziele sind das?
  • Erläutere jedes Ziel kurz.
  • Wie steht es mit der gleichzeitigen Erfüllung aller Ziele?

Studierende sind oftmals berechtigt, eine PDF-Version dieses Buches ohne entstehende Kosten über ihre Hochschulen von Springerlink zu beziehen.


So geht es weiter:



Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png