• Keine Ergebnisse gefunden

Vorlesung Betriebssysteme I Thema 7: Zuteilung des Prozessors Robert Baumgartl 19. Januar 2021

N/A
N/A
Protected

Academic year: 2021

Aktie "Vorlesung Betriebssysteme I Thema 7: Zuteilung des Prozessors Robert Baumgartl 19. Januar 2021"

Copied!
34
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorlesung Betriebssysteme I

Thema 7: Zuteilung des Prozessors

Robert Baumgartl

19. Januar 2021

(2)

Prozessorzuteilung (Scheduling)

I = Beantwortung der Frage:

„Welche Aktivität soll zu einem bestimmten Zeitpunkt abgearbeitet werden (und für wie lange)?“

I Komponente im Betriebssystem: derScheduler(Planer) I Verfahren zur Ermittlung einer Abarbeitungsplans

(Schedule)

(3)

Typische Zielgrößen

Je nachbetrachteter Systemklasse(z. B. Batchsysteme, Interaktive Systeme, Echtzeitsysteme) existieren verschiedene zu optimierende Parameter:

I mittlere Reaktionszeit aller Prozesse

I mittlere Verweilzeit aller Prozesse (turnaround time) I maximale CPU-Ausnutzung

I maximale Anzahl gleichzeitiger Datenströme I Garantie einer maximalen Reaktionszeit

I Fairness:nProzesse→jeder 1/nder Prozessorzeit I Quality-of-Service (QoS): „Jeder bekommt so viel, wie er

bezahlt hat.“

I Ausschluss des Verhungerns einzelner Prozesse

(4)

Planung anderer Ressourcen

Außer dem Prozessor können (müssen aber nicht) die folgenden Ressourcen geplant werden:

I Hauptspeicher,

I Aufträge an den Massenspeicher, I Kommunikationsbandbreite, I Interrupts

I . . .

Beispiel: Linux besitzt einen sog. I/O-Scheduler, der Festplattenaufträge plant (d. h. , ggf. umsortiert).

(5)

Beispiel: Schedulingebenen in einem Batch-System

CPU

Haupt−

speicher

Disk

Admission Scheduler

Scheduler CPU

Memory Scheduler Input Queue

Arriving Job

Quelle: Andrew Tanenbaum,Modern Operating Systems. 2000, S. 141

(6)

Off-Line- vs. On-Line-Verfahren

Off-Line

I komplette Ermittlung des Abarbeitungsplansvor Inbetriebnahme des Systems

I Zur Laufzeit des Systems wird der vorbereitete Plan abgearbeitet (keine Entscheidungen mehr notwendig).

I inflexibel

I sehr hohe Auslastung möglich

I Startzeitpunkte, Ausführungszeiten, Abhängigkeiten aller Aktivitäten müssena prioribekannt sein.

I z. B. bei autonomen oder Echtzeit-Systemen

I situationsspezifische Pläne möglich, System unterscheidet mehrereModi

(7)

Off-Line- vs. On-Line-Verfahren

On-Line

I Auswahl des jeweils nächsten abzuarbeitenden Prozesses erfolgt zur Laufzeit des Systems.

I Flexibel: System kann auf Änderungen verschiedener Parameter, Umwelteinflüsse, Nutzeranforderungen reagieren

I keine Zeit für langwierige Auswahlverfahren→ Kompromiss zwischen Optimalität des ausgesuchten Prozesses und Dauer für die Entscheidung notwendig.

Typische interaktive Betriebssysteme wie Windows oder Linux planen on-line.

(8)

Beispiel für Off-Line-Scheduling

Ein (nicht näher spezifiziertes) Rechensystem bestehe aus 3 Prozessen, die wiederum aus den folgenden unabhängigen Teilprozessenbestehen (benötigte Rechenzeit in Klammern):

P1:{p11(3), p12(2), p13(2), p14(5)} P2:{p21(5), p22(7)}

P3:{p31(5), p32(2)}

Außerdem bestehen die folgenden expliziten zeitlichen Abhängigkeiten zwischen den Teilprozessen:

p21 vor p12, p12 vor p22, p13 vor p31, p14 vor p32, p22 vor p32.

Darüberhinaus müssen die Teilprozesse ein- und desselben Prozesses hintereinander liegen.

(9)

Präzedenzgraph

Die zeitlichen Abhängigkeiten veranschaulicht man am besten in einemPräzedenzgraphen:

I einenKnotenfür jeden Teilprozess

I eineKantezwischen zwei Knoten genau dann, wenn der erste Knoten beendet sein muss, bevor der zweite gestartet werden darf

3

p

p

p

21

5

2

12

13

2

22

7

14

5

31

5 32

2 p11

p

p

p

p

Abbildung:Präzedenzgraph des Beispielprozesssystems

(10)

Ableitung eines Schedules (off-line)

Verfahren:

1. Bildung der Bereit-MengeB(enthält alle Prozesse, die abgearbeitet werden können)

2. Auswahl vonnProzessen ausB(nist die

Prozessoranzahl, im einfachsten Falle also 1) nach vorgegebenem Kriterium (z. B. „den kürzesten Prozess zuerst“)

3. Planung der ausgewählten Prozesse für bestimmte Zeitspanne (im einfachsten Falle: füreineZeiteinheit) 4. Falls noch nicht alle Prozesse geplant sind→Goto 1 5. Stop

(11)

Anwendung auf Beispieltaskmenge

I n=2 (z. B. Dualcore-Prozessor)

I Auswahl des jeweils kürzesten Prozesses (Shortest Job Next)

I Abarbeitung ohne Unterbrechung, wenn einmal gestartet (Run-to-Completion)

Zeit B Auswahl

0 p11,p21 p11,p21 3 (p21) (p21)

5 p12 p12

7 p13,p22 p13,p22

9 p14,p31 p14

14 p31 p31

19 p32 p31

Tabelle:Schedulingzeitpunkte für Beispiel

(12)

Resultierender Schedule

0 2 4 6 8 10 12 14 16 18 20 22

p21

p11 p12 p13

p22

p14 p31 p32

P1 P2

Abbildung:Off-Line Schedule für Beispieltaskmenge und ohne Unterbrechungen

I Resultat: Gantt-Diagramm (benannt nach dem Unternehmensberater (!) Henry L. Gantt)

I Komplettierung des letzten Teilprozesses zut =21 I Prozessoren nicht voll ausgelastet (idle time); Ursache:

Präzedenzen zwischen Teilprozessen

(13)

Zeitgesteuertes Scheduling

I alle Abläufe im System erfolgen in festem zeitlichen Rahmen, periodisch

I keine Interrupts→keine unvorhergesehenen Aktivitäten I Kommunikation mit externe Komponenten: Abfragen

(Polling)

I typisch für autonome und Echtzeitsysteme

I Nutzung von off-line ermittelten Schedules, zwischen denen umgeschaltet werden kann (Moduswechsel) I Beispiel: MedienzugriffsverfahrenTimeDivisionMultiple

Access (TDMA)

(14)

Time Division Multiple Access

Prinzip:

I Übertragungszeit wird in (unendlich viele) Perioden fester Länge aufgeteilt

I innerhalb jeder Periode erhältjeder(potentielle)

Kommunikationsteilnehmer 1/nder Periodenlänge, einen sog.Slot

I in seinem Slot kann jeder senden oder nicht I →keine Kollisionen möglich

1 2 3 4 5 6 7 t

Slot 0

Prozess sendet nicht.

...

(15)

Ereignisgesteuertes Scheduling

Prinzip:

I System reagiert auf Einflüsse von außen (Interrupts) I Aktivitäten werden als Reaktion auf Interrupts bereit I prinzipiell keine Garantie von Ausführungszeiten möglich,

da Auftrittszeitpunkte von Interrupts nicht vorhersehbar I typisch für interaktive Systeme

I Beispiel: Grafische Benutzeroberflächen (Ereignisse:

Mausbewegung, Klick, Tastendruck, aber auch Interrupt durch die Netzwerkkarte)

(16)

Was passiert denn eigentlich beim Interrupt?

Instruktion n Instruktion n+1 Instruktion n+2

Instruktion 2 Instruktion 1

IRET Interrupt

Interruptservice−

Prozess

Routine (ISR)

Abbildung:Ablauf einer Interruptbehandlung (vereinfacht)

I Interrupts sindasynchronzum Programmablauf I Quellen: Geräte (I/O), Programm, Betriebssystem

(17)

Interrupt: Ablauf in der CPU

Device controller or other system hardware issues an interrupt

Processor finishes execution of current instruction

Processor signals acknowledgment of interrupt

Processor pushes PSW and PC onto control stack

Processor loads new PC value based on interrupt

Save remainder of process state information

Process interrupt

Restore process state information

Restore old PSW and PC

Hardware Software

Figure 1.10 Simple Interrupt Processing

(William Stallings:Operating Systems. 6th ed., Pearson, 2009)

(18)

Schedulingzeitpunkt beim On-Line Scheduling

Unterbrechung eines aktiven Prozesses:

I durch das BS, (prinzipiell) jederzeit (präemptives Multitasking):

I wenn ein Prozess blockiert (z. B. an Ressource),

I wenn ein Prozess bereit wird (z. B. als Reaktion auf einen Interrupt oder durch eine Ressourcenfreigabe),

I wenn ein Prozess endet.

I durch das BS, jedoch nur an bestimmten Stellen, sogenanntenPreemption Points

I freiwillig, an bestimmten Stellen, z. B. Systemruf (kooperatives Multitasking)

I nach Komplettierung einer Aktivität (run-to-completion)

(19)

Prioritäten und Priorisierung

I (gewollt) unfair, Prozesse besitzen unterschiedliche Wichtigkeit

I einfachste Möglichkeit:FixedExternalPriorities (FEP)) I d. h. , jeder Prozess erhält vor der Laufzeit des Systems

einen Parameterfestzugeordnet, der seine Wichtigkeit ausdrückt, seine Priorität

I zur Laufzeit wird stets der höchstpriorisierte unter allen bereiten Prozessen ausgewählt

(20)

Prioritäten zum zweiten

Implizite Prioritäten: ein bestimmter Parameter jedes Prozesses wird „zweckentfremdet“ zur Bestimmung der Priorität herangezogen.

Beispiele:

I Länge des Jobs

I verbleibende Abarbeitungszeit I Zeit seit letzter Aktivierung

I Deadline (Zeit bis zur unbedingten Komplettierung)

(21)

Statische und dynamische Prioritäten

Statisch: Priorität eines Prozesses ist konstant.

I einfacher Scheduler I gut zu analysieren

I nicht besonders flexibel (was ist, wenn sich die Wichtigkeit eines Prozesses ändert?)

Dynamisch: Priorität eines Prozesses ändert sich mit der Zeit.

I periodische Neuberechnung (Aufwand!) I erlaubt situationsspezifische Anpassungen I schwieriger zu analysieren

(22)

Uniprozessor- vs. Multiprozessor-Scheduling

I zusätzlich nötige Entscheidung,woProzess abgearbeitet wird

I Ziel:Load Balancing

I zu starr: möglicherweise schlechte Ausnutzung der Prozessoren

I zu flexibel: häufiger Wechsel des Prozessors (Thrashing)

sehr hoher Overhead

I ideal: auf einem unbeschäftigten Prozessor fortsetzen I günstig: Prozessor, auf dem der Prozess unterbrochen

wurde (Cache, TLB)

I ParameterAffinitätdes Prozesses zu einem bestimmten Prozessor

(23)

Round Robin – Zeitscheibenverfahren

Idee: Jeder Prozess erhält den Prozessor für eine bestimmte Zeitspanne (Quantum tq), dann ist der nächste dran.

I Grundgedanke: Fairness

I tqklein→Umschaltaufwand im Verhältnis zur Nutzarbeit groß, kleine Reaktionszeit pro Prozess

I tqgroß→relativer Umschaltaufwand klein, Reaktionszeit pro Prozess groß

I wichtiger Parameter: Umschaltzeittcs (Context Switch Time)

I Reaktionszeit eines Prozesses abhängig vontcs, Anzahl Prozesse,tq

I häufig Kombination mit Prioritäten (RR innerhalb einer Prioritätsklasse)

(24)

Veranschaulichung Round-Robin

P1 P1

tcs

tq

trsp

P2 P3

... ...

Abbildung:Parameter beim Zeitscheibenverfahren

(25)

Beispiel: Einfache Batch-Verfahren

First In First Out (FIFO, FCFS)

I Prozesse werden in der Reihenfolge ihres Eintreffens (vollständig abgearbeitet)

I fair

I leicht zu analysieren (→Warteschlangentheorie) Shortest Job Next (SJN)

I Idee: schnell ein paar kurze Jobs fertigstellen, bevor alle auf einen langen Job warten müssen.

I Prozess mit der kürzesten Dauer wird ausgewählt, run-to-completion

I Ausführungszeit muss bekannt sein

I minimiert mittlere Verweilzeit (tv) und mittlere Wartezeit (tw)

I ungerecht, Verhungern möglich

(26)

Beispiel zu SJN

4 Beispieltasks:

Job Dauer J1 6 J2 8 J3 7 J4 3

J4 J1 J3 J2

0 3 9 16 24

Abbildung:Resultierender SJN-Schedule

tw = 0+3+9+16

=7 tv = 3+9+16+24

=13

(27)

Unix

Interaktive vs. rechnende Prozesse

I zeitscheibengesteuert (Quantum)

I versucht, 2 Klassen von Prozessen zu unterscheiden und getrennt zu behandeln:

1. interaktive („I/O-bound“)

2. (vorwiegend) rechnende („compute-bound“)

I Rechnende Prozesse nutzen ihre Zeitscheibe voll aus I Interaktive Prozesse nutzen ihre Zeitscheibe häufig nicht

aus (warten auf Interaktion durch Nutzer oder Gerät; d. h.

blockieren häufig)

I wenn Zeitscheibe nicht ausgenutzt, wird Priorität (leicht) erhöht→Unix bevorzugt interaktive Prozesse:

I interaktive Prozesse reagieren besser

I rechnende Prozesse werden etwas benachteiligt

(28)

Unix

Anpassung der Priorität durch den Nutzer

I Jeder Prozess besitzt (zusätzlich zur Priorität) einen sog.nice-Value

I genutzt, um betreffenden Prozess bezüglich Rechenzeit zu bevorzugen oder zu benachteiligen (im Vergleich zu

anderen Prozessen)

I nice-Wert wird zur aktuellen Priorität addiert I -20: größtmögliche Bevorzugung

I 0: voreingestellter Wert

I 19: größtmögliche Benachteiligung

I Kommandosnice(für neu zu startende Prozesse) und renice(für bereits laufende Prozesse) ändern diesen Wert

robge@ipo51:$ renice 15 -p 24195

24195 (process ID) old priority 0, new priority 15

I Normale Nutzer dürfen ausschließlich Prioritäteigener

(29)

Anzeige Priorität und nice-Wert mittels top

top - 14:31:23 up 3:28, 6 users, load average: 1.68, 0.67, 0.30 Tasks: 91 total, 4 running, 87 sleeping, 0 stopped, 0 zombie

Cpu(s): 42.1%us, 44.7%sy, 13.2%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 256396k total, 239564k used, 16832k free, 31364k buffers Swap: 1048568k total, 84k used, 1048484k free, 100936k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3735 root 16 0 161m 12m 4400 R 50.9 4.9 3:08.68 Xorg 24194 robge 15 0 7404 3216 2244 S 26.6 1.3 1:59.25 xterm 24195 robge 39 19 5672 2636 1412 R 15.6 1.0 2:08.29 bash 23793 robge 15 0 9640 5808 4272 S 6.0 2.3 0:01.57 WindowMaker 23928 robge 15 0 7408 3260 2264 R 0.3 1.3 0:01.82 xterm

1 root 15 0 1948 648 552 S 0.0 0.3 0:01.14 init 2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 4 root 10 -5 0 0 0 S 0.0 0.0 0:00.08 events/0 5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper 6 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 kthread 9 root 17 -5 0 0 0 S 0.0 0.0 0:00.00 kblockd/0 10 root 19 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid 104 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 kseriod 138 root 15 0 0 0 0 S 0.0 0.0 0:00.01 pdflush 139 root 15 0 0 0 0 S 0.0 0.0 0:00.08 pdflush 140 root 10 -5 0 0 0 S 0.0 0.0 0:01.04 kswapd0

(30)

Linux?

I dynamische Prioritäten mit Zeitscheiben I genaues Verfahren ziemlich kompliziert Literatur:

I Jean-Pierre Lozi u. a.“The Linux Scheduler: a Decade of Wasted Cores”.In:Proceedings of the Eleventh European Conference on Computer Systems (EUROSYS’16).

London, Apr. 2016

I Nikita Ishkov.“A complete guide to Linux process

scheduling”.Magisterarb. University of Tampere, School of Information Sciences, Feb. 2015

(31)

Scheduling in Windows 2000/XP/Vista/.../10

I prioritätsgesteuert, präemptiv

31

16 15

1 0

"real−time" levels

variable levels

system level

Abbildung:Prioritätsstufen in Windows-Betriebssystemen

(32)

Scheduling in Windows 2000/XP/Vista

I Round-Robin bei Threads gleicher Priorität I Länge des Quantums differiert für Desktop- und

Server-Variante (Server: 6fach länger!)

I Quantum wird für Vordergrundthreads verdoppelt I temporäre Prioritätsanhebung (Priority Boost) in den

Levels 1-15 u. a. bei

I Komplettierung einer I/O-Operation

I Fensterthreads, die in den Vordergrund gelangen, I Gefahr des Verhungerns.

(33)

Prinzip des Priority Boost

tq

priorität Basis−

Priorität

aktiv wartend aktiv preempted aktiv

Zeit

(34)

Was haben wir gelernt?

1. on-line vs. off-line Scheduling

2. zeitgesteuertes vs. ereignisgesteuertes Scheduling 3. Interrupts

4. kooperatives vs. präemptives Multitasking 5. statische vs. dynamische Prioritäten

6. Round Robin; Einfluss der Zeitscheibenlänge

7. Grundprinzipien des Scheduling in UNIX und Windows

Abbildung

Figure 1.10   Simple Interrupt Processing

Referenzen

ÄHNLICHE DOKUMENTE

I Idee: nur in einem privilegierten Modus (Kernel Mode) dürfen alle Operationen ausgeführt werden (z.B. Zugriff auf die Hardware, Manipulation von systemrelevanten. Datenstrukturen

I wartend → aktiv: nicht sinnvoll (Prozess erhält eine Ressource, auf die er wartet, rückgebender aktiver Prozess würde für Ressourcenrückgabe „bestraft“) I Es gibt stets

I abfangbares Signal: wenn kein Signalhandler installiert → Default-Aktion {Abbruch, Stop, Ignorieren} ausgeführt I wenn entsprechender Handler installiert → Handler wird.

I wenn Zeitscheibe nicht ausgenutzt, wird Priorität (leicht) erhöht → Unix bevorzugt interaktive Prozesse:. I interaktive Prozesse

pthread_create() Anlegen eines neuen Threads pthread_join() Warten auf Ende des Threads pthread_exit() Beenden des rufenden Threads pthread_detach() Abkoppeln vom Vater.

Abbildung: Zwei Funktionen klammern den kritischen Abschnitt Jeder, der auf eine gemeinsam genutzte Variable zugreift, muss diese Funktionen vor bzw.. nach dem

I wenn Zeitscheibe nicht ausgenutzt, wird Priorität (leicht) erhöht → Unix bevorzugt interaktive Prozesse:. I interaktive Prozesse

gibt alle Dateien, deren Namen mit einem Großbuchstaben beginnen und die genau 3 Zeichen lang sind, aus. 7