Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Modul: B-BS Betriebssysteme WS 2012/13 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik.

Ähnliche Präsentationen


Präsentation zum Thema: "Modul: B-BS Betriebssysteme WS 2012/13 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik."—  Präsentation transkript:

1

2 Modul: B-BS Betriebssysteme WS 2012/13 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Prozesse

3 Folie 2 R.Brause: Betriebssysteme WS12/13 - Prozesse Inhalt Prozesse Was ist ein Prozess? Wie wir er erzeugt? Was sind Threads? Wann nimmt man Threads, wann Prozesse? Prozess-Scheduling und Dispatching Scheduling in Echtzeitsystemen Scheduling in Multiprozessorsystemen

4 Folie 3 R.Brause: Betriebssysteme WS12/13 - Prozesse Prozess-Scheduling Prozesse Echtzeit-Scheduling Nebenläufigkeit Multiproz.-Scheduling

5 Folie 4 R.Brause: Betriebssysteme WS12/13 - Prozesse Programme und Prozesse Warum Mehrprozessbetrieb? Effiziente Nutzung des Systems Mehrprogrammbetrieb: mehrere Teilnehmer und mehrere Aufgaben am Rechner bzw. Server-Betrieb im Netz Parallelbetrieb: unterschiedliche CPU vs.I/O-Nutzung parallel auszuführender Programme

6 Folie 5 R.Brause: Betriebssysteme WS12/13 - Prozesse CPU-Idle Diskette Festplatte Drucker... und noch freie Prozessorkapazität für rechenintensives Programm im Hintergrund Parallelbetrieb: bessere CPU-Nutzung bei Ein/Ausg. Daten drucken Platte lesen Daten lesen Daten drucken Platte schreiben Platte lesen Platte.. Prozesse und IO

7 Folie 6 R.Brause: Betriebssysteme WS12/13 - Prozesse Woraus bestehen Prozesse ? Prozess = Programmdaten + Prozeßkontext Prozess CPU MMU Register Dateiinfo, Zugriffs- Kernel- rechtestack Prozesskontext Pro- gramm Stack Daten

8 Folie 7 R.Brause: Betriebssysteme WS12/13 - Prozesse Unix Prozesskontext Speicherresidente Prozesskontrollblöcke PCB der Prozesstafel Scheduling-Parameter Speicherreferenzen: Code-, Daten-, Stackadressen im Haupt- bzw. Massenspeicher Signaldaten: Masken, Zustände Verschiedenes: Prozesszustand, erwartetes Ereignis, Timerzustand, PID, PID der Eltern, User/Group-IDs Auslagerbarer Benutzerkontext (swappable user structure) Prozessorzustand: Register, FPU-Register, Systemaufruf: Parameter, bisherige Ergebnisse, Datei-Info-Tabelle (file descriptor table) Benutzungsinfo: CPU-Zeit, max. Stackgröße, Kernel-stack: Platz für Systemaufrufe des Prozesses

9 Folie 8 R.Brause: Betriebssysteme WS12/13 - Prozesse Prozesszustände Prozesse warten... auf den Prozessor (bereit) auf eine Nachricht (blockiert) auf ein Zeitsignal (blockiert) auf Daten des I/O-Geräts (blockiert) nicht-ex. erzeugt bereit itermniert nicht-ex erhalte Signal aktiv running Zuteilung blockiert erwarte Signal Dispatcheraktionen Scheduler Erstellen der bereit-Liste Dispatcher schnelle Zuteilung zur CPU

10 Folie 9 R.Brause: Betriebssysteme WS12/13 - Prozesse Beispiel Unix: Prozesszustände blockiert erzeugt nicht-ex. idle bereit aktiv zombi nicht-ex. stop erhalte Signal Zuteilung warte auf Ereignis warte auf Eltern weitermachen terminiert

11 Folie 10 R.Brause: Betriebssysteme WS12/13 - Prozesse Beispiel Prozesserzeugung Ein Programm (Job) kann mehrere Prozesse erzeugen z.B. UNIX shell (Elternprozeß) cat Text1 Text2 Kindsprozess1 Kindsprozess2 | pr Kindsprozess3 | lpr

