61
Scheduling Linux 2.4 vs. 2.6 Johannes Segitz Scheduling – p. 1

Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling

Linux 2.4 vs. 2.6Johannes Segitz

Scheduling – p. 1

Page 2: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Was ist Scheduling/ein Scheduler?

Scheduling Erstellen einer zeitlichen Ordnung fuer Ereignisse

Scheduler Die Einheit, die diese Entscheidung trifft

Scheduling – p. 2

Page 3: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Warum brauchen wir Scheduling?

• Bestmoegliche Ausnutzung existierender Ressourcen

• Reaktionszeiten des Systems verbessern• Ermoeglichung bestimmter Anwendungen

Scheduling – p. 3

Page 4: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Warum brauchen wir Scheduling?

• Bestmoegliche Ausnutzung existierender Ressourcen• Reaktionszeiten des Systems verbessern

• Ermoeglichung bestimmter Anwendungen

Scheduling – p. 3

Page 5: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Warum brauchen wir Scheduling?

• Bestmoegliche Ausnutzung existierender Ressourcen• Reaktionszeiten des Systems verbessern• Ermoeglichung bestimmter Anwendungen

Scheduling – p. 3

Page 6: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Geschichte

Scheduler gab es nicht immer in Betriebssystemen. Sie wurdenbegleitend zu dem technischen Fortschritt der Hardwareeingefuehrt

• Batch operating systems

• Multiprogrammed systems• Time-sharing system

Scheduling – p. 4

Page 7: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Geschichte

Scheduler gab es nicht immer in Betriebssystemen. Sie wurdenbegleitend zu dem technischen Fortschritt der Hardwareeingefuehrt

• Batch operating systems• Multiprogrammed systems

• Time-sharing system

Scheduling – p. 4

Page 8: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Geschichte

Scheduler gab es nicht immer in Betriebssystemen. Sie wurdenbegleitend zu dem technischen Fortschritt der Hardwareeingefuehrt

• Batch operating systems• Multiprogrammed systems• Time-sharing system

Scheduling – p. 4

Page 9: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Arten des Schedulings

Es gibt verschiedene computerrelevante Bereiche, in denenScheduling eingesetzt wird, z.B.:

• Befehlscheduling

• I/O Scheduling• CPU Scheduling

Kombination verschiedener Scheduler um optimale Leistung zuerreichen (z.B. CPU Scheduling mit I/O Scheduling)

Scheduling – p. 5

Page 10: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Arten des Schedulings

Es gibt verschiedene computerrelevante Bereiche, in denenScheduling eingesetzt wird, z.B.:

• Befehlscheduling• I/O Scheduling

• CPU Scheduling

Kombination verschiedener Scheduler um optimale Leistung zuerreichen (z.B. CPU Scheduling mit I/O Scheduling)

Scheduling – p. 5

Page 11: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Arten des Schedulings

Es gibt verschiedene computerrelevante Bereiche, in denenScheduling eingesetzt wird, z.B.:

• Befehlscheduling• I/O Scheduling• CPU Scheduling

Kombination verschiedener Scheduler um optimale Leistung zuerreichen (z.B. CPU Scheduling mit I/O Scheduling)

Scheduling – p. 5

Page 12: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Arten des Schedulings

Es gibt verschiedene computerrelevante Bereiche, in denenScheduling eingesetzt wird, z.B.:

• Befehlscheduling• I/O Scheduling• CPU Scheduling

Kombination verschiedener Scheduler um optimale Leistung zuerreichen (z.B. CPU Scheduling mit I/O Scheduling)

Scheduling – p. 5

Page 13: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Kombination von Schedulern

Scheduling – p. 6

Page 14: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

CPU Scheduling

Bestimmt welcher ablauffaehige Prozess die CPU benutzendarf.

Abhaengig vom Zeitraum, ueber den man die Entscheidungtrifft, unterscheiden wir:

• Kurzzeitscheduler• Langzeitscheduler

CPU Scheduler sind Kurzzeitscheduler

Wichtig: Scheduler != Dispatcher

Scheduling – p. 7

Page 15: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Ziele

Wie vergleicht man Schedulingalgorithmen gegeneinander?

Uebliche Ziele sind:• Maximiere Ressourcenauslastung

• Maximiere Durchsatz• Minimiere Ausfuehrungszeit• Minimiere Antwortzeit• Minimiere Wartezeit

Scheduling – p. 8

Page 16: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Ziele

Wie vergleicht man Schedulingalgorithmen gegeneinander?

Uebliche Ziele sind:• Maximiere Ressourcenauslastung• Maximiere Durchsatz

• Minimiere Ausfuehrungszeit• Minimiere Antwortzeit• Minimiere Wartezeit

Scheduling – p. 8

Page 17: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Ziele

Wie vergleicht man Schedulingalgorithmen gegeneinander?

Uebliche Ziele sind:• Maximiere Ressourcenauslastung• Maximiere Durchsatz• Minimiere Ausfuehrungszeit

• Minimiere Antwortzeit• Minimiere Wartezeit

Scheduling – p. 8

Page 18: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Ziele

Wie vergleicht man Schedulingalgorithmen gegeneinander?

Uebliche Ziele sind:• Maximiere Ressourcenauslastung• Maximiere Durchsatz• Minimiere Ausfuehrungszeit• Minimiere Antwortzeit

• Minimiere Wartezeit

Scheduling – p. 8

Page 19: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Ziele

Wie vergleicht man Schedulingalgorithmen gegeneinander?

Uebliche Ziele sind:• Maximiere Ressourcenauslastung• Maximiere Durchsatz• Minimiere Ausfuehrungszeit• Minimiere Antwortzeit• Minimiere Wartezeit

Scheduling – p. 8

Page 20: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Bewertung von Schedulingalorithmen

Man muss eine sinnvolle Auswahl an Anforderungen treffen unddie Algorithmen basierend auf dieser Auswahl vergleichen

• Analytische Auswertung• Warteschlangenmodelle• Simulation• Implementierung

Scheduling – p. 9

Page 21: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Analytische Auswertung

Wichtigste Methode ist die deterministische Auswertung. Dieseberechnet die Leistung eines Algorithmus anhand einerbestimmten Arbeitslast

Vorteile:• einfach und schnell• liefert exakte Zahlen

Nachteil:• Aussage nur gueltig fuer untersuchte Arbeitslast

Scheduling – p. 10

Page 22: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Verteilung der CPU Nutzungszeit-Laengen

Scheduling – p. 11

Page 23: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Warteschlangemodelle

Das System wird als ein Netzwerk von Warteschlangendargestellt.

Vorteil:• Nicht spezifisch zur untersuchten Arbeitslast

Nachteile:• Nur eine Abschaetzung• Mathematisch anspruchsvoll

Scheduling – p. 12

Page 24: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Simulation

Wir konstruieren ein Modell, welches das System nachbildet.Dieses Modell wird verwendet um Daten ueber das zuerwartende Verhalten des Systems zu sammeln.

Vorteil:• Wenn das Modell korrekt ist kann man gute Resultate

erzielen

Nachteile:• Hoher Aufwand das Modell zu erzeugen• Eventuell hoher Rechenzeitbedarf

Scheduling – p. 13

Page 25: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Beispiel einer Simulation

Scheduling – p. 14

Page 26: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Implementierung

Man programmiert den Algorithmus und baut ihn in einBetriebssystem ein, um dieses zu untersuchen

Vorteil:• Genaue Resultate

Nachteile:• Sehr hoher Aufwand• Nicht immer moeglich (z.B. bei wichtigen Systemen)• Veraenderung der Umgebung

Scheduling – p. 15

Page 27: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling Algorithmen

• First come, first serve (FCFS)

• Shortest job first◦ unterbrechend (PSJF)◦ nicht unterbrechend (SJF)

• Priority scheduling◦ unterbrechend◦ nicht unterbrechend

• Round-robin scheduling (RR)• Multilevel queue scheduling• Multilevel feedback queue scheduling

Scheduling – p. 16

Page 28: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling Algorithmen

• First come, first serve (FCFS)• Shortest job first

◦ unterbrechend (PSJF)◦ nicht unterbrechend (SJF)

• Priority scheduling◦ unterbrechend◦ nicht unterbrechend

• Round-robin scheduling (RR)• Multilevel queue scheduling• Multilevel feedback queue scheduling

Scheduling – p. 16

Page 29: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling Algorithmen

• First come, first serve (FCFS)• Shortest job first

◦ unterbrechend (PSJF)◦ nicht unterbrechend (SJF)

• Priority scheduling◦ unterbrechend◦ nicht unterbrechend

• Round-robin scheduling (RR)• Multilevel queue scheduling• Multilevel feedback queue scheduling

Scheduling – p. 16

Page 30: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling Algorithmen

• First come, first serve (FCFS)• Shortest job first

◦ unterbrechend (PSJF)◦ nicht unterbrechend (SJF)

• Priority scheduling◦ unterbrechend◦ nicht unterbrechend

• Round-robin scheduling (RR)

• Multilevel queue scheduling• Multilevel feedback queue scheduling

Scheduling – p. 16

Page 31: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling Algorithmen

• First come, first serve (FCFS)• Shortest job first

◦ unterbrechend (PSJF)◦ nicht unterbrechend (SJF)

• Priority scheduling◦ unterbrechend◦ nicht unterbrechend

• Round-robin scheduling (RR)• Multilevel queue scheduling

• Multilevel feedback queue scheduling

Scheduling – p. 16

Page 32: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling Algorithmen

• First come, first serve (FCFS)• Shortest job first

◦ unterbrechend (PSJF)◦ nicht unterbrechend (SJF)

• Priority scheduling◦ unterbrechend◦ nicht unterbrechend

• Round-robin scheduling (RR)• Multilevel queue scheduling• Multilevel feedback queue scheduling

Scheduling – p. 16

Page 33: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Mehr-Prozessor Scheduling

Zusaetzlich zu der Entscheidung, welcher Prozess laufen soll,kommt die Entscheidung auf welcher CPU.

Probleme:• Gleichmaessige Belastung der Prozessoren• Verwaltungsaufwand (z.B. Relokalisieren von Prozessen)

Scheduling – p. 17

Page 34: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling in Linux

Der Linux Scheduler muss vielen Anforderungen genuegen, daLinux auf den verschiedensten Plattformen laeuft, vomHandheld bis zum Mainframe

• Mainframes muessen primaer ihre Resourcen effizientnutzen

• PCs sollen allzeit kurze Reaktionszeiten bieten

Von nun an wird nur die Versionsnummer verwendet um auf diekorrespondierenden Kernel zu verweisen

• 2.4 == Linux Kernel 2.4.*• 2.6 == Linux Kernel 2.6.0-test*

Scheduling – p. 18

Page 35: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling in Linux

Der Linux Scheduler muss vielen Anforderungen genuegen, daLinux auf den verschiedensten Plattformen laeuft, vomHandheld bis zum Mainframe

• Mainframes muessen primaer ihre Resourcen effizientnutzen

• PCs sollen allzeit kurze Reaktionszeiten bieten

Von nun an wird nur die Versionsnummer verwendet um auf diekorrespondierenden Kernel zu verweisen

• 2.4 == Linux Kernel 2.4.*• 2.6 == Linux Kernel 2.6.0-test*

Scheduling – p. 18

Page 36: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling in Linux

Der Linux Scheduler muss vielen Anforderungen genuegen, daLinux auf den verschiedensten Plattformen laeuft, vomHandheld bis zum Mainframe

• Mainframes muessen primaer ihre Resourcen effizientnutzen

• PCs sollen allzeit kurze Reaktionszeiten bieten

Von nun an wird nur die Versionsnummer verwendet um auf diekorrespondierenden Kernel zu verweisen

• 2.4 == Linux Kernel 2.4.*• 2.6 == Linux Kernel 2.6.0-test*

Scheduling – p. 18

Page 37: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Scheduling Klassen in Linux

Sowohl 2.4 als auch 2.6 bieten drei Scheduling-Klassen

SCHED OTHER Traditionelle UNIX Prozesse

SCHED FIFO POSIX.1b FIFO realtime Prozesse

SCHED RR POSIX round-robin realtime Prozesse

Scheduling – p. 19

Page 38: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Der alte 2.4 Scheduler

• Globale, ungeordnete Liste haelt alle lauffaehigen Prozesse

• Vergabe von Punkten in goodness() basierend aufverbleibender Zeit, nice-Wert und CPU Affinitaet

Scheduling – p. 20

Page 39: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Der alte 2.4 Scheduler

• Globale, ungeordnete Liste haelt alle lauffaehigen Prozesse• Vergabe von Punkten in goodness() basierend auf

verbleibender Zeit, nice-Wert und CPU Affinitaet

Scheduling – p. 20

Page 40: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Berechnung des goodness()-Wertes

• Realtime-Prozesse: goodness=1000+rt_priority

• Time-Sharing:◦ quantum>0: goodness=quantum+priority◦ quantum=0: goodness=0

Scheduling – p. 21

Page 41: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Berechnung des goodness()-Wertes

• Realtime-Prozesse: goodness=1000+rt_priority• Time-Sharing:

◦ quantum>0: goodness=quantum+priority◦ quantum=0: goodness=0

Scheduling – p. 21

Page 42: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Probleme des 2.4 Schedulers

• Neuberechnung der Zeitscheiben erst nachdem alleaufgebraucht wurden

• Rescheduling erfordert vollstaendiges Durchlaufen derProzessliste => O(n)

• Schlecht skalierbar wegen globaler Prozessliste

Scheduling – p. 22

Page 43: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Probleme des 2.4 Schedulers

• Neuberechnung der Zeitscheiben erst nachdem alleaufgebraucht wurden

• Rescheduling erfordert vollstaendiges Durchlaufen derProzessliste => O(n)

• Schlecht skalierbar wegen globaler Prozessliste

Scheduling – p. 22

Page 44: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Probleme des 2.4 Schedulers

• Neuberechnung der Zeitscheiben erst nachdem alleaufgebraucht wurden

• Rescheduling erfordert vollstaendiges Durchlaufen derProzessliste => O(n)

• Schlecht skalierbar wegen globaler Prozessliste

Scheduling – p. 22

Page 45: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Probleme des 2.4 Schedulers

• Neuberechnung der Zeitscheiben erst nachdem alleaufgebraucht wurden

• Rescheduling erfordert vollstaendiges Durchlaufen derProzessliste => O(n)

• Schlecht skalierbar wegen globaler Prozessliste

Scheduling – p. 22

Page 46: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Der neue O(1) Scheduler fuer 2.6

Vorteile des neuen Schedulers:• O(1) Algorithmen

• CPU Affinitaet• Verbesserte Interaktivitaet• Verbesserte Skalierbarkeit• Unterbrechbarer Kernel• Fuer weiche Echtzeit geeignet

Scheduling – p. 23

Page 47: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Der neue O(1) Scheduler fuer 2.6

Vorteile des neuen Schedulers:• O(1) Algorithmen• CPU Affinitaet

• Verbesserte Interaktivitaet• Verbesserte Skalierbarkeit• Unterbrechbarer Kernel• Fuer weiche Echtzeit geeignet

Scheduling – p. 23

Page 48: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Der neue O(1) Scheduler fuer 2.6

Vorteile des neuen Schedulers:• O(1) Algorithmen• CPU Affinitaet• Verbesserte Interaktivitaet

• Verbesserte Skalierbarkeit• Unterbrechbarer Kernel• Fuer weiche Echtzeit geeignet

Scheduling – p. 23

Page 49: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Der neue O(1) Scheduler fuer 2.6

Vorteile des neuen Schedulers:• O(1) Algorithmen• CPU Affinitaet• Verbesserte Interaktivitaet• Verbesserte Skalierbarkeit

• Unterbrechbarer Kernel• Fuer weiche Echtzeit geeignet

Scheduling – p. 23

Page 50: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Der neue O(1) Scheduler fuer 2.6

Vorteile des neuen Schedulers:• O(1) Algorithmen• CPU Affinitaet• Verbesserte Interaktivitaet• Verbesserte Skalierbarkeit• Unterbrechbarer Kernel

• Fuer weiche Echtzeit geeignet

Scheduling – p. 23

Page 51: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Der neue O(1) Scheduler fuer 2.6

Vorteile des neuen Schedulers:• O(1) Algorithmen• CPU Affinitaet• Verbesserte Interaktivitaet• Verbesserte Skalierbarkeit• Unterbrechbarer Kernel• Fuer weiche Echtzeit geeignet

Scheduling – p. 23

Page 52: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Prozesslisten

Der Scheduler benutzt zwei nach Prioritaet geordnete Felder.• Eines fuer Prozesse, die noch Prozessorzeit uebrig haben

(active array)• Eines fuer Prozesse, die ihre Prozessorzeit verbraucht

haben (expired array)

Scheduling – p. 24

Page 53: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Prozesslistenfelder

Jedes dieser Felder enthaelt 140 Eintraege, die auf Listenzeigen.

• Die ersten 100 Eintraege sind fuer Echtzeitprozesse• Die letzten 40 representieren die 40 nice Werte von -19 bis

20

Prozesse, die ihre Prozessorenzeit verbraucht haben, werdenvom "active array" ins "expired array" verschoben.

Scheduling – p. 25

Page 54: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Beispiel

Scheduling – p. 26

Page 55: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Beispiel

Scheduling – p. 27

Page 56: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Vorteile dieses Ansatzes

• Der Wechsel der Felder erfordert nur das Wechseln zweierZeiger

• Der Prozess mit der hoechsten Prioritaet laesst sich schnellueber einen bitmap cache finden

• Hochpriorisierte Prozesse koennen niedrig priorisierte nichtam Laufen hindern

Scheduling – p. 28

Page 57: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Vorteile dieses Ansatzes

• Der Wechsel der Felder erfordert nur das Wechseln zweierZeiger

• Der Prozess mit der hoechsten Prioritaet laesst sich schnellueber einen bitmap cache finden

• Hochpriorisierte Prozesse koennen niedrig priorisierte nichtam Laufen hindern

Scheduling – p. 28

Page 58: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Vorteile dieses Ansatzes

• Der Wechsel der Felder erfordert nur das Wechseln zweierZeiger

• Der Prozess mit der hoechsten Prioritaet laesst sich schnellueber einen bitmap cache finden

• Hochpriorisierte Prozesse koennen niedrig priorisierte nichtam Laufen hindern

Scheduling – p. 28

Page 59: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Veraendern der Prioritaeten und Zeitscheiben

Pro Prozess wird eine Last-Abschaetzung durchgefuehrt• Ringbuffer mit vier Eintraegen• Wird verwendet um die Last-Historie des Prozesses

aufzuzeichnen• Prozesse, die viel Last zum System beitragen, werden

depriorisiert• Gegebener Rahmen fuer Prioritaetsaenderung durch

statische Prioritaet

Prozesse mit hoeherer Prioritaet bekommen groessereZeitscheiben

Scheduling – p. 29

Page 60: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Fazit

Scheduling:• Scheduling ist einer der wichtigsten Teile des

Betriebssystems• Theoretisch einfach, praktisch schwierig

Linux:• Alter Scheduler bereits gut• Neuer Scheduler wesentlich besser fuer interaktive Nutzung

und Extremsituationen

Scheduling – p. 30

Page 61: Linux 2.4 vs. 2€¦ · Linux auf den verschiedensten Plattformen laeuft, vom Handheld bis zum Mainframe Mainframes muessen primaer ihre Resourcen efzient nutzen PCs sollen allzeit

Fazit

Scheduling:• Scheduling ist einer der wichtigsten Teile des

Betriebssystems• Theoretisch einfach, praktisch schwierig

Linux:• Alter Scheduler bereits gut• Neuer Scheduler wesentlich besser fuer interaktive Nutzung

und Extremsituationen

Scheduling – p. 30