1 / 57

Prozesse

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. Prozess-Scheduling. Prozesse. Nebenläufigkeit.

snana
Download Presentation

Prozesse

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  3. Prozess-Scheduling Prozesse Nebenläufigkeit R.Brause: Betriebssysteme SS11 - 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 SS11 - 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.. Platte lesen Platte schreiben Platte lesen Daten drucken Daten drucken Daten drucken ... und noch freie Prozessorkapazität für rechenintensives Programm im Hintergrund R.Brause: Betriebssysteme SS11 - Prozesse

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

  7. Unix Prozesskontext Speicherresidente ProzesskontrollblöckePCB 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 SS11 - Prozesse

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

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

  10. Beispiel Prozesserzeugung | pr | lpr Kindsprozess3 Kindsprozess2 Ein Programm (Job) kann mehrere Prozesse erzeugen z.B. UNIX shell (Elternprozeß) cat Text1 Text2 Kindsprozess1 R.Brause: Betriebssysteme SS11 - 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; END; R.Brause: Betriebssysteme SS11 - Prozesse

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

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

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

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

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

  17. Threads (Coroutinen) • gemeinsamerProzeßkontext (Speicher-Addressbereich, Dateien (filehandles) 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 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 Stack 3 Stack 4 Thread 2 Stack 1 Stack 2 Prozess- StackPointer R.Brause: Betriebssysteme SS11 - Prozesse

  20. Nebenläufigkeit CPU CPU MMU MMU Register Register Register Register Dateiinfo, Dateiinfo, Kernel- Kernel- Zugriffs- Zugriffs- stack stack rechte rechte • Prozesse und Threads PC Prozess SP Prozesskontext Speicher RAM Code PC SP Prozess R.Brause: Betriebssysteme SS11 - 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. 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ängigeTeilaufgaben auch unabhängig abgearbeitet werden können, ohne zeitaufwändigen Kontextwechsel Grundlagen der Programmierung 1 - Prozesse und ihre Synchronisierung

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

  25. Prozeßscheduling Ankunft Warteschlange Abgang Prozessor Vorplanung in verschiedenen Zeitmaßstäben Hier: Nur Kurzzeitschedul ! R.Brause: Betriebssysteme SS11 - 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 SS11 - 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 SS11 - Prozesse

  28. Nicht-präemptives Scheduling Job1=5, Job2=10, Job3=3 Job 1 Job 2 Job 3 0 5 15 18 Shortest Job First (SJF) Job mit kürzester Bedienzeit zuerst (min. mittl. Wartezeit). Job 3 Job 1 Job 2 0 3 8 18 • First Come First Serve (FCFS). Einsortieren in der Ankunftsreihenfolge (FIFO-Warteschlange). Ausführungszeit: Job1=5, Job2=15, Job3=18; Mittelwert=38/3=12,67. „Jeder Prozeß läuft so lange, wie er will.“ 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.S11 - Prozesse

  29. Beispiele Scheduling 1 5 3 1 5 3 Prozesse P1 P2 P3 Priorität 1, 5, 3 Länge 1, 5, 3 • Beispiel non-präempt. Prioritätsscheduling Schedul P2, P3, P1 mittl. Bearbeitungszeit: (5 + 8 + 9) : 3 = 7 1/3 Hohe Zahl = hohe Prio Beispiel non-präempt. FIFO Schedul P1, P2, P3, mittl. Bearbeitungszeit: (1 + 6 + 9) : 3 = 5 1/3 R.Brause: Betriebssysteme SS11 - 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 SS11 - Prozesse

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

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

  34. Beispiele RR-Scheduling P1 P2 P3 1 1 2 1 2 2 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: (1 + 6 + 9) : 3 = 5 1/3Jobeinheiten Beispiel Wechsel nach jeweils sehr kurzen Zeitscheiben mittl. Bearbeitungszeit: (3 + 7 + 9) : 3 = 6 1/3Jobeinheiten R.Brause: Betriebssysteme SS11 - 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–) b0 + b1 a(2) = (1–)2b0 + (1–) b1 + b2 a(3) = (1–)3b0 + (1–)2b1 + (1–) b2+ b3 ... a(n) = (1–)n b0 + (1–)n–1b1 +...+ (1–)n–ibi +...+ bn Mit 1 schwindet der Einfluß der frühen Messungen exponentiell, der Parameter altert (zeitabhängige pdf). R.Brause: Betriebssysteme SS11 - Prozesse

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

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

  40. Schedulingin 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 SS11 - 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 SS11 - Prozesse

  43. Scheduling in Echtzeitbetriebssystemen • Polled Loop Dauerwarten aber: andere Anforderungen • Interruptgesteuerte SystemePrio-gesteuerte ISR aber: Interrupt geringer Prio kann verloren gehen • Minimal Deadline Firstnächste Zeitschranke zuerst aber: gleiche Zeitschranken?Prio? • Minimal Processing Time FirstSJF-Strategie aber: Prio unbeachtet • Rate-Monotonic Scheduling (RMS)Task-Frequenz ~ Prio aber: Prioritätsinversion für wichtige Tasks mit geringer Frequenz • Foreground-Background Schedulingnützlich vs. notwendig Hintergrundprozesse: Selbsttests, RAM scrabbing, Alarm-Monitore R.Brause: Betriebssysteme SS11 - 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 Startmin. 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 SS11 - Prozesse

  45. Scheduling in Echtzeitbetriebssystemen Echtzeitanforderungen: kontrollierte Zeitvergabe! • Betriebssysteme Keine swapping-Algorithmen (Prozessauslagerung) • Programme Keine automatische Speicherbereinigung Java: garabagecollection der JVM abschalten, eigene Heap-Verwaltung einführen R.Brause: Betriebssysteme SS11 - Prozesse

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

  47. Schedulingin Multiprozessor- systemen

  48. Scheduling in Multiprozessorsystemen 3 5 C A 1 5 2 2 2 4 4 3 A B B C B A 1 1 4 3 3 6 3 4 5 3 A A C B 2 3 2 2 3 A 4 • 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 gerichteter, gewichteter Graph Präzedenzgraph Mengen unabh. Tasks (Stufen) durch Präzedenzpartition R.Brause: Betriebssysteme SS11 - Prozesse

  49. Scheduling in Multiprozessorsystemen P1 A A A A A A 1 2 3 4 5 6 P2 B B B B 1 4 2 3 P3 C C C 1 3 2 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 Takte BeispielGantt-Diagramm, NB:Prozessortyp. Tasks 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 = ? R.Brause: Betriebssysteme SS11 - Prozesse

  50. Scheduling in Multiprozessorsystemen A A B C P 1 5 1 1 1 A B C A P 2 4 3 3 2 C B B A A P 2 3 2 4 6 3 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 Takte Zerteilung der Taskmenge in Stufen (Präzedenzpartition) Scheduling aller Tasks jeweils einer Stufe, dann die nächste: • EarliestScheduling Task so früh wie möglich abarbeiten. R.Brause: Betriebssysteme SS11 - Prozesse

More Related