12 Folie 11 R.Brause: Betriebssysteme WS12/13 - Prozesse Beispiel Prozesserzeugung Beispiel shell Pseudocode LOOP Write(prompt); (* tippe z. B. ´>´ *) ReadLine(command, params); (* lese strings, getrennt durch Leertaste *) pid := fork(); (* erzeuge Kopie dieses Prozesses *) IF (pid=0) THEN execve(command,params,0 )(* Kind: überlade mit Programm *) ELSE wait() (* Eltern: warte aufs Ende vom Kind *) END;

13 Folie 12 R.Brause: Betriebssysteme WS12/13 - Prozesse Kind if (PID==0) {exec (program)... }; /* PID = = 0 */ Unix: Prozesserzeugung Eltern PID = fork() /* PID 0 */ if (PID==0) {... }; PID = wait(Status)... exit(Status) };...

14 Folie 13 R.Brause: Betriebssysteme WS12/13 - Prozesse Windows NT: Thread-Zustände waiting. nicht-ex. init ready running termin. nicht-ex. standby erhalte Signal dispatch warte auf Signal Abbruch ausgewählt, abgebrochen terminierterzeugt trans

15 Folie 14 R.Brause: Betriebssysteme WS12/13 - Prozesse Windows NT Subsystem-Prozesserzeugung Win32 : NewPIDhandle := NtCreateProcess (Eltern=CurrentPID) POSIX : NewPID = fork() LPC-message SystemCall Unix-Prozesserzeugung WinNT kernel

16 Folie 15 Prozesse: User mode und kernel mode UNIX Windows NT R.Brause: Betriebssysteme WS12/13 - Prozesse User Prozess user mode kernel mode sys call kernel code User Prozess user mode kernel mode sys call Kernel Prozess

17 Folie 16 Frage Welche Prozess-Zustände haben Warteschlangen, welche keine? R.Brause: Betriebssysteme WS12/13 - Prozesse Antwort: Warteschlangen: bereit, blockiert. Keine Warteschlangen: alle anderen: - aktiv, standby, nicht-existent, ….

18 Folie 17 R.Brause: Betriebssysteme WS12/13 - Prozesse Prozess-Scheduling Prozesse Echtzeit-Scheduling Nebenläufigkeit Multiproz.-Scheduling

19 Folie 18 R.Brause: Betriebssysteme WS12/13 - Prozesse Threads (Coroutinen) gemeinsamer Prozeßkontext (Speicher- Addressbereich, Dateien (file handles) Thread 1 Thread 2 Thread 3 Gemeinsamer Prozeßkontext asynchroner, paralleler, unterschiedlicher Programmverlauf (stack !)

20 Folie 19 R.Brause: Betriebssysteme WS12/13 - Prozesse Nebenläufigkeit Methoden Methode 1 Methode 2 Methode n return call local11.1 local2B ReturnAdr nach Methode 1 arg1Error local12.25 local2A ReturnAdr nach Methode 2 arg1false arg local13.3 ReturnAdr nach Methode n-1 arg 11 arg 2Hallo local local 2A local 3[2.1, 3.2, 5.0] gemeinsamer Stack: temp., lokale Variable Prozess- StackPointer

21 Folie 20 R.Brause: Betriebssysteme WS12/13 - Prozesse Nebenläufigkeit Coroutinen und Threads Thread 1 Thread 3 Thread 4 Thread 2 local1 1.1 local2 hallo local1 3.3 local2 1 local3 true local local local2 B Prozess- StackPointer Stack 1 Stack 3 Stack 4 Stack 2

22 Folie 21 R.Brause: Betriebssysteme WS12/13 - Prozesse Nebenläufigkeit Prozesse Prozesskontext Speicher RAM Code hallo … 1.1 B Return 1 error 2.25 A Methode 1 … Methode 2 … main Dateiinfo, Zugriffs- Zugriffs- Kernel- rechte rechte stack CPU Register MMU Register Dateiinfo, Zugriffs- Zugriffs- Kernel- rechte rechte stack CPU Register MMU Register PC SP SP 1 SP true … 1.1 B 2.25 A … Thread 1 … Thread 2 … main SP PC und Threads Prozess Prozess

23 Folie 22 Prozesse und Threads DEF Prozess Ein Prozess umfasst Programmcode sowie alle Verwaltungsinformation, die zum Ausführen unabhängig von anderem Programmcode vom Betriebssystem benötigt wird (Prozesskontext). Er teilt mit anderen Prozessen nichts, nur die global bekannten Betriebsmittel wie Dateisystem etc. Er kann als Untereinheiten mehrere Threads enthalten. DEF Thread Ein Thread umfasst neben dem Programmcode nur die Verwaltungsinformation SP des Stacks und des Programmzählers PC. Er teilt den gesamten restlichen Prozesskontext (Speicherbereich, offene Dateien, Pipes, …) mit allen anderen Threads seines Prozesses. R.Brause: Betriebssysteme WS12/13 - Prozesse

24 Folie 23 R.Brause: Betriebssysteme WS12/13 - Prozesse Thread- Typen: lightweight threads nkontrolliert vom Benutzerprogramm (z.B. Unix-Bibliothek). Sie laufen im (wie der Prozess) im user mode. Vorteil:sehr schneller thread-Wechsel T 1, T 2 Nachteil: Blockieren aller threads bei I/O-Warten von einem thread. Prozess T1T1 T2T2 Prozeß- I/O Systemaufruf

25 Folie 24 R.Brause: Betriebssysteme WS12/13 - Prozesse Thread- Typen: heavyweight threads nkontrolliert vom Betriebssystem (z.B. Windows NT) via system calls. Sie laufen (wie der Prozess) im user mode. Vorteil:Unabhängiger I/O aller threads T 1, T 2 Nachteil:langsamer BS-Systemaufruf nötig fibers in Windows NT Prozess T1T1 T2T2 thread I/Othread I/O Systemaufruf

26 Folie 25 R.Brause: Betriebssysteme WS12/13 - Prozesse Frage Wozu gibt es Threads im Unterschied zu Prozessen? Bitte schreiben Sie einen Satz auf, und geben das Papier Ihrem linken Nachbarn. Antwort Damit unabhängige Teilaufgaben auch unabhängig abgearbeitet werden können, ohne zeitaufwändigen Kontextwechsel

27 Folie 26 R.Brause: Betriebssysteme WS12/13 - Prozesse Prozess-Scheduling Prozesse Echtzeit-Scheduling Nebenläufigkeit Multiproz.-Scheduling

28 Folie 27 R.Brause: Betriebssysteme WS12/13 - Prozesse Prozeßscheduling Vorplanung in verschiedenen Zeitma ß st ä ben Hier: Nur Kurzzeitschedul ! Ankunft WarteschlangeAbgang Prozessor

29 Folie 28 R.Brause: Betriebssysteme WS12/13 - Prozesse Prozeßscheduling: Ziele n Auslastung der CPU Ziel ist die 100%ige Auslastung der CPU, normal 40% – 90%. n Durchsatz (throughput) # Jobs pro Zeiteinheit sollte maximal sein. n Faire Behandlung (fairness) Jeder Benutzer sollte im Mittel den gleichen CPU-Zeitanteil erhalten. n Ausführungszeit (turn­around time) Die Zeitspanne vom Jobbeginn bis zum Jobende sollte sie minimal sein. Sie enth ä lt alle Zeiten in Warteschlangen, der Ausf ü hrung (Bedienzeit) und der Ein- und Ausgabe. n Wartezeit (waiting time) Wartezeit in der bereit-Liste minimieren (einziger Scheduling- parameter) n Antwortzeit (response time) Die Zeit zwischen einer Eingabe und der Übergabe der Antwortdaten an die Ausgabegeräte sollte minimal werden (interaktive Systeme!).

30 Folie 29 R.Brause: Betriebssysteme WS12/13 - Prozesse Prozeßscheduling: Konflikte Problem: Ziele sind weder vollständig noch konsistent Prozeßumschaltung (context switch) kostet Zeit. Werden viele kurze Prozesse bevorzugt Durchsatz, Ausführungszeit, Antwortzeit werden gut, aber die Umschaltzeit verkürzt rel. Zeitanteil für lange Prozesse (fairness!) Erhöhen der Auslastung Erhöhen der Antwortzeit; Beispiel Autovermietung Werden bestimmte Kunden bevorzugt, müssen andere warten. Sind alle Wagen gut ausgelastet, müssen neue Kunden warten. Es gibt keinen idealen Schedulingalgorithmus !

31 Folie 30 R.Brause: Betriebssysteme WS12/13 - Prozesse First Come First Serve (FCFS). Einsortieren in der Ankunftsreihenfolge (FIFO-Warteschlange). Ausführungszeit: Job1=5, Job2=15, Job3=18; Mittelwert=38/3=12,67. Nicht-präemptives Scheduling Shortest Job First (SJF) Job mit kürzester Bedienzeit zuerst (min. mittl. Wartezeit). Job 3 Job 1 Job Job 1Job 2 Job Job1=5, Job2=10, Job3=3 Jeder Prozeß läuft so lange, wie er will. Ausführungszeit: Job1=18, Job2=8, Job3=3; Mittelwert=29/3=9,67.

32 Folie 31 R.Brause: Betriebssysteme WS12/13 - Prozesse Nicht-präemptives Scheduling Beispielnon-präempt. Prioritätsscheduling Schedul P2, P3, P1 mittl. Bearbeitungszeit: ( ) : 3 = 7 1 / 3 Beispiel non-präempt. FIFO Schedul P1, P2, P3, mittl. Bearbeitungszeit: ( ) : 3 = 5 1 / Prozesse P1 P2 P3 Priorität 1, 5, 3 Länge 1, 5, 3 Hohe Zahl = hohe Prio Priority Scheduling (PS) Priorität Prozeß; Bevorzugung von hoher Priorität.

33 Folie 32 R.Brause: Betriebssysteme WS12/13 - Prozesse Nicht-präemptives Scheduling Highest Response Ratio Next (HRN) Antwortzeit Bevorzugung min. Bedienzeit, Bedienzeit aber: lange Bedienzeit lange Antwortzeiten hoher Quotient. Vorausgesetzt: gemessene (geschätzte) Werte Scheduling-Problem SJF und PS erlauben verhungern (starvation) von benachteiligten Prozessen Lösung Statt feste Prio (statische Prio) für einen Prozess, änderbare Prio (dynamische Prio) vorsehen. Wächst sie mit der Zeit, kommt jeder Prozess einmal dran. = max

34 Folie 33 R.Brause: Betriebssysteme WS12/13 - Prozesse Präemptives Scheduling Rücksichtslose Prozesse (Benutzer!) Einführung von Zeitscheiben: Ankunft WarteschlangeAbgang Prozessor Abbruch Prozeß2Prozeß1Prozeß3Prozeß2Prozeß1 Zeitscheibe Jeder Prozeß läuft nur so lange, wie er darf.

35 Folie 34 R.Brause: Betriebssysteme WS12/13 - Prozesse Round Robin (RR) FIFO-Warteschlange Einsortieren in der Ankunftsreihenfolge + Zeitscheibe Zeitscheibengröße T von Umschaltzeit des Kontextes abhängig! Richtwert: T > I/O-burst Intervall von 80% der Jobs Präemptives Scheduling Shortest Remaining Time First Job mit kürzester verbleibender Bedienzeit zuerst. Dynamic Priority Round Robin (DPRR ) RR + wachsende Prio-Vorstufe

36 Folie 35 Frage Können Prozesse beim präemptiven Scheduling verhungern ? R.Brause: Betriebssysteme WS12/13 - Prozesse Antwort: Nein, da auch ihre Zeitscheibe regelmäßig zugeteilt wird.

37 Folie 36 R.Brause: Betriebssysteme WS12/13 - Prozesse Beispiele RR-Scheduling Beispiel Wechsel nach jeweils sehr kurzen Zeitscheiben mittl. Bearbeitungszeit: ( ) : 3 = 6 1 / 3 Jobeinheiten Prozesse P1, P2, P3, Schedul: P1, P2, P3 Längen 1, 3, 5, P1 P2 P Beispiel: Wechsel nach großen Zeitscheiben = 1 Jobeinheit P1 P2 P3 mittl. Bearbeitungszeit: ( ) : 3 = 5 1 / 3 Jobeinheiten

38 Folie 37 R.Brause: Betriebssysteme WS12/13 - Prozesse Adaption der Parameter Beispiel: Parameter a eines Prozesses = gewichteter Mittelwert aus dem aktuellen Wert b t und dem früheren Wert a(t-1) a( t ) = (1– ) a( t-1 ) + b t Es ergibt sich hier die Reihe a(0) b 0 a(1) = (1– ) b 0 + b 1 a(2) = (1– ) 2 b 0 + (1– ) b 1 + b 2 a(3) = (1– ) 3 b 0 + (1– ) 2 b 1 + (1– ) b 2 + b 3... a(n) = (1– ) n b 0 + (1– ) n–1 b (1– ) n–i b i b n Mit 1 schwindet der Einfluß der frühen Messungen exponentiell, der Parameter altert (zeitabhängige pdf).

39 Folie 38 R.Brause: Betriebssysteme WS12/13 - Prozesse Multiple Warteschlangen und Scheduler Multiple Warteschlangen für I/O multi level scheduling extra Warteschlange pro Gerät extra Warteschlange pro Prio Verhungern ? Hauptprozessor I/O Festplatte 1 I/O Festplatte 2... I/O Terminals

40 Folie 39 R.Brause: Betriebssysteme WS12/13 - Prozesse Multiple Warteschlangen und Scheduler RR-Korrektheit: Kein Verhungern durch feste Reihenfolge multi level scheduling: Kein Verhungern durch zeitl. ansteigende Job-Priorität extra Warteschlange pro Prio: Prio 0: Systemprozesse Prio 1: Interaktive Jobs Prio 2: Allgemeine Jobs Prio 3: Rechenintensive Jobs dyn.Prio(t) ++ Round Robin

41 Folie 40 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling: Unix Round-Robin, ersetzbar. dyn.Prio, jeweils eine FCFS-Warteschlange pro prio Benutzer: nice -Kommando Umhängen in andere Schlangen bei prio-Erhöhung HP-UX: 0 = hohe prio Prio fixe Multi level- Warteschlangen

42 Folie 41 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling: Windows NT Round-Robin für Threads Non-präemptiv für real time Jobs Vom Scheduling getrenntes dispatching Dyn. Prio, abhängig von Zeit und Liste: erhöht beim Warten, abgesenkt beim Laufen Prozessoraffinitäten Symmetrisches multiprocessing 0 = kleinste prio

43 Folie 42 R.Brause: Betriebssysteme WS12/13 - Prozesse Prozess-Scheduling Prozesse Echtzeit-Scheduling Nebenläufigkeit Multiproz.-Scheduling

44 Folie 43 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Echtzeitbetriebssystemen Echtzeitbetriebssysteme (real time systems) = ? Soft-Echtzeitsysteme: gewünschte Zeitschranken Verzögerung ärgerlich, aber Zeitschranke nicht bindend: Texteingabesysteme, Banken, Behörden,... Hard-Echtzeitsysteme: verbindliche Zeitschranken Konsequenzen bei Nichterfüllung der Spezifikation: Kontrolle von Kernkraftwerken, Flugzeugen, Fahrzeugen, Produktionsstraßen,... Typisch: periodisch wiederkehrende, gleiche tasks

45 Folie 44 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Echtzeitbetriebssystemen Beispiel Flugdatenverarbeitung,Tasks für flight-by-wire Prozessorauslastung H n Beschleunigung (x,y,z) 5 ms, Dauer 1 ms, H = 1/5 = 20% n Drehungswinkel40 ms, Dauer 5 ms, H = 5/40 = 12,5% n Monitordisplay100 ms, Dauer 2 ms,H = 2/100 = 2% n Temperatur1 s, Dauer 1 msH = 1/1000= 0,1% n GPS- Position10 s, Dauer 20 msH = 20/10000=0,2% Scheduling-Strategien = ?

46 Folie 45 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Echtzeitbetriebssystemen Polled Loop Dauerwarten aber: andere Anforderungen Interruptgesteuerte Systeme Prio-gesteuerte ISR aber: Interrupt geringer Prio kann verloren gehen FIFO Warteschlange aber: berücksichtigt nicht wichtige Prozesse kleiner Periode Besser: Prioritäten beachten !

47 Folie 46 R.Brause: Betriebssysteme WS12/13 - Prozesse Dynamisches RT-Scheduling Minimal Deadline First MDF, Earliest Deadline First EDF aber: nutzlos bei vielen Jobs gleicher Deadline Least Laxity First LLF (Zeitschranke-Jobende)= min aber: restl. Zeitbedarf aller Jobs hoher Rechenbedarf Minimal Processing Time First SJF-Strategie aber: Prio unbeachtet bei langen Jobs Rate-Monotonic Scheduling (RMS) Task-Frequenz ~ Prio aber : nicht H=100% Auslastung, sondern nur H=n(2 1/n –1) Priorit ä tsinversion f ü r wichtige Tasks mit geringer Frequenz

48 Folie 47 R.Brause: Betriebssysteme WS12/13 - Prozesse Dynamisches RT-Scheduling Strategien ohne Prioritäten für H=100% Auslastung Time Slice Scheduling TSS Zeitscheibenlänge ~ CPU-Auslastung aber: lange Scheibe Event-Puffer nötig Guaranteed Percentage Scheduling GPS Anzahl der Zeitscheiben ~ CPU-Auslastung

49 Folie 48 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Echtzeitbetriebssystemen Notwendige, kritische Tasks hohe Prio (z.B. RMS, GPS) Nützliche, unkritische Tasks niedrige Prio Foreground-Background Scheduling Hintergrundprozesse: Selbsttests, RAM scrabbing, Alarm-Monitore Notwendige, aber unkritische Tasks:mittl. Prio Zeitpunkt T S wenn notw. Ressourcen frei, Zeitschranke T D, restl. Bedienzeit T C, Wichtigkeit w Minimum Earliest Start min. T S Least Laxity First min. T D - (T S +T C ) Kombin. Kriterium 1 min. T D + wT C Kombin. Kriterium 2 min. T D + wT S Simulationsergebnis: Kombin. Kriterium 2 ist am besten!

50 Folie 49 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Echtzeitbetriebssystemen Echtzeitanforderungen: kontrollierte Zeitvergabe! Betriebssysteme Keine swapping-Algorithmen (Prozessauslagerung) Programme Keine automatische Speicherbereinigung Java: garabage collection der JVM abschalten, eigene Heap-Verwaltung einführen

51 Folie 50 Embedded Systems Unterschiede normaler BS zu eingebetteten Systemen: Eingebettete Systeme haben Kein Dateisystem (nur ROM, EEPROM,..) Keine Angriffe (keine Viren): kein user/kernel mode Kein RAM-Allocation (nur feste Programmlagen) Keine Sicherheitsfunktionen Kein Netzwerk ? … Aber: I/O-System, Dispatcher,… Abgespecktes System ist problematisch bei Erweiterung! R.Brause: Betriebssysteme WS12/13 - Prozesse

52 Folie 51 R.Brause: Betriebssysteme WS12/13 - Prozesse Prozess-Scheduling Prozesse Echtzeit-Scheduling Nebenläufigkeit Multiproz.-Scheduling

53 Folie 52 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Multiprozessorsystemen Abhängigkeiten zwischen Tasks beachten Beispiel Präzedenzrelationen >> = direkt davor auszuführen A 1 >> B 1 >> C 1 >> A 5 >> B 3 >> A 6 B 1 >> B 4 >> C 3 >> B 3 A 2 >> A 3 >> B 4 A 3 >> C 2 >> B 2 >>B 3 A 4 >> C C 1 A A 1 B 1 B 4 C 3 B 3 A A C 2 B 2 A 3 A gerichteter, gewichteter Graph Präzedenzgraph Mengen unabh. Tasks (Stufen) durch Präzedenzpartition

54 Folie 53 FRAGE Welchen Präzedenzgraph hat A(2) >> C(3) B(4) >> C? Wie lang ist der kritische Pfad ? R.Brause: Betriebssysteme WS12/13 - Prozesse

55 Folie 54 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Multiprozessorsystemen BeispielGantt-Diagramm, NB:Prozessortyp. Tasks P1P1 A 1 A 2 A 3 A 4 A 5 A 6 P2P2 B 1 B 4 B 2 B 3 P3P3 C 1 C 3 C 2 Takte Kürzeste Ausführungszeit Abhängige Tasks:kritischer Pfad durch Präzedenzgraph Unabhängige Tasks: optimale Aufteilung oder längster Task T opt = max Hier: NB verlängern Minimalzeit (30 statt 43/3 15 Takte) Scheduling-Strategien = ?

56 Folie 55 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Multiprozessorsystemen Zerteilung Zerteilung der Taskmenge in Stufen (Pr ä zedenzpartition) Scheduling Scheduling aller Tasks jeweils einer Stufe, dann die n ä chste: Earliest Scheduling Task so fr ü h wie m ö glich abarbeiten. Und Ihr System ?

57 Folie 56 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Multiprozessorsystemen Latest Scheduling Lazy evaluation Task so spät wie m ö glich abarbeiten Takte Und Ihr System ?

58 Folie 57 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Multiprozessorsystemen Speziell: Dual-Prozessorsystem m = 2 Spezialfall : einheitl. Prozeßlänge Wenn optimaler preemptiver Schedul ex. für jede Stufe ex. opt. Gesamtschedul Allgemeinfall: nicht-einheitl. Prozeßlänge Prozeß = s VirtProzessEinheiten Spezialfallbedingungen gegeben mit optimalem Schedul aber: ungerade Prozeßanzahl in einer Stufe Aufteilung eines Prozesses auf beide Prozessoren

59 Folie 58 R.Brause: Betriebssysteme WS12/13 - Prozesse Scheduling in Multiprozessorsystemen List Scheduling Alle Tasks werden mit Priorit ä ten versehen entweder in eine zentrale bereit-Liste oder in eine zentrale blockiert-Liste gestellt. Alle Prozessoren bedienen sich parallel aus der Liste mit dem Task jeweils h ö chster Priorit ä t. Ankunft WarteschlangeAbgang Prozessor

60 Folie 59 R.Brause: Betriebssysteme WS12/13 - Prozesse Multiprozessorscheduling: Minimalzeit Annahme: Prio-gesteuerte, präzedenzorientierte, zentrale Warteschlange Minimalzeit T prio für alles = ? Satz:Sei T 0 = optimaler Schedul, m Prozessoren T prio < T 0 (2 – 1/m) Aber: n Aufheben von Präzedenzbedingungen n Verkleinern von Ausführungszeit n Erhöhung der Prozessorzahl m>m führt nicht automatisch zu kürzerem T ! Multiprozessoranomalien

61 Folie 60 Grenzen der Lastverteilung Annahme: unendlich viele Prozessoren, keine Kommunikation. Frage: Wie schnell ist dann das Programm? Antwort: Zeit = T par + T seq Ex. m Prozessoren, m, T par 0 speed up speed up = = 1 + Sequentielle Zeit begrenzt den speed up! Beispiel: 10% seq., 90% par.Code max. 10-facher speed up R.Brause: Betriebssysteme WS12/13 - Prozesse

62 Folie 61 Grenzen der Lastverteilung Fakt: Betriebssystem (system calls) läuft % der Programmlaufzeit Problem: sequentielle Betriebssystemteile Lösung: parallelisierbare Betriebssystemteile Also: Besser als asymmetrisches ist symmetrisches Multiprocessing Dedizierter Prozessor für BS-Kern Jeder Prozessor kann BS-Kern ausführen R.Brause: Betriebssysteme WS12/13 - Prozesse

63 Folie 62 R.Brause: Betriebssysteme WS12/13 - Prozesse Stochastisches Scheduling Wann verstopft ein System? Ankunftsrate 1/T J Verstopfung bei Bedienrate 1/T B Aber:T J, T B = ? Ziel: Analyt. Ausdruck für mittl. Ankunftszeit T J von Tasks Annahme Je länger der Zeitraum, umso mehr Tasks treffen ein P J (t) ~ t, P J (t) = t.... Rechnung.... P J (t), p J (t) T J = 1/ Proz

64 Folie 63 Stochastisches Scheduling R.Brause: Betriebssysteme WS12/13 - Prozesse


Herunterladen ppt "Modul: B-BS Betriebssysteme WS 2012/13 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik."

Ähnliche Präsentationen


Google-Anzeigen