20
Viktor Witt Proseminar KVBK 1 Windows 2000-Scheduler Referent: Viktor Witt am 13.06.05

Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Embed Size (px)

Citation preview

Page 1: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 1

Windows 2000-Scheduler

Referent: Viktor Witt

am 13.06.05

Page 2: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 2

Überblick

Funktionsweise und Begriffe

Prioritätsstufen(Welche Prioritäten gibt es? Wie kommen sie zustande?)

Threadzustände

Praxisbeispiele

Prioritätsanhebungen(Wann wird die Priorität eines Threads angehoben?)

Zusammenfassung

Page 3: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 3

Funktionsweise und Begriffe

Windows 2000 implementiert einen prioritätsgesteuertenScheduling-Algorithmus

Es werden nur Threads geschedult

Grundidee:- Threads bekommen Prioritäten zugewiesen- Thread mit der höchsten Priorität darf ablaufen

Präemtiv- Kontextwechsel kann jeder Zeit auftreten- keine Garatie über Rechenzeit

Page 4: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 4

Prioritätsstufen

Windows 2000 interne Prioritäten

31

15 Echtzeitebenen

16

15

16 variable Ebenen

11 Systemebene0

Page 5: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 5

Prioritätsstufen

Win32-API-Prioritäten:

SetPriorityClass- weist jedem Prozess eine Prioritätsklasse zu, die- zugleich Basispriorität für Threads des Prozesses ist

SetThreadPriority- jeder Thread bekommt eine relative Priorität innerhalb eines Prozesses zugewiesen

Page 6: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 6

Prioritätsstufen

Win32-API-Prioritäten werden auf dieWindows 2000 interne Prioritäten abgebildet

Win32-Prozessklassen-PrioritätenEchtzeit Hoch Über normal Normal Unter normal Leerlauf

Zeitkritisch 31 15 15 15 15 15Höchste 26 15 12 10 8 6Über normal 25 14 11 9 7 5Normal 24 13 10 8 6 4Unter normal 23 12 9 7 5 3Niedrigste 22 11 8 6 4 2Leerlauf 16 1 1 1 1 1

Win32-Thread-Priori-täten

aktuelle Priorität:- wird beim Scheduling verwendet- dynamische Anpassung im Bereich der variablen Stufen

Page 7: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 7

Page 8: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 8

Threadzustände

Page 9: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 9

Freiwilliger Kontextwechsel

freiwilliges Wechselt in den Wartezustand mittels Win32-API-Funktionen

Anderer Thread wird zur Ausführung ausgewählt

das Warten auf ein Objekt beendet:- Thread ans Ende der Bereit-Warteschlange gestellt- meist Prioritätserhöhung

Page 10: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 10

Freiwilliger Kontextwechsel

Page 11: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 11

Verdrängung

Threads niedriger Priorität werden unterbrochen, wenn ein Thread höherer Priorität ausführungsbereit wird

Verdrängter Thread wird an den Anfang der Bereit-Warteschlange gestellt

Er darf seine Zeitscheibe zu Ende laufen, sobald derunterbrechende Thread seine Ausführung beendet hat

Page 12: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 12

Verdrängung

Page 13: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 13

Aufgebrauchtes Quantum

Round-Robin-Prinzip

Scheduler entscheidet über Senkung der Priorität

Thread bekommt einen neuen Quantumswert zugewiesen

Wenn keine bereiten Threads höherer oder gleicherPriorität vorhanden

=> Thread darf für eine weitere Zeitscheibe ablaufen

Page 14: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 14

Aufgebrauchtes Quantum

Page 15: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 15

Überblick

Funktionsweise und Begriffe

Prioritätsstufen(Welche Prioritäten gibt es? Wie kommen sie zustande?)

Threadzustände

Praxisbeispiele

Prioritätsanhebungen(Wann wird die Priorität eines Threads angehoben?)

Zusammenfassung

Page 16: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 16

Anhebung nach E/A-Operationen

Anhebungen nur bei dynamischen Prioritätsstufen möglich

Wert der Erhöhung hängt vom Gerätetreiber ab

Gerät PrioritätsanhebungFestplatte, CD-ROM, parallele Schnittstelle, Grafik 1Netzwerk, Mailslot, Named Pipe, serielle Schnittstelle 2Tastatur, Maus 6Sound 8

Mit jeder abgelafenen Zeitscheibe wird die aktuelle Prioritätum 1 Prioritätsstufe niedriger, bis Basispriorität erreicht ist

Page 17: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 17

Anhebung nach Ereignissen undSemaphoren

Erhöhung um 1 Prioritätsstufe nach dem Abwarten

eines Ereignisses oder Semaphorobjektes

schrittweises Absenken der aktuellen Priorität

( identisch zum Absenken bei E/A-Operationen )

Page 18: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 18

Anhebung als Mittel gegen

das „Verhungern“

Thread hält sich seit längerer Zeit im Bereit-Zustand auf

sprungartige Prioritätserhöhung auf Stufe 15

darf auf dieser Stufe für zwei Quanten ausgeführt werden

danach unmittelbares Zurückkehren zur Basispriorität

Page 19: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 19

Anhebung von GUI-Threads

und Vordergrundthreads

GUI-Threads- agieren als Besitzer von Fenstern- Prioritätserhöhung um 2 nach ihrem Erwachen

Vordergrundthreads- werden von der Fensterverwaltung ermittelt- Erhöhung wird auf aktuelle Priorität angewendet

Begünstigung von interaktiven Prozessen

Page 20: Windows 2000-Scheduler · PDF fileViktor Witt Proseminar KVBK 6 Prioritätsstufen Win32-API-Prioritäten werden auf die Windows 2000 interne Prioritäten abgebildet Win32-Prozessklassen

Viktor Witt Proseminar KVBK 20

Zusammenfassung

Windows 2000 hat einen prioritätsgesteuerten Scheduling-Algorithmus

Grundlage für Scheduling bilden die Threads mit ihrenZuständen

Verhalten von Threads in Standartsituationen

jeder Thread besitzt eine aktuelle und eine Basispriorität

Fälle für Prioritätsanhebungen