1 / 63

Prozesse

Prozesse. Inhalt Prozesse. Was ist ein Prozess? Wie wird 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.

amity
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 wird er erzeugt? • Was sind Threads? • Wann nimmt man Threads, wann Prozesse? • Prozess-Scheduling und Dispatching • Scheduling in Echtzeitsystemen • Scheduling in Multiprozessorsystemen R.Brause: Betriebssysteme - Prozesse

  3. Prozess-Scheduling Prozesse Nebenläufigkeit Echtzeit-Scheduling Multiproz.-Scheduling R.Brause: Betriebssysteme - 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 - 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 - 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 - 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 - 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 Scheduler Erstellen der „bereit“-Liste Dispatcher schnelle Zuteilung zur CPU R.Brause: Betriebssysteme - 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 - 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 - 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 - 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 - 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 - Prozesse

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

  15. Prozesse: User mode und kernel mode syscall User Prozess kernel code usermodekernel mode syscall User Prozess Kernel Prozess usermodekernel mode R.Brause: Betriebssysteme - Prozesse UNIX Windows NT

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

  17. Prozess-Scheduling Prozesse Nebenläufigkeit Echtzeit-Scheduling Multiproz.-Scheduling R.Brause: Betriebssysteme - Prozesse

  18. Threads (Coroutinen) • gemeinsamerProzeßkontext (Speicher-Addressbereich, Dateien (filehandles) asynchroner, paralleler, unterschiedlicher Programmverlauf (stack !) Thread 1 Thread 2 Thread 3 Gemeinsamer Prozeßkontext R.Brause: Betriebssysteme - Prozesse

  19. Nebenläufigkeit gemeinsamer Stack: temp., lokale Variable • Methoden Methode 1 call return Methode 2 call return  call return Methode n Prozess- StackPointer R.Brause: Betriebssysteme - Prozesse

  20. 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 - Prozesse

  21. 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 - Prozesse

  22. Prozesse und Threads R.Brause: Betriebssysteme - Prozesse 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, Drucker etc. Er kann als Untereinheiten mehrere Threadsenthalten. 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.

  23. Thread- Typen: lightweight threads • kontrolliert vom Benutzerprogramm (z.B. Unix-Bibliothek). Sie laufen im (wie der Prozess) im usermode. 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 R.Brause: Betriebssysteme - Prozesse

  24. Thread- Typen: heavyweight threads • kontrolliert vom Betriebssystem(z.B. Windows NT) via systemcalls. Sie laufen (wie der Prozess) im usermode. Vorteil: Unabhängiger I/O aller threadsT1, T2 Nachteil: langsamer BS-Systemaufruf nötig  „fibers“ in Windows NT Prozess T1 T2 Systemaufruf thread I/O thread I/O R.Brause: Betriebssysteme - Prozesse

  25. Frage • Wozu gibt es Threads im Unterschied zu Prozessen? Bitte schreiben Sie einen Satz auf. Antwort Damit unabhängigeTeilaufgaben auch unabhängig abgearbeitet werden können, ohne zeitaufwändigen Kontextwechsel R.Brause: Betriebssysteme - Prozesse

  26. Prozess-Scheduling Prozesse Nebenläufigkeit Echtzeit-Scheduling Multiproz.-Scheduling R.Brause: Betriebssysteme - Prozesse

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

  28. 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 - Prozesse

  29. 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 - Prozesse

  30. 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 - Prozesse

  31. Nicht-präemptivesScheduling 1 5 3 1 5 3 Priority Scheduling (PS) Priorität Prozeß; Bevorzugung von hoher Priorität. Prozesse P1 P2 P3 Priorität 1, 5, 3 Länge 1, 5, 3 Beispiel non-präempt. Prioritätsscheduling SchedulP2, P3, P1 mittl. Bearbeitungszeit: (5 + 8 + 9) : 3 = 7 1/3 HoheZahl = hohePrio Beispielnon-präempt. FIFO Schedul P1, P2, P3, mittl. Bearbeitungszeit: (1 + 6 + 9) : 3 = 5 1/3 R.Brause: Betriebssysteme - Prozesse

  32. Nicht-präemptivesScheduling • 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 (statischePrio) für einen Prozess, änderbare Prio (dynamischePrio) vorsehen. Wächst sie mit der Zeit, kommt jeder Prozess einmal dran. = max R.Brause: Betriebssysteme - Prozesse

  33. 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 - Prozesse

  34. 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 - Prozesse

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

  36. 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 - Prozesse

  37. 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 - Prozesse

  38. 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 - Prozesse

  39. 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 - Prozesse

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

  41. 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 - Prozesse

  42. Prozess-Scheduling Prozesse Nebenläufigkeit Echtzeit-Scheduling Multiproz.-Scheduling R.Brause: Betriebssysteme - Prozesse

  43. 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 - Prozesse

  44. Scheduling in Echtzeitbetriebssystemen BeispielFlugdatenverarbeitung,Tasks für flight-by-wire Prozessorauslastung H • Beschleunigung (x,y,z) 5 ms, Dauer 1 ms, H = 1/5 = 20% • Drehungswinkel 40 ms, Dauer 5 ms, H = 5/40 = 12,5% • Monitordisplay 100 ms, Dauer 2 ms, H = 2/100 = 2% • Temperatur 1 s, Dauer 1 ms H = 1/1000= 0,1% • GPS- Position 10 s, Dauer 20 ms H = 20/10000=0,2% • Scheduling-Strategien = ? R.Brause: Betriebssysteme - Prozesse

  45. Scheduling in Echtzeitbetriebssystemen • Polled LoopDauerwarten 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 ! R.Brause: Betriebssysteme - Prozesse

  46. Dynamisches RT-Scheduling • Minimal Deadline First MDF, Earliest Deadline First EDF aber: nutzlosbeivielen Jobs gleicher Deadline • Least Laxity First LLF(Zeitschranke-Jobende)= min aber: restl. Zeitbedarfaller Jobs  hoherRechenbedarf • Minimal Processing Time FirstSJF-Strategie aber: Prio unbeachtet bei langen Jobs • Rate-Monotonic Scheduling (RMS)Task-Frequenz ~ Prio aber: nicht H=100% Auslastung, sondern nur H=n(21/n–1) Prioritätsinversion für wichtige Tasks mit geringer Frequenz R.Brause: Betriebssysteme - Prozesse

  47. Dynamisches RT-Scheduling Strategien ohne Prioritäten für H=100% Auslastung • Time Slice SchedulingTSS Zeitscheibenlänge ~ CPU-Auslastung aber: langeScheibeEvent-Puffernötig • GuaranteedPercentageSchedulingGPS Anzahl der Zeitscheiben ~ CPU-Auslastung R.Brause: Betriebssysteme - Prozesse

  48. 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 TSwenn notw. Ressourcen frei, Zeitschranke TD, restl. Bedienzeit TC, Wichtigkeit w • Minimum Earliest Startmin. TS • Least 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 - Prozesse

  49. 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 - Prozesse

  50. Embedded Systems R.Brause: Betriebssysteme - 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!

More Related