Prozesse.

Slides:



Advertisements
Ähnliche Präsentationen
Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Advertisements

Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
7.3 Scheduling Zur Erinnerung:
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Telefonnummer.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Aufgaben zum Scheduling
Systeme 1 Kapitel 5 Scheduling WS 2009/10.
Systeme 1 Kapitel 5.1 Unix Scheduling WS 2009/101.
Kapitel 7 Prozesse und Threads
Geometrisches Divide and Conquer
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Internet facts 2008-II Graphiken zu dem Berichtsband AGOF e.V. September 2008.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Prof. Dr. Bernhard Wasmayr
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Distanzbasierte Sprachkommunikation für Peer-to-Peer-Spiele
2 Distanzbasierte Sprachkommunikation für Peer-to-Peer-Spiele.
Entwicklung verteilter eingebetteter Systeme - Einführung
20:00.
„Küsse deine Freunde“ – FlexKom-App teilen
Zusatzfolien zu B-Bäumen
In der Schule.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Eine Einführung in die CD-ROM
für Weihnachten oder als Tischdekoration für das ganze Jahr
TWS/Graph HORIZONT Produktionsüberwachung für “TWS for z/OS”
Syntaxanalyse Bottom-Up und LR(0)
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
PROCAM Score Alter (Jahre)
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Prozess-synchronisation
Geometrische Aufgaben
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Symmetrische Blockchiffren DES – der Data Encryption Standard
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Systemsoftware und Betriebssysteme
Studiengang Informatik FHDW
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Scheduling- Algorithmen. Bedeutung nicht-verdängende Strategie Prozesse werden nacheinander ausgeführt Kein Prozess wird bevorzugt Hängt ein Prozess,
1 Arbeitsgemeinschaft Biologische Psychiatrie Verordnungsgewohnheiten von Psychopharmaka Statuserhebung 2005 W.Günther G.Laux T.Messer N.Müller M.Schmauss.
1 Mathematical Programming Nichtlineare Programmierung.
Unternehmensbewertung Thomas Hering ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List of Figures Tabellenübersicht.
Folie Einzelauswertung der Gemeindedaten
Prozesse.
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Das IT - Informationssystem
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
2.3 Implementierung von Prozessen
1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin
Kap. 2 Prozesse Version vom
 Präsentation transkript:

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 R.Brause: Betriebssysteme WS12/13 - Prozesse

Prozesse Nebenläufigkeit Prozess-Scheduling Echtzeit-Scheduling Multiproz.-Scheduling 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 R.Brause: Betriebssysteme WS12/13 - Prozesse

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 WS12/13 - Prozesse

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 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 R.Brause: Betriebssysteme WS12/13 - Prozesse

Prozesszustände Scheduler Prozesse warten ... Dispatcher blockiert i Dispatcheraktionen blockiert erwarte Signal i term niert nicht-ex erhalte Signal erzeugt bereit nicht-ex. aktiv running Zuteilung Scheduler Erstellen der „bereit“-Liste Dispatcher schnelle Zuteilung zur CPU 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 WS12/13 - Prozesse

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 WS12/13 - Prozesse

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 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; R.Brause: Betriebssysteme WS12/13 - Prozesse

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 WS12/13 - Prozesse

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 WS12/13 - Prozesse

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 WS12/13 - Prozesse

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

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

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

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 R.Brause: Betriebssysteme WS12/13 - Prozesse

 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 R.Brause: Betriebssysteme WS12/13 - Prozesse

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 WS12/13 - Prozesse

Prozess Prozess Nebenläufigkeit Prozesse und Threads “hallo” 1.375498 … 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 1.375498 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 WS12/13 - Prozesse

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

Thread- Typen: lightweight threads kontrolliert vom Benutzerprogramm (z.B. Unix-Bibliothek). Sie laufen im (wie der Prozess) im user mode. 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 WS12/13 - Prozesse

