3.2.10 Scheduling

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
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.
<p>
<br />
<br />
==== Definition: Scheduling ====
==== Definition: Scheduling ====
<p>
{{#index:Scheduling|Prozess-Scheduling|CPU-Scheduling}}
{{#index:Scheduling|Prozess-Scheduling|CPU-Scheduling}}
<loop_area type="definition">
<loop_area type="definition">
Zeile 15: Zeile 15:
</p>
</p>


<p>
<br />
<br />
==== Definition: Scheduler ====
==== Definition: Scheduler ====
<p>
{{#index:Scheduler|Prozess-Scheduler|CPU-Scheduler}}
{{#index:Scheduler|Prozess-Scheduler|CPU-Scheduler}}
<loop_area type="definition">
<loop_area type="definition">
Zeile 31: Zeile 30:


<br />
<br />
==== Definition: Dispatcher ====
<p>
{{#index:Dispatcher}}
<loop_area type="definition">
<p>
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.
</p>
</loop_area>
</p>
<p>
Man kann sich leicht vorstellen, dass der Dispatcher bei einem Kontextwechsel eine Reihe von kleinen Dingen erledigen muss.
</p>
<br />
==== Aufgabe 1 ====
<p>
<loop_area type="task">
<loop_task title="Ein Dispatcher muss tun, was ein Dispatcher tun muss...">
<p>
Überlege, recherchiere und diskutiere in deiner Lerngruppe, um eine Liste mit kleinen Tätigkeiten zusammenzustellen, welche der Dispatcher bei einem Kontextwechsel zu erledigen hat!
</p>
</loop_task>
</loop_area>
</p>


<p>
Bei der Bearbeitung dieser Aufgabe ist es ausdrücklich erwünscht, dass in der erstellten Liste am Ende 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''.
</p>
<br />
==== Definition: Non-preemptive Scheduling ====
==== Definition: Non-preemptive Scheduling ====
<p>
<p>
Zeile 63: Zeile 93:
</p>
</p>


<br />
==== Aufgabe 2 ====
<p>
<p>
<br />
==== Aufgabe 1 ====
<loop_area type="task">
<loop_area type="task">
<loop_task title="Der Nächste ist der Vorherige?">
<loop_task title="Der Nächste ist der Vorherige?">
Zeile 80: Zeile 109:


<br />
<br />
==== Aufgabe 2 ====
==== Aufgabe 3 ====
<p>
<p>
<loop_area type="task">
<loop_area type="task">

Version vom 28. Oktober 2013, 15:16 Uhr

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

Definition: Scheduling

{{#index:Scheduling|Prozess-Scheduling|CPU-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

{{#index:Scheduler|Prozess-Scheduler|CPU-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 damit dafür zuständig zu entscheiden, welcher Prozess als nächstes die CPU zugeteilt bekommt. Die Umsetzung dieser Entscheidung obliegt dem Dispatcher.


Definition: Dispatcher

{{#index: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 am Ende 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

{{#index:Non-preemptive Scheduling|Scheduling, non-preemptive|nicht-unterbrechendes Scheduling|Scheduling, nicht-unterbrechend|nicht-verdrängendes Scheduling|Scheduling, nicht-verdrängend}}

Definition

Man spricht von non-preemtive 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

{{#index:Preemptive Scheduling|Scheduling, preemptive|unterbrechendes Scheduling|Scheduling, unterbrechend|verdrängendes Scheduling|Scheduling, verdrängend}}

Definition

Man spricht von preemtive 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.


Aufgabe 2

Aufgabe

Ist es beim unterbrechenden Scheduling denkbar, dass am Ende der Zeiteinheit der Scheduler dem gerade unterbrochenen 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 3

Aufgabe

Bei den Erläuterungen zum preemtiven 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.



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