Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Prozesse.

Ähnliche Präsentationen


Präsentation zum Thema: "Prozesse."—  Präsentation transkript:

1 Prozesse

2 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 R.Brause: Betriebssysteme SS Prozesse

3 Prozesse Nebenläufigkeit Prozess-Scheduling
R.Brause: Betriebssysteme SS Prozesse

4 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 R.Brause: Betriebssysteme SS Prozesse

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

6 Woraus bestehen Prozesse ?
Prozess = Programmdaten + Prozeßkontext Prozess Prozesskontext Daten CPU MMU Register Register Pro- Dateiinfo, gramm Zugriffs- Kernel- rechte stack Stack R.Brause: Betriebssysteme SS Prozesse

7 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 R.Brause: Betriebssysteme SS Prozesse

8 Prozesszustände Dispatcheraktionen Prozesse warten ... blockiert i
erwarte Signal i term niert nicht-ex erhalte Signal erzeugt bereit nicht-ex. aktiv running Zuteilung Prozesse warten ... auf den Prozessor (bereit) auf eine Nachricht (blockiert) auf ein Zeitsignal (blockiert) auf Daten des I/O-Geräts (blockiert) R.Brause: Betriebssysteme SS Prozesse

9 Beispiel Unix: Prozesszustände
blockiert erzeugt nicht-ex . idle bereit aktiv zombi stop erhalte Signal Zuteilung warte auf Ereignis warte auf Eltern weitermachen terminiert Die Übergänge “Zuteilung”, “warte”, “erhalte” wird durch einen Dispatcher durchgeführt. Die Reihenfolge innerhalb einer Warteschlange wird durch einen Scheduler bestimmt. R.Brause: Betriebssysteme SS Prozesse

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

11 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; R.Brause: Betriebssysteme SS Prozesse

12 Unix: Prozesserzeugung
Eltern PID = fork() /* PID  0 */ if (PID==0) { ... }; PID = wait(Status) Kind if (PID==0) { exec („program“) ... }; /* PID = = 0 */ exit (Status) }; . . . . . . wait (status) Warten auf ein Signal bzw. Kind, das mit exit() terminiert. Status ist ein pointer zum Returnstatus des Kindes, PID ist die Prozessnummer des Kindes, das den Status zurück gegeben hat. R.Brause: Betriebssysteme SS Prozesse

13 Windows NT: Thread-Zustände
trans erhalte waiting. Signal warte auf Signal erzeugt terminiert nicht-ex. init ready running termin. nicht-ex. Abbruch ausgewählt, dispatch abgebrochen standby In Windows NT werden zwar Prozesse (process objects) erzeugt und verwaltet, aber es müssen nur Unterabteilungen der Prozesse, die Threads (thread objects), laufen oder warten. Die Kontextinformation zum Umschalten ist damit kleiner als bei Prozessen. Der „Transition“-Zustand wird angenommen, wenn zwar das Objekt (object handle), auf das gewartet wird, in den Zustand „signalisiert“ übergegangen ist, aber die Ressourcen des threads (z.B. Seiten des kernel stacks) vor der Ausführung gesammelt werden müssen und er deshalb noch warten muss vor dem Übergang in den ready-Zustand.. Der Zustand standby bedeutet einen Auftrag für den Multiprozessor-dispatcher. Es kann nur max. ein Prozess pro Prozessor in dem Zustand sein. R.Brause: Betriebssysteme SS Prozesse

14 Windows NT Subsystem-Prozesserzeugung
Unix-Prozesserzeugung POSIX : NewPID = fork() LPC-message Win32: NewPIDhandle := NtCreateProcess (Eltern=CurrentPID) SystemCall Einheitliches Prozeßmodell: Alle Subsystem-spezifischen Mechanismen werden auf Basismechanismen von NT abgebildet. WinNT kernel R.Brause: Betriebssysteme SS Prozesse

15 Frage Welche Prozess-Zustände haben Warteschlangen, welche keine?
Antwort: Warteschlangen: bereit, blockiert. Keine Warteschlangen: alle anderen - aktiv, standby, nicht-existent, …. R.Brause: Betriebssysteme SS Prozesse

16 Nebenläufigkeit Prozess-Scheduling Prozesse
R.Brause: Betriebssysteme SS Prozesse

17 Gemeinsamer Prozeßkontext
Threads (Coroutinen) gemeinsamer Prozeßkontext (Speicher-Addressbereich, Dateien (file handles) asynchroner, paralleler, unterschiedlicher Programmverlauf (stack !) Thread 1 Thread 2 Thread 3 Gemeinsamer Prozeßkontext Grundlagen der Programmierung 1 - Prozesse und ihre Synchronisierung

18  Nebenläufigkeit gemeinsamer Stack: temp., lokale Variable Methoden
local1 1.1 local2 ‘B’ ReturnAdr nach Methode 1 arg1 “Error” 2.25 ‘A’ nach Methode 2 false arg2 183742 3.3 nach Methode n-1 arg 1 1 arg 2 “Hallo” local 1 4.44 local 2 local 3 [2.1, 3.2, 5.0] Methode 1 call return Methode 2 call return call return Methode n Prozess- StackPointer Grundlagen der Programmierung 1 - Prozesse und ihre Synchronisierung

19 Nebenläufigkeit Coroutinen und Threads Thread 3 Thread 4 Thread 1
local1 3.3 local2 1 local3 true Thread 4 Thread 1 Stack 3 local1 4.42 local1 1.1 local2 “hallo” Stack 4 Thread 2 Stack 1 local1 2.22 local2 ‘B’ Stack 2 Prozess- StackPointer R.Brause: Betriebssysteme SS Prozesse

20 Prozess Prozess Nebenläufigkeit Prozesse und Threads
“hallo” 1.1 ‘B’ Return 1 “error” 2.25 ‘A’ PC Dateiinfo, Zugriffs- Kernel- rechte stack CPU Register MMU Methode 1 Methode 2 main Prozess SP Prozesskontext Speicher RAM Code PC SP 1 SP 2 true 1.1 ‘B’ 2.25 ‘A’ Thread 1 Thread 2 main Dateiinfo, Zugriffs- Kernel- rechte stack CPU Register MMU Prozess SP R.Brause: Betriebssysteme SS Prozesse

21 Thread- Typen: lightweight threads
kontrolliert vom Benutzerprogramm (z.B. Unix-Bibliothek) Vorteil: sehr schneller thread-Wechsel T1, T2 Nachteil: Blockieren aller threads bei I/O-Warten von einem thread. Prozess T1 T2 Systemaufruf Prozeß- I/O Grundlagen der Programmierung 1 - Prozesse und ihre Synchronisierung

22 Thread- Typen: heavyweight threads
kontrolliert vom Betriebssystem (z.B. Windows NT) Vorteil: Unabhängiger I/O aller threads T1, T2 Nachteil: langsamer BS-Systemaufruf nötig  „fibers“ in Windows NT Prozess T1 T2 Systemaufruf thread I/O thread I/O Grundlagen der Programmierung 1 - Prozesse und ihre Synchronisierung

23 Wozu gibt es Threads im Unterschied zu Prozessen?
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 Grundlagen der Programmierung 1 - Prozesse und ihre Synchronisierung

24 Prozess-Scheduling Nebenläufigkeit Prozesse
R.Brause: Betriebssysteme SS Prozesse Grundlagen der Programmierung PRG-1 Teil 1 V07

25 Hier: Nur Kurzzeitschedul !
Prozeßscheduling Vorplanung in verschiedenen Zeitmaßstäben Hier: Nur Kurzzeitschedul ! Ankunft Warteschlange Abgang Prozessor R.Brause: Betriebssysteme SS Prozesse

26 Prozeßscheduling: Ziele
Auslastung der CPU Ziel ist die 100%ige Auslastung der CPU, normal 40%–90%. Durchsatz (throughput) # Jobs pro Zeiteinheit sollte maximal sein. Faire Behandlung (fairness) Jeder Benutzer sollte im Mittel den gleichen CPU-Zeitanteil erhalten. 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. Wartezeit (waiting time) Wartezeit in der bereit-Liste minimieren (einziger Scheduling-parameter) Antwortzeit (response time) Die Zeit zwischen einer Eingabe und der Übergabe der Antwortdaten an die Ausgabegeräte sollte minimal werden (interaktive Systeme!). R.Brause: Betriebssysteme SS Prozesse

27 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 ! R.Brause: Betriebssysteme SS Prozesse

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

29 Beispiele Scheduling Prozesse P1 P2 P3 Priorität 1, 5, 3 Länge 1, 5, 3
Hohe Zahl = hohe Prio Beispiel non-präempt. FIFO Schedul P1, P2, P3, mittl. Bearbeitungszeit: ( ) : 3 = 5 1/3 5 3 1 Beispiel non-präempt. Prioritätsscheduling Schedul P2, P3, P1 mittl. Bearbeitungszeit: ( ) : 3 = 7 1/3 5 3 1 R.Brause: Betriebssysteme SS Prozesse

30 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 Priority Scheduling (PS) Priorität Prozeß; Bevorzugung von hoher Priorität. Problem SJF und PS erlauben verhungern (starvation) von benachteiligten Prozessen = max R.Brause: Betriebssysteme SS Prozesse

31 Präemptives Scheduling
Rücksichtslose Prozesse (Benutzer!)  Einführung von „Zeitscheiben“: Prozeß2 Prozeß1 Prozeß3 Zeitscheibe „Jeder Prozeß läuft nur so lange, wie er darf.“ Ankunft Warteschlange Abgang Prozessor Abbruch R.Brause: Betriebssysteme SS Prozesse

32 Präemptives Scheduling
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 Dynamic Priority Round Robin (DPRR) RR + wachsende Prio-Vorstufe Shortest Remaining Time First Job mit kürzester verbleibender Bedienzeit zuerst . R.Brause: Betriebssysteme SS Prozesse

33 Frage Können Prozesse beim präemptiven Scheduling verhungern ?
Antwort: Nein, da auch ihre Zeitscheibe regelmäßig zugeteilt wird. R.Brause: Betriebssysteme SS Prozesse

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

35 Adaption der Parameter
Beispiel: Parameter a eines Prozesses = gewichteter Mittelwert aus dem aktuellen Wert bt und dem früheren Wert a(t-1) a(t) = (1–) a(t-1) +  bt Es ergibt sich hier die Reihe a(0)  b0 a(1) = (1–) b b1 a(2) = (1–)2b0 + (1–) b b2 a(3) = (1–)3b (1–)2b (1–) b2 + b3 ... a(n) = (1–)n b0 + (1–)n–1b (1–)n–i bi bn Mit 1 schwindet der Einfluß der frühen Messungen exponentiell, der Parameter altert (zeitabhängige pdf). R.Brause: Betriebssysteme SS Prozesse

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

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

38 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 0-255 fixe Multi level-Warteschlangen R.Brause: Betriebssysteme SS Prozesse

39 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 R.Brause: Betriebssysteme SS Prozesse

40 Scheduling in Echtzeit- Betriebssystemen

41 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 R.Brause: Betriebssysteme SS Prozesse

42 Scheduling in Echtzeitbetriebssystemen
Beispiel Flugdatenverarbeitung,Tasks für flight-by-wire Beschleunigung (x,y,z) 5 ms Drehungswinkel 40 ms Monitordisplay 100 ms Temperatur 1 s GPS- Position 10 s Scheduling-Strategien = ? R.Brause: Betriebssysteme SS Prozesse

43 Scheduling in Echtzeitbetriebssystemen
Polled Loop Dauerwarten aber: andere Anforderungen Interruptgesteuerte Systeme Prio-gesteuerte ISR aber: Interrupt geringer Prio kann verloren gehen Minimal Deadline First nächste Zeitschranke zuerst aber: gleiche Zeitschranken? Prio? Minimal Processing Time First SJF-Strategie aber: Prio unbeachtet Rate-Monotonic Scheduling (RMS) Task-Frequenz ~ Prio aber: Prioritätsinversion für wichtige Tasks mit geringer Frequenz Foreground-Background Scheduling nützlich vs. notwendig Hintergrundprozesse: Selbsttests, RAM scrabbing, Alarm-Monitore R.Brause: Betriebssysteme SS Prozesse

44 Scheduling in Echtzeitbetriebssystemen
Notwendige, kritische Tasks (z.B. RMS) Nützliche, unkritische Tasks (z.B. Hintergrund) Notwendige, aber unkritische Tasks: Zeitpunkt TS wenn notw. Ressourcen frei, Zeitschranke TD, restl. Bedienzeit TC, Wichtigkeit w Minimum Earliest Start min. TS Minimum Laxity First min. TD - (TS+TC) Kombin. Kriterium 1 min. TD + wTC Kombin. Kriterium 2 min. TD + wTS Simulationsergebnis: Kombin. Kriterium 2 ist am besten! R.Brause: Betriebssysteme SS Prozesse

45 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 R.Brause: Betriebssysteme SS Prozesse

46 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 SS Prozesse

47 Scheduling in Multiprozessor- systemen

48 Scheduling in Multiprozessorsystemen
Abhängigkeiten zwischen Tasks beachten Beispiel Präzedenzrelationen „>>“ = „direkt davor auszuführen“ A1 >> B1 >> C1 >> A5 >> B3 >> A6 B1 >> B4 >> C3 >> B3 A2 >> A3 >> B4 A3 >> C2 >> B2 >>B3 A4 >> C2 C 1 A 5 2 4 3 B 6 gerichteter, gewichteter Graph Präzedenzgraph Mengen unabh. Tasks (Stufen) durch Präzedenzpartition R.Brause: Betriebssysteme SS Prozesse

49 Scheduling in Multiprozessorsystemen
Beispiel Gantt-Diagramm, NB:Prozessortyp. Tasks P1 A 1 2 3 4 5 6 P2 B P3 C Takte Kürzeste Ausführungszeit Abhängige Tasks: kritischer Pfad durch Präzedenzgraph Unabhängige Tasks: optimale Aufteilung oder längster Task Topt = max Hier: NB verlängern Minimalzeit (30 statt 43/3  15 Takte) Scheduling-Strategien = ? Bei abhängigen Tasks ist die Mindestlaufzeit durch den kritischen Pfad gegeben. Hierzu bilde man alle Pfade von Anfangsknoten zu Endknoten und addiere die Taskzeiten entlang eines Pfades. Der Pfad mit der größten Summe der Taskzeiten ist der kritische Pfad; kürzer kann die Gesamtausführungszeit nicht werden, egal wieviel Prozessoren eingesetzt werden. Unabhängige Tasks lassen sich auf alle Prozessoren aufteilen, es sei denn, ein Task ist länger als die parallelele Ausführung aller anderen Jobs benötigt. R.Brause: Betriebssysteme SS Prozesse

50 Scheduling in Multiprozessorsystemen
Zerteilung der Taskmenge in Stufen (Präzedenzpartition) Scheduling aller Tasks jeweils einer Stufe, dann die nächste: Earliest Scheduling Task so früh wie möglich abarbeiten. P 1 A B C 5 2 3 4 6 Takte R.Brause: Betriebssysteme SS Prozesse

51 Scheduling in Multiprozessorsystemen
Latest Scheduling Lazy evaluation Task so spät wie möglich abarbeiten. P 1 A B C 5 3 6 2 4 Takte R.Brause: Betriebssysteme SS Prozesse

52 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 R.Brause: Betriebssysteme SS Prozesse

53 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 Warteschlange Abgang Prozessor Prozessor Prozessor R.Brause: Betriebssysteme SS Prozesse

54 Multiprozessorscheduling: Minimalzeit
Annahme: Prio-gesteuerte, präzedenzorientierte, zentrale Warteschlange Minimalzeit Tprio für alles = ? Satz: Sei T0 = optimaler Schedul, m Prozessoren Tprio < T0 (2 – 1/m) Aber: Aufheben von Präzedenzbedingungen Verkleinern von Ausführungszeit Erhöhung der Prozessorzahl m‘>m führt nicht automatisch zu kürzerem T !  „Multiprozessoranomalien“ R.Brause: Betriebssysteme SS Prozesse

55 Multiprozessorlastverteilung
Parallel schnellere Programmausführung - wieviel ? speed up =  = 1 + Sequentielle Zeit begrenzt den speed up! Beispiel: 10% seq., 90% par.Code  max. 10-facher speed up Problem: % Jobzeit sind system calls Also: Besser als asymmetrisches ist symmetrisches Multiprocessing R.Brause: Betriebssysteme SS Prozesse

56 Stochastisches Scheduling
Wann verstopft ein System? Ziel: Analyt. Ausdruck für mittl. Ankunftszeit TJ von Tasks Annahme Je länger der Zeitraum, umso mehr Tasks treffen ein PJ(∆t) ~ ∆t .... Rechnung Ankunftsrate l = 1/TJ Bedienrate m = 1/TB Also: Verstopfung bei m < l = 1/TJ R.Brause: Betriebssysteme SS Prozesse

57 Stochastisches Scheduling
Grenzen der analytischen Rechnung Die Annahme PJ ~ Dt ist nur im Idealfall gültig Ein System besteht aus vielen, abhängigen Warteschlangen Eine Rechnung ist im Netzwerk sehr mühsam bzw. unmöglich Simulationen berücksichtigen auch sich zeitl. ändernden Kontext Konkrete Vorhersagen nur mit Simulationen! R.Brause: Betriebssysteme SS Prozesse


Herunterladen ppt "Prozesse."

Ähnliche Präsentationen


Google-Anzeigen