Thread- Typen: heavyweight threads kontrolliert vom Betriebssystem (z.B. Windows NT) via system calls. Sie laufen (wie der Prozess) im user mode. 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 R.Brause: Betriebssysteme WS12/13 - Prozesse

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 R.Brause: Betriebssysteme WS12/13 - Prozesse

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

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

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 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 ! R.Brause: Betriebssysteme WS12/13 - Prozesse

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 5 15 18 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 0 3 8 18 Ausführungszeit: Job1=18, Job2=8, Job3=3; Mittelwert=29/3=9,67. R.Brause: Betriebssysteme WS12/13 - Prozesse

Nicht-präemptives Scheduling Priority Scheduling (PS) Priorität Prozeß; Bevorzugung von hoher Priorität. Hohe Zahl = hohe Prio Prozesse P1 P2 P3 Priorität 1, 5, 3 Länge 1, 5, 3 Beispiel non-präempt. FIFO Schedul P1, P2, P3, mittl. Bearbeitungszeit: (1 + 6 + 9) : 3 = 5 1/3 5 3 1 Beispiel non-präempt. Prioritätsscheduling Schedul P2, P3, P1 mittl. Bearbeitungszeit: (5 + 8 + 9) : 3 = 7 1/3 5 3 1 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 R.Brause: Betriebssysteme WS12/13 - Prozesse

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 WS12/13 - Prozesse

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 WS12/13 - Prozesse

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

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: (1 + 6 + 9) : 3 = 5 1/3 Jobeinheiten Beispiel Wechsel nach jeweils sehr kurzen Zeitscheiben mittl. Bearbeitungszeit: (3 + 7 + 9) : 3 = 6 1/3 Jobeinheiten P1 P2 P3 1 2 R.Brause: Betriebssysteme WS12/13 - Prozesse

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 WS12/13 - Prozesse

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

Echtzeit-Scheduling Prozesse Nebenläufigkeit Prozess-Scheduling Multiproz.-Scheduling 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 R.Brause: Betriebssysteme WS12/13 - Prozesse

Scheduling in Echtzeitbetriebssystemen Beispiel Flugdatenverarbeitung,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 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 ! 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(21/n–1) Prioritätsinversion für wichtige Tasks mit geringer Frequenz 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 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 TS wenn notw. Ressourcen frei, Zeitschranke TD, restl. Bedienzeit TC, Wichtigkeit w Minimum Earliest Start min. 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 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 R.Brause: Betriebssysteme WS12/13 - Prozesse

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

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

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

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

Scheduling in Multiprozessorsystemen Beispiel Gantt-Diagramm, NB:Prozessortyp. Tasks 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 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 WS12/13 - Prozesse

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. Und Ihr System ? P 1 A B C 5 2 3 4 6 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 Takte R.Brause: Betriebssysteme WS12/13 - Prozesse

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 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 Takte Und Ihr System ? 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 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 Warteschlange Abgang Prozessor Prozessor Prozessor R.Brause: Betriebssysteme WS12/13 - Prozesse

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 WS12/13 - Prozesse

Grenzen der Lastverteilung Annahme: unendlich viele Prozessoren, keine Kommunikation. Frage: Wie schnell ist dann das Programm? Antwort: Zeit = Tpar + Tseq Ex. m Prozessoren, m , Tpar  0 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

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

Stochastisches Scheduling Wann verstopft ein System? Ankunftsrate l = 1/TJ Verstopfung bei l>m Bedienrate m = 1/TB Aber: TJ, TB = ? Ziel: Analyt. Ausdruck für mittl. Ankunftszeit TJ von Tasks Annahme Je länger der Zeitraum, umso mehr Tasks treffen ein PJ(∆t) ~ ∆t, PJ(∆t) =  ∆t .... Rechnung PJ(t), pJ(t)  TJ = 1/  l =  Proz R.Brause: Betriebssysteme WS12/13 - Prozesse

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 WS12/13 - Prozesse