• Keine Ergebnisse gefunden

Vorlesung Betriebssysteme I

N/A
N/A
Protected

Academic year: 2021

Aktie "Vorlesung Betriebssysteme I"

Copied!
6
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorlesung Betriebssysteme I

Thema 7: Zuteilung des Prozessors Robert Baumgartl

19. Januar 2021

1 / 34

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)

2 / 34

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

3 / 34

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).

4 / 34

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

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

(2)

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.

7 / 34

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:

p21vor p12, p12vor p22, p13vor p31, p14vor p32, p22vor p32.

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

8 / 34

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

9 / 34

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

10 / 34

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

11 / 34

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

12 / 34

(3)

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)

13 / 34

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

Periode 0

Prozess sendet nicht.

...

14 / 34

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)

15 / 34

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

16 / 34

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)

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)

(4)

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

19 / 34

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)

20 / 34

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

21 / 34

Uniprozessor- vs. Multiprozessor-Scheduling

I zusätzlich nötige Entscheidung,woProzess abgearbeitet I wirdZiel: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

22 / 34

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)

23 / 34

Veranschaulichung Round-Robin

P1 P1

tcs

tq

trsp

P2 P3

... ...

Abbildung:Parameter beim Zeitscheibenverfahren

24 / 34

(5)

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

25 / 34

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

4 =7 tv=3+9+16+24

4 =13

26 / 34

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

27 / 34

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

Prozessereduzieren.

28 / 34

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

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

(6)

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

31 / 34

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.

32 / 34

Prinzip des Priority Boost

tq

priorität Basis−

Priorität

aktiv wartend aktiv preempted aktiv

Zeit

33 / 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

34 / 34

Abbildung

Figure 1.10   Simple Interrupt Processing

Referenzen

ÄHNLICHE DOKUMENTE

O Ich mache mein Vordiplom nach der neuen Version der Pr¨ ufungsordnung und habe keine Betriebssystem-Pr¨ ufung nach alter Version bestanden (Pr¨ ufungsumfang = 4+2 SWS / Teil A + B

Möchten sich Studenten schließlich nach erfolgreicher Immatrikulation etwa für einen Wohnheimplatz bewerben, müssen Informationen über Wohnheime ebenfalls über

Die Oberfläche (der Spielplan) wird aus den in der ersten Phase definierten Objekten und Attributen generisch erzeugt und als Websei- te auf den Endgeräten der Studierenden

System Service Dispatcher (Kernel mode callable interfaces) manager I/O manager Cache manager Object manager Plug and Play monitor reference Security manager Memory manager

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 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

Es sei gegeben I, S und eine Menge von endlichdimensionalen Verteilungen, die die Bedingungen 1+2