ich war hier: BSys06Scheduling

Version [22466]

Dies ist eine alte Version von BSys06Scheduling erstellt von RonnyGertler am 2013-03-26 19:45:53.

 

 (image: http://wdb.fh-sm.de/uploads/QualipaktLehre/BMBF_Logo_klein.jpg)

Betriebssysteme (Betriebssystemtheorie) - Kapitel 6 - Scheduling


Inhalte von Dr. E. Nadobnyh

6.1. Grundbegriffe


Definition und Eigenschaften


Der Scheduler ist ein Teil des Betriebssystems, welcher über die Prozessorzuteilung entscheidet.

1) Der Scheduler wählt einen Prozess bzw. Thread aus der Menge der ausführbaren (rechenwillige) Prozesse bzw. Threads aus, welcher als nächster den Prozessor (CPU) zugeteilt erhält. Weiter wird der Begriff „Prozesse“ statt „Prozesse bzw. Threads“ verwendet.

2) Das Scheduling (CPU-Scheduling, Prozessorverwaltung) ist die Erstellung eines Zeitplanes.

3) Das Betriebssystem selbst unterliegt nicht dem Scheduling, da es kein Prozess ist.

4) Wir begrenzen uns auf das CPU-Scheduling für das Einprozessorsystem (Uniprozessor-Scheduling).


Grundverfahren


1) Das präemptive (preemptive, verdrängende) Scheduling:
  1. Die CPU kann einem Prozess entzogen werden, obwohl der Prozess die CPU weiterhin verwenden möchte. Der suspendierte Prozess wird in Zustand „rechenbereit“ zurückgestellt.
b )Ursachen der Verdrängung:
    • Ablauf von Zeitscheiben,
    • Prozess höherer Priorität wird rechenbereit.
  1. Dieses Verfahren ist geeignet für Dialog- und Realtime-Systeme.
2) Das nicht-präemptive (non-preemptive, kooperative) Scheduling:
  1. Der aktive Prozess verwendet die CPU so lange wie er möchte.
  1. Dieses Verfahren ist geeignet für Batch–Systeme.
  1. Es ist nur ein geringer Verwaltungsaufwand nötig.


Verhungern


Es gibt einige Ursachen für das Verhungern (Starvation):

1) Wegen der ungeschickten Synchronisation: Alle Prozesse laufen uneingeschränkt weiter, aber keine Fortschritte machen.

2) Wegen des ungeschickten Schedulings: Ein rechenwilliger Prozess kann nie die CPU zugeteilt bekommen, weil die CPU von anderen Prozessen monopolisiert ist.

Beispiel für präemptives Schduling: ein Prozess mit niedriger Priorität kann ewig auf CPU-Zuteilung warten, da ständig hochprioritäre Prozesse die CPU anfordern.

Beispiel für nicht-präemptives Schduling: ein "unkooperativer" oder fehlerhafter Prozess kann die CPU monopolisieren, z.B. wenn ein fehlerhafter Prozess eine endlose Schleife beginnt.

⇒ Demo 1


Unterbrechung und Verdrängung


1) Das Betriebssystem übernimmt die Kontrolle über dem Rechner bei jeder Unterbrechung.

2) Nicht bei jeder Unterbrechung wird das Scheduling eingeschaltet. Beispiele:
  1. nach der Unterbrechung wegen einer fehlerhaften I/O-Operation ändern sich die Prozess-Zustände nicht und der unterbrochene Prozess bleibt weiter aktiv.
  1. Ähnlich reagiert das Betriebssystem auf Unterbrechungen vom Timer. Das Scheduling wird nur zu jeder k-ten Timer-Unterbrechung eingeschaltet, wenn eine Zeitscheibe abläuft.

3) Nicht bei jeder Einschaltung des präemptiven Schedulings wird über eine Verdrängung entschieden.

Begriffsverwirrung: „preemptiv“ kann manchmal als „unterbrechend“ übersetzt werden.


Zeitpunkte für neues Scheduling


1) Erzeugung eines neuen Prozesses.

2) Beendigung eines Prozesses.

3) Blockierung des bis dahin aktiven Prozesses, z.B. wenn ein Prozess eine E/A-Operation beauftragt hat und auf das Ergebnis warten muss.

4) Deblockierung des Prozesses, weil er einen Ereignis erhalten hat, z.B. weil die beauftragte E/A-Operation beendet hat.

5) Ablauf der für aktiven Prozess zugeteilten Zeit und Verdrängung des aktiven Prozesses.

Wegen der Erzeugung oder der Deblockierung eines hochprioritären Prozesses kann der aktive Prozess verdrängt werden.














CategoryBSys
Diese Seite wurde noch nicht kommentiert.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki