9. Vorlesung Betriebssysteme

Größe: px
Ab Seite anzeigen:

Download "9. Vorlesung Betriebssysteme"

Transkript

1 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/39 9. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik

2 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 2/39 Heute Interprozesskommunikation Kritische Abschnitte Wettlaufsituationen (Race Conditions) Kommunikation vs. Kooperation Synchronisation von Prozessen Aktives Warten Blockieren und Deblockieren Gruppensignalisierung (Barrieren) Sperren Verhungern und Deadlocks Betriebsmittel-Graphen Deadlock-Erkennung mit Matrizen

3 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 3/39 Interprozesskommunikation (IPC) Prozesse, die an einer gemeinsamen Aufgabe arbeiten, müssen nicht nur Operationen auf Daten ausführen, sondern auch: sich gegenseitig aufrufen aufeinander warten sich abstimmen kurz gesagt: Sie müssen miteinander interagieren Bei der Interprozesskommunikation (IPC) ist zu klären: Wie kann ein Prozess Informationen an andere weiterreichen? Wie kann sichergestellt werden, dass zwei oder mehr Prozesse, die auf die gleiche Ressource zugreifen wollen, sich nicht in die Quere kommen? Frage: Wie verhält es sich hier mit Threads? Bei Threads gelten die gleichen Herausforderungen und Lösungen wie bei Interprozesskommunikation mit Prozessen Nur die Kommunikation zwischen den Threads eines Prozesses ist problemlos möglich, weil sie im gleichen Adressraum agieren

4 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 4/39 Kritische Abschnitte Auf Systemen, auf denen mehrere Prozesse laufen, müssen die Prozesse Daten austauschen und Ressourcen gemeinsam nutzen Laufen mehrere parallel ausgeführte Prozesse, unterscheidet man: Unkritische Abschnitte: Die Prozesse greifen gar nicht oder nur lesend auf gemeinsame Daten zu Kritische Abschnitte: Die Prozesse greifen lesend und schreibend auf gemeinsame Daten zu Damit Prozesse auf gemeinsam genutzten Speicher zugreifen können, ist wechselseitiger Ausschluss (Mutual Exclusion) notwendig Kritische Abschnitte dürfen nicht von mehreren Prozessen gleichzeitig durchlaufen werden

5 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 5/39 Kritische Abschnitte Beispiel: Drucker-Spooler (1/2)

6 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 6/39 Kritische Abschnitte Beispiel: Drucker-Spooler (2/2) Prozess X next_free_slot = in; (16) Speichere Eintrag in next_free_slot; (16) in = next_free_slot + 1; (17) Prozesswechsel Prozesswechsel Prozess Y next_free_slot = in; (16) Speichere Eintrag in next_free_slot; (16) in = next_free_slot + 1; (17) Das Spooler-Verzeichnis ist konsistent, aber der Eintrag von Prozess Y wurde von Prozess X überschrieben und ging verloren Eine solche Situation heißt Race Condition

7 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 7/39 Race Condition (Wettlaufsituation) Unbeabsichtigte Wettlaufsituation zweier Prozesse, die auf die gleiche Speicherstelle schreibend zugreifen wollen Das Ergebnis eines Prozesses hängt von der Reihenfolge oder dem zeitlichen Ablauf anderer Ereignisse ab Häufiger Grund für schwer auffindbare Programmfehler Problem: Das Auftreten und die Symptome hängen von unterschiedlichen Ereignissen ab Bei jedem Testdurchlauf können die Symptome komplett verschieden sein oder verschwinden Vermeidung ist u.a durch das Konzept der Semaphore möglich

8 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 8/39 Beispiel einer Race Condition (1/2) Der Wert einer Speicherstelle ist 5 Zwei voneinander unabhängige Prozesse wollen auf die Speicherstelle zugreifen und jeweils den gespeicherten Wert um 2 erhöhen Eine Ausführungsreihenfolge mit korrektem Ergebnis wäre z.b: 1. Prozess X liest Wert in internen Speicher = X=5 2. Prozess X erhöht intern den Wert um 2 = X=7 3. Prozess X schreibt neuen Wert in den Speicher = Speicher=7 4. Prozess Y liest Wert in internen Speicher = Y=7 5. Prozess Y erhöht intern den Wert um 2 = Y=9 6. Prozess Y schreibt neuen Wert in den Speicher = Speicher=9

9 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 9/39 Beispiel einer Race Condition (2/2) Wollen beide Prozesse gleichzeitig auf die Speicherstelle zugreifen, kommt es zu einer Race Condition und einem fehlerhaften Ergebnis 1. Prozess X liest Wert in internen Speicher = X=5 2. Prozess Y liest Wert in internen Speicher = Y=5 3. Prozess X erhöht intern den Wert um 2 = X=7 4. Prozess Y erhöht intern den Wert um 2 = Y=7 5. Prozess X schreibt neuen Wert in den Speicher = Speicher=7 6. Prozess Y schreibt neuen Wert in den Speicher = Speicher=7 Wie kann man eine Race Condition verhindern? Beim Zugriff auf den Wert der Speicherstelle muss diese bis zum Abschluss des Zugriffs gesperrt werden In diesem Fall muss Prozess Y warten, bis Prozess X den neuen Wert in die Speicherstelle geschrieben hat

10 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Therac-25: Race Condition mit tragischem Ausgang Bekanntes Lehrbeispiel für (fehlende) Software-Qualität Therac-25, ein Elektronen-Linearbeschleuniger zur Strahlentherapie von Krebstumoren, verursachte Mitte der 80er Jahre in den USA sechs Unfälle durch mangelhafte Programmierung und Qualitätssicherung Die Patienten erhielten eine massiv erhöhte Strahlendosis Dabei wurde eine bis zu hundertfach erhöhte Bestrahlung verabreicht Drei Patienten starben direkt an den Folgen der Programmierfehler Zwei Patienten starben durch eine Race Condition, die zu inkonsistenten Einstellungen des Gerätes und damit zu erhöhter Strahlendosis führte Der Kontroll-Prozess synchronisierte nicht korrekt mit dem Prozess der Eingabeaufforderung Der Fehler trat nur dann auf, wenn die Bedienung zu schnell erfolgte Bei Tests trat der Fehler nicht auf, weil es eine gewisse Erfahrung (Routine) in der Bedienung des Geräts erforderte, bis es so schnell bedient werden konnte

11 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Kommunikation vs. Kooperation Die Prozessinteraktion besitzt zwei Aspekte: Funktionaler Aspekt: Kommunikation und Kooperation. Zeitlicher Aspekt: Synchronisation Kommunikation (= expliziter Datentransport) Prozess 1 Prozess 2 Kooperation (= Zugriff auf gemeinsame Daten) Prozess 1 Prozess 2 Daten 1 Daten 2 Kopieren Daten 1 gemeinsamer Teil Daten 2 (gerichtete Beziehung) (symmetrische Beziehung)

12 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Interaktionsformen Kommunikation und Kooperation basieren auf der Synchronisation Synchronisation ist die elementarste Form der Interaktion Begründung: Kommunikation und Kooperation benötigen eine zeitliche Abstimmung zwischen den Intaraktionspartnern, um korrekte Ergebnisse zu erhalten Darum müssen wir zuerst die Synchronisation behandeln Kommunikation Kooperation Synchronisation

13 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Synchronisation Synchronisation Signalisierung (aktives Warten) Signalisierung (blockieren, deblockieren) Wechselseitige Synchronisierung Gruppensignalisierung Barrieren Kritische Abschnitte Sperren

14 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Signalisierung Signalisierung ist eine spezielle Art der Synchronisation Bei der Signalisierung wird eine Reihenfolgebeziehung hergestellt Beispiel: Abschnitt X von Prozess 1 soll vor Abschnitt Y von Prozess 2 ausgeführt werden Mit den Operationen signal und wait kann signalisiert werden, wenn Prozess 1 den Abschnitt X abgearbeitet hat Prozess 2 muss zur Laufzeit eventuell auf das Signal von Prozess 1 warten Prozess 1 Prozess 2 X signal(s) wait(s) Y

15 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Grundform der Signalisierung (aktives Warten) In der einfachsten Form sehen die Operationen zur Signalisierung so aus: signal(s) wait(s) set s is s set? no reset s Diese Vorgehensweise ist aktives Warten an der Signalisierungsvariablen s und das bedeutet, dass Rechenzeit der CPU verschwendet wird, da diese immer wieder von dem Prozess belegt wird Diese Technik heißt auch Spinlock oder Warteschleife

16 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Signalisierung (blockieren, deblockieren) Besser ist, den wartenden Prozess zu blockieren, bis Prozess 1 Abschnitt X abgearbeitet hat Das würde die CPU deutlich entlasten Nachteil: Beim Signalisieren mit Wartezustand kann immer nur ein Prozess warten signal(s) wait(s) set s is s set? no yes process waiting? block process yes no deblock process reset s

17 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 blockieren, deblockieren unter JAVA Unter JAVA heißt die signal()-operation notify() class Signal { private boolean set = false ; // Signalvariable public synchronized void signal () { set = true ; notify (); // deblockiert den wartenden Prozess } } public synchronized void wait () { if (! set ) wait (); // wartet auf das Signal set = false ; } Das Schlüsselwort synchronized sorgt unter JAVA für gegenseitigen Ausschluss aller damit gekennzeichneten Methoden eines Objekts Mit wait() wird ein Prozess in seiner Ausführung blockiert Mit notify() wird ein wartender Prozess deblockiert

18 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Wechselseitige Synchronisierung Werden wait() und signal() symmetrisch ausgeführt, werden die Abschnitte X1 und Y1 vor den Abschnitten X2 und Y2 ausgeführt Prozess 1 Prozess 2 X1 signal(s) wait(s) X2 Y1 signal(s) wait(s) Y2 In einem solchen Fall synchronisieren die Prozesse 1 und 2 Es kommt zu einem Rendezvous bzw. Handshake

19 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Wechselseitige Synchronisierung sync() sync() fasst die Operationen wait() und signal() zusammen Implementierung einer Synchronisierung unter JAVA class Synchronisierung { private boolean set = false ; // Signalvariable } public synchronized void sync () { if ( set == false ) { // ich bin der erste Prozess set = true ; // die Bereitschaft signalisieren wait (); // auf den anderen Prozess warten } else { // ich bin der zweite Prozess set = false ; // Signalvariable zurücksetzen notify (); // deblockiert den wartenden Prozess } }

20 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Gruppensignalisierung An einer Signalisierung können mehr als zwei Prozesse beteiligt sein In einem solchen Fall spricht man von Gruppensignalisierung Zwei Beispiele für Gruppensignalisierung: UND-Signalisierung: Ein Prozess darf in seiner Abarbeitung erst weiterlaufen, wenn mehrere Prozesse ein Signal gesetzt haben Es liegt eine UND-Verknüpfung auf der Signalisierungsseite vor ODER-Signalisierung: Mehrere Prozesse warten auf ein Signal Erfolgt das Signal, wird einer der wartenden Prozesse deblockiert Auf der Seite der wartenden Prozesse liegt eine ODER-Verknüpfung vor Alle möglichen Kombinationen der beiden Arten von Gruppensignalisierungen sind denkbar Bei Gruppensignalisierung sind in der Signalimplementierung entsprechende Kapazitäten bzgl. der Signalvariablen notwendig

21 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 UND-Signalisierung / ODER-Signalisierung

22 Gruppensynchronisierung mit Barriere Eine Barriere synchronisiert die beteiligten Prozesse an einer Stelle Prozess 1 Prozess 2 Prozess 3 Prozess 4 X1 sync(s) X1 sync(s) X2 X1 sync(s) X1 sync(s) X2 X2 X2 Erst wenn alle Prozesse die Synchronisationsstelle erreicht haben, dürfen sie weiterlaufen Gruppenrendezvous class BarrierenSynchronisation { private int summe = p; // Anzahl Prozesse private int zaehler = 0; // Anzahl wartende Prozesse public synchronized void sync () { zaehler = zaehler + 1; if ( zaehler < summe ) { // es fehlen noch Prozesse wait (); // auf die fehlenden Prozesse warten } else { // es sind alle Prozesse eingetroffen notifyall (); // alle wartenden Prozesse deblockieren zaehler = 0; } } } Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39

23 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Sperren Mit Sperren sichert man kritische Abschnitte Prozess 1 Prozess 2 X lock(s) unlock(s) lock(s) Y unlock(s) Sperren garantieren, dass es bei der Abarbeitung zweier kritischer Abschnitte wie X von Prozess 1 und Y von Prozess 2 keine Überlappung gibt Die Ausführungen der Prozesse 1 und 2 schließen sich gegenseitig aus

24 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Sperren und Freigeben Die Signalvariable s wird bei lock() anders als bei signal() in einer Schleife abgefragt, da zwischen dem Deblockieren des wartenden Prozesses und dem Setzen der Sperre ein anderer Prozess die Sperre setzen könnte unlock(s) lock(s) reset s is s set? yes no prozess waiting? block process yes no deblock prozess set s

25 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Unterschied zwischen Signalisierung und Sperren Signalisierung legt eine Reihenfolgebeziehung zwischen Prozessen fest Beispiel: Abschnitt A von Prozess P 1 vor Abschnitt B von P 2 ausführen Sperren sichern kritische Abschnitte Die Reihenfolge, in der die Prozesse ihre kritische Abschnitte abarbeiten, ist nicht festgelegt! Es wird nur sichergestellt, dass es keine Überlappung in der Ausführung der kritischen Abschnitte gibt class Sperre { private boolean gesperrt = false ; // Signalvariable public synchronized void sperre () { while ( gesperrt ) wait (); // auf die fehlenden Prozesse warten gesperrt = true ; // den Prozess sprerren } } public synchronized void entsperren () { gesperrt = false ; // die Sperre für den Prozess aufheben notify (); // alle wartenden Prozesse benachrichtigen }

26 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Probleme, die durch Sperren entstehen Verhungern (Starving) Hebt ein Prozess eine Sperre nicht wieder auf, müssen die anderen Prozesse unendlich lange auf die Freigabe warten Verklemmung (Deadlock) Warten zwei Prozesse gegenseitig auf die von ihnen gesperrten Ressourcen, sperren sie sich gegenseitig Da alle am Deadlock beteiligten Prozesse (ewig) warten, kann keiner ein Ereignis auslösen, so dass ein anderer geweckt wird

27 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Ein Deadlock-Beispiel aus der realen Welt (São Paulo)

28 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Weitere Deadlock-Beispiele aus Tel Aviv und Moskau

29 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Bedingungen für Deadlocks Damit ein Deadlock entstehen kann, müssen laut Coffman et al. (1971) die folgenden vier Bedingungen alle gleichzeitig erfüllt sein: Wechselseitiger Ausschluss Jede Ressource wird von genau einem Prozess belegt oder ist verfügbar Anforderung weiterer Betriebsmittel Ein Prozess, der bereits Ressourcen besitzt, kann weitere anfordern Ununterbrechbarkeit Die Ressourcen, die ein Prozess besitzt, können nicht von außen entzogen, sondern nur durch ihn selbst freigegeben werden Zyklische Wartebedingung Es gibt eine zyklische Kette von Prozessen Jeder Prozess fordert eine Ressource an, die der nächste Prozess in der Kette besitzt Fehlt eine der Bedingungen, ist ein Deadlock unmöglich

30 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Betriebsmittel-Graphen Mit gerichteten Graphen können die Beziehungen von Prozessen und Ressourcen dargestellt werden Mit Betriebsmittel-Graphen kann man Deadlocks modellieren Bei den Knoten eines Betriebsmittel-Graphen handelt es sich um: Prozesse: Sind als Kreise dargestellt Ressourcen: Sind als Rechtecke dargestellt Eine Kante von einem Prozess zu einer Ressource bedeutet: Der Prozess ist blockiert, weil er auf die Ressource wartet Eine Kante von einer Ressource zu einem Prozess bedeutet: Der Prozess belegt die Ressource

31 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Prinzip von Betriebsmittel-Graphen

32 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Beispiel zu Betriebsmittel-Graphen Es existieren drei Prozesse: P1, P2 und P3 Jeder Prozess fordert zwei Ressourcen an und gibt diese dann wieder frei Prozess P1 Prozess P2 Prozess P3 Anforderung R1 Anforderung R2 Anforderung R3 Anforderung R2 Anforderung R3 Anforderung R1 Freigabe R1 Freigabe R2 Freigabe R3 Freigabe R2 Freigabe R3 Freigabe R1 Beispiel aus Tanenbaum. Moderne Betriebssysteme. Pearson Studium. 2003

33 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Keine Nebenläufigkeit: P1 P2 P3 P1 R1 R2 R3 P2 R1 R2 R3 P3 R1 R2 R3 P1 fordert R1 an P1 fordert R2 an P1 gibt R1 frei P1 gibt R2 frei P2 fordert R2 an P2 fordert R3 an P2 gibt R2 frei P2 gibt R3 frei P3 fordert R3 an P3 fordert R1 an P3 gibt R3 frei P3 gibt R1 frei Kein Deadlock

34 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Nebenläufigkeit mit schlechter Reihenfolge P1 fordert R1 an P2 fordert R2 an P3 fordert R3 an P1 fordert R2 an P2 fordert R3 an P3 fordert R1 an Deadlock wegen Zyklus

35 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Nebenläufigkeit mit besserer Reihenfolge P1 fordert R1 an P3 fordert R3 an P1 fordert R2 an P3 fordert R1 an P1 gibt R1 frei P1 gibt R2 frei P3 gibt R1 frei P3 gibt R3 frei P2 fordert R2 an P2 fordert R3 an P2 gibt R2 frei P2 gibt R3 frei

36 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Deadlock-Erkennung mit Matrizen Gibt es nur eine Ressource pro Ressourcenklasse (Scanner, CD-Brenner, Drucker, usw.), kann man Deadlocks mit Graphen darstellen/erkennen Existieren von einer Ressource mehrere Kopien, kann ein matrizenbasierter Algorithmus verwendet werden Wir definieren zwei Vektoren Ressourcenvektor (Existing Resource Vektor) Zeigt an, wie viele Ressourcen von jeder Klasse existieren Ressourcenrestvektor (Available Resource Vektor) Zeigt an, wie viele Ressourcen von jeder Klasse frei sind Zusätzlich sind zwei Matrizen nötig Belegungsmatrix (Current Allocation Matrix) Zeigt an, welche Ressourcen die Prozesse aktuell belegen Anforderungsmatrix (Request Matrix) Zeigt an, welche Ressourcen die Prozesse gerne hätten

37 Beispiel der Deadlock-Erkennung mit Matrizen (1/2) Beispiel aus Tannenbaum. Moderne Betriebssysteme. Pearson Ressourcenvektor = ( ) Ressourcenrestvektor = ( ) Es existieren 4 Ressourcen vom Typ 1 Es existieren 2 Ressourcen vom Typ 2 Es existieren 3 Ressourcen vom Typ 3 Es existiert 1 Ressource vom Typ 4 Belegungsmatrix = [ ] Es sind noch 2 Ressourcen vom Typ 1 frei Es ist noch 1 Ressource vom Typ 2 frei Es sind keine Ressourcen vom Typ 3 frei Es sind keine Ressourcen vom Typ 4 frei Anforderungsmatrix = [ ] Prozess 1 belegt 1 Ressource vom Typ 3 Prozess 2 belegt 2 Ressourcen vom Typ 1 und 1 Ressource vom Typ 4 Prozess 3 belegt 1 Ressource vom Typ 2 und 2 Ressourcen vom Typ 3 Prozess 1 kann nicht laufen, weil keine Ressource vom Typ 4 frei ist Prozess 2 kann nicht laufen, weil keine Ressource vom Typ 3 frei ist Prozess 3 kann weiterlaufen Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39

38 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Beispiel der Deadlock-Erkennung mit Matrizen (2/2) Wurde Prozess 3 fertig ausgeführt, gibt er alle seine Ressourcen frei Ressourcenvektor = ( ) Ressourcenrestvektor = ( ) Es existieren 4 Ressourcen vom Typ 1 Es sind noch 2 Ressourcen vom Typ 1 frei Es existieren 2 Ressourcen vom Typ 2 Es sind noch 2 Ressourcen vom Typ 2 frei Es existieren 3 Ressourcen vom Typ 3 Es sind noch 2 Ressourcen vom Typ 3 frei Es existiert 1 Ressource vom Typ 4 Es sind keine Ressourcen vom Typ 4 frei Jetzt kann Prozess 2 weiterlaufen Wurde Prozess 2 fertig ausgeführt, gibt er alle seine Ressourcen frei ( ) ( ) Ressourcenvektor = Ressourcenrestvektor = Jetzt kann Prozess 1 weiterlaufen Somit gibt es in diesem Beispiel keinen Deadlock

39 Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS /39 Deadlocks sind immer möglich und werden akzeptiert Deadlocks sind in der Informatik immer möglich Bekannte, mögliche Deadlocks werden nicht immer entfernt Entscheidend ist, wie wichtig ein System ist Ein Deadlock, der statistisch alle 5 Jahre auftritt, ist kein Problem, wenn das System wegen Hardwareausfällen oder sonstigen Softwareproblemen jede Woche ein mal abstürzt Deadlock-Erkennung ist aufwendig und verursacht Overhead In allen Betriebssystemen sind Deadlocks möglich: Prozesstabelle voll Es können keine neuen Prozesse erzeugt werden Maximale Anzahl von Inodes vergeben Es können keine neuen Dateien und Verzeichnisse angelegt werden Die Wahrscheinlichkeit, dass so etwas passiert, ist gering, aber 0 Solche potentiellen Deadlocks werden akzeptiert, weil ein gelegentlicher Deadlock nicht so lästig ist, wie die ansonsten notwendigen Einschränkungen (z.b. nur ein Prozess, nur eine offene Datei)

9. Foliensatz Betriebssysteme

9. Foliensatz Betriebssysteme Prof. Dr. Christian Baun 9. Foliensatz Betriebssysteme Frankfurt University of Applied Sciences SS2016 1/32 9. Foliensatz Betriebssysteme Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

Mehr

Lösung von Übungsblatt 9. (Interprozesskommunikation)

Lösung von Übungsblatt 9. (Interprozesskommunikation) Lösung von Übungsblatt 9 Aufgabe 1 (Interprozesskommunikation) 1. Was ist ein kritischer Abschnitt? Mehrere Prozesse greifen lesend und schreibend auf gemeinsame Daten zu. 2. Was ist eine Race Condition?

Mehr

Leser-Schreiber-Realisierung mit Semaphoren

Leser-Schreiber-Realisierung mit Semaphoren Leser-Schreiber-Realisierung mit Semaphoren Reader: down(semwriter); down(semcounter); rcounter++; up(semwriter); read(); down(semcounter); rcounter--; Writer: Problem: down(semwriter); Busy Waiting siehe

Mehr

Verklemmungen - Deadlocks

Verklemmungen - Deadlocks Verklemmungen - Deadlocks Betriebsmittel Verklemmung Vogelstrauss Algorithmus Erkennung und Auflösung Vermeidung SS2001 Prof. H.D. Clausen - unisal 1 Kritische Betriebsmittel Beispiele Drucker Magnetbandgeräte

Mehr

Übung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012

Übung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012 Übung zu Grundlagen der Betriebssysteme 10. Übung 18.12.2012 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)

Mehr

Parallele Prozesse. Prozeß wartet

Parallele Prozesse. Prozeß wartet Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:

Mehr

Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)

Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) Betriebssysteme G: Parallele Prozesse (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) 1 Allgemeine Synchronisationsprobleme Wir verstehen ein BS als eine Menge von parallel

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

Mehr

Beispiel für überladene Methode

Beispiel für überladene Methode Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Ausnahmebehandlung und Nebenläufigkeit 9. Vorlesung am 15. Dezember 2010 Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A

Mehr

Info B VL 17: Deadlocks

Info B VL 17: Deadlocks Info B VL 17: Deadlocks Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 17: Deadlocks p.327 Conditional

Mehr

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File Kapitel V Deadlocks (Verklemmungen) 1 Deadlocks System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File Prozesse benötigen Genehmigung vor der Benutzung von Ressourcen.

Mehr

Systeme I: Betriebssysteme Kapitel 6 Deadlocks. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 6 Deadlocks. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 6 Deadlocks Wolfram Burgard Version 13.12.2017 1 Inhalt Vorlesung Verschiedene Komponenten / Konzepte von Betriebssystemen Dateisysteme Prozesse Nebenläufigkeit und wechselseitiger

Mehr

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung

Mehr

Info B VL 16: Monitore und Semaphoren

Info B VL 16: Monitore und Semaphoren Info B VL 16: Monitore und Semaphoren Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 16: Monitore und

Mehr

Deadlocks. Christoph Lindemann. Betriebssysteme. Betriebssysteme WS 2004/05. Fahrplan. Inhalt. Das Deadlock Problem

Deadlocks. Christoph Lindemann. Betriebssysteme. Betriebssysteme WS 2004/05. Fahrplan. Inhalt. Das Deadlock Problem Betriebssysteme WS 2004/05 Deadlocks Christoph Lindemann Fahrplan 14.10. Organisation der Vorlesung, Einführung in Betriebssysteme 21.10. Strukturen von Betriebssystemen 28.10. Prozesse und Threads 4.11.

Mehr

Systemsoftware (SYS)

Systemsoftware (SYS) 10.Vorlesung Systemsoftware (SYS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Robotik 13.6.2008 Heute Interprozesskommunikation Kritische Abschnitte Wettlaufsituationen

Mehr

Tafelübung zu BSRvS1. 3. Philosophen. Fortsetzung Grundlagen C-Programmierung

Tafelübung zu BSRvS1. 3. Philosophen.  Fortsetzung Grundlagen C-Programmierung Tafelübung zu BSRvS1 3. Philosophen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/

Mehr

3. Philosophen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

3. Philosophen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund Tafelübung zu BSRvS1 3. Philosophen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/

Mehr

Interaktionsarten. Zusammenhang. Arten der Interaktion. 7. Kapitel Prozesse im Zusammenspiel: Prozessinteraktion

Interaktionsarten. Zusammenhang. Arten der Interaktion. 7. Kapitel Prozesse im Zusammenspiel: Prozessinteraktion Wintersemester 2016/2017 7. Kapitel Prozesse im Zusammenspiel: Prozessinteraktion Interaktionsarten Prozesse als Teile komplexer Programmsysteme müssen Daten austauschen: sich aufrufen (bzw. beauftragen)

Mehr

Betriebssysteme - Deadlocks

Betriebssysteme - Deadlocks Betriebssysteme - Deadlocks alois.schuette@h-da.de Version: (8c45d65) ARSnova 19226584 Alois Schütte 23. März 2016 1 / 41 Inhaltsverzeichnis Dieser Teil erörtert das Problem von Deadlocks (Verklemmungen):

Mehr

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404 Betriebssysteme I WS 2013/2014 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 19. Dezember 2013 Betriebssysteme / verteilte Systeme

Mehr

Informatik B. Vorlesung 8 Synchronisierung von Threads. Dr. Ralf Kunze

Informatik B. Vorlesung 8 Synchronisierung von Threads. Dr. Ralf Kunze Vorlesung 8 Synchronisierung von Threads 1 Rückblick Threads Erzeugen, Starten und Stoppen Fehler abfangen Gemeinsamer Zugriff auf Ressourcen Kritische Blöcke (Einleitung) 2 Kritische Blöcke Kritische

Mehr

Testen nebenläufiger Objekte

Testen nebenläufiger Objekte Testen nebenläufiger Objekte Threads in Java Julian Lambertz Seminar Tests in Informatik und Statistik im SS 2004 Universität Ulm J.L., Juni 2004 1 Themenüberblick Einleitung Begriff der Nebenläufigkeit

Mehr

Wirtschaftsinformatik II Sommersemester Lo sungshinweise zu den Ü bungen P. Mandl, M. Dolag, B. Rottmüller, et al.

Wirtschaftsinformatik II Sommersemester Lo sungshinweise zu den Ü bungen P. Mandl, M. Dolag, B. Rottmüller, et al. Wirtschaftsinformatik II Sommersemester 2016 Lo sungshinweise zu den Ü bungen 2-6 @Prof. P. Mandl, M. Dolag, B. Rottmüller, et al. Seite 1 / 6 Übung 2 Verwendung von Java-Threads Ableitung von Klasse Thread

Mehr

Was machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a

Was machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a Was machen wir heute? Betriebssysteme Tutorium 3 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 17. JAVA Kommunikation von Threads 1 Motivation

Mehr

Kapitel 6. Verklemmungen (Deadlocks)

Kapitel 6. Verklemmungen (Deadlocks) Seite 1 Kapitel 6 Verklemmungen (Deadlocks) Prof. Dr. Rolf Hennicker 16.06.2016 6.1 Charakterisierung von Deadlocks Seite 2 Eine Verklemmung entsteht, wenn alle Prozesse in einem System blockiert (d.h.

Mehr

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von

Mehr

2. Aufgabenblatt Threads

2. Aufgabenblatt Threads Fakultät Informatik Institut für Systemarchitektur, Professur für Betriebssysteme Betriebssysteme und Sicherheit, WS 2016/17 2. Aufgabenblatt Threads Geplante Bearbeitungszeit: drei Wochen TEIL A THREADS

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Das Java-Speichermodell Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Geschichte des Speichermodells Kapitel 17 der Java-Sprachdefinition

Mehr

Deadlock. Peter Puschner Institut für Technische Informatik

Deadlock. Peter Puschner Institut für Technische Informatik Deadlock Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Deadlock Permanentes Blockieren einer Menge von Prozessen, die um Ressourcen konkurrieren oder miteinander kommunizieren

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 19. 25. Februar 2003 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

Mehr

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf Übersicht Komplexitätsresultate Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (4) Drei Komplexitätsresultate Eine genaue Schranke für den Platzbedarf

Mehr

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

Mehr

H Verklemmungen. 1 Motivation. 1 Motivation (2) H Verklemmungen. Beispiel: die fünf Philosophen am runden Tisch

H Verklemmungen. 1 Motivation. 1 Motivation (2) H Verklemmungen. Beispiel: die fünf Philosophen am runden Tisch 1 Motivation Beispiel: die fünf Philosophen am runden Tisch Verklemmungen Philosophen denken oder essen "The life of a philosopher consists of an alternation of thinking and eating." (Dijkstra, 1971) zum

Mehr

1 Prozesse und Scheduling (12 Punkte)

1 Prozesse und Scheduling (12 Punkte) 1 Prozesse und Scheduling (12 Punkte) a) UNIX Shell-Operatoren (insgesamt 4 Punkte) 1. Operator (1,5 Punkte) Beschreiben Sie die Funktionsweise des Operators. 2. Operator Beispiel (1 Punkt) Geben Sie für

Mehr

Kontrollflüsse. Dining Philosophers. 6. Verklemmungen. Systemsoftware. Seite 6.1. (c) 2002, Prof. Dr. P. Sturm, Universität Trier

Kontrollflüsse. Dining Philosophers. 6. Verklemmungen. Systemsoftware. Seite 6.1. (c) 2002, Prof. Dr. P. Sturm, Universität Trier Kontrollflüsse 6. Verklemmungen Dining Philosophers Philosophen wechseln zwischen zwei Zuständen Denken Essen Hauptgericht Reis Pur n Sitzplätze Links Stäbchen Philosoph braucht rechtes und linkes Stäbchen

Mehr

Praktikum aus Softwareentwicklung 2, Stunde 5

Praktikum aus Softwareentwicklung 2, Stunde 5 Praktikum aus Softwareentwicklung 2, Stunde 5 Lehrziele/Inhalt 1. Threads Threads Threads sind parallele, oder auf Rechnern mit nur einer CPU quasi-parallele, Programmabläufe in Java. Sie können beispielsweise

Mehr

Nebenläufigkeit mit Java

Nebenläufigkeit mit Java Nebenläufigkeit mit Java Einheit 03: Synchronisation Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Synchronisation von Threads Locks Java Monitor-Konzept Lock Freigabe Zusammenspiel

Mehr

JJ Prozesse und Nebenläufigkeit

JJ Prozesse und Nebenläufigkeit 1 Wiederholung: Algorithmus von Peterson boolean ready0=false, ready1=false; int turn=0; JJ Prozesse und Nebenläufigkeit (Auszug aus der Vorlesung) while( 1 ) Prozess 0 ready0 = true; turn = 1; while(

Mehr

Interaktionsarten. Zusammenhang. Arten der Interaktion. 7. Kapitel Prozesse im Zusammenspiel: Prozessinteraktion

Interaktionsarten. Zusammenhang. Arten der Interaktion. 7. Kapitel Prozesse im Zusammenspiel: Prozessinteraktion Wintersemester 2018/2019. Kapitel Prozesse im Zusammenspiel: Prozessinteraktion Interaktionsarten Prozesse als Teile komplexer Programmsysteme müssen Daten austauschen: sich aufrufen (bzw. beauftragen)

Mehr

Lebenszyklus von Threads

Lebenszyklus von Threads Threads Umgangssprachlich Faden, Diskussionsfaden, Gewinde, Faser, Garn, roter Faden Threads ermöglichen Nebenläufigkeit (parallele Ausführung von Anwendungsteilen). Typisch für Threads ist,dass sie zu

Mehr

Aufgabenblatt 8 Musterlösung

Aufgabenblatt 8 Musterlösung Prof. Dr. rer. nat. Roland Wismüller Aufgabenblatt 8 Musterlösung Vorlesung Betriebssysteme I Wintersemester 2017/18 Aufgabe 1: Erzeuger-Verbraucher Synchronisation (Bearbeitung in der Übungsstunde) Erzeuger-Verbraucher-Problem:

Mehr

Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden.

Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden. 7 Parallelität und Nebenläufigkeit Mehrere Prozessen oder Threads Parallelität Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit

Mehr

parallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher.

parallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher. Threads parallele Prozesse auf sequenziellen Prozessoren Prozesse und Threads Es gibt zwei unterschiedliche Programme: Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher. Ein Thread

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Synchronisation in Java. Invisible Web

Synchronisation in Java. Invisible Web Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections

Mehr

Vorlesung Betriebssysteme II

Vorlesung Betriebssysteme II 1 / 24 Vorlesung Betriebssysteme II Thema 5: Deadlocks Robert Baumgartl 1. Juni 2015 2 / 24 Motivation Beispiele für deadlockgefährdete Abläufe 1. Lösung des Philosophenproblems Variante 4 der dezentralen

Mehr

Laborskript Verteilte Systeme

Laborskript Verteilte Systeme Laborskript Verteilte Systeme Nebenläufigkeit in Java Prof. Dr. Oliver Haase 1 Threads Java bietet zwei verschiedene Arten an, Threads zu erzeugen und zu starten: Entweder durch Erweitern der Klasse Thread,

Mehr

WS Parallele Prozesse. Prof. Hannelore Frank. Parallele Prozesse. PetriNetze. Synchronisation UNIX. Wettbewerb PC Krit.Abschnitt Spinlocks

WS Parallele Prozesse. Prof. Hannelore Frank. Parallele Prozesse. PetriNetze. Synchronisation UNIX. Wettbewerb PC Krit.Abschnitt Spinlocks WS 2007 Überblick 1 2 Petri-Netze als Entwurfshilfsmittel 3 nebenläufiger 4 -Systemfunktionen Literatur Eduard Glatz: Betriebssysteme. Grundlagen, Konzepte, Systemprogrammierung dpunkt.verlag, 2006, ISBN

Mehr

Prozesszustände (1a)

Prozesszustände (1a) Prozesszustände (1a) NOT EXISTING DELETED CREATED Meta-Zustand (Theoretische Bedeutung) Prozesszustände Multiuser Umfeld (1c) Hintergrund-Prozess - der Prozess startet im Hintergrund - my-commandbin &

Mehr

Pthreads. David Klaftenegger. Seminar: Multicore Programmierung Sommersemester

Pthreads. David Klaftenegger. Seminar: Multicore Programmierung Sommersemester Seminar: Multicore Programmierung Sommersemester 2009 16.07.2009 Inhaltsverzeichnis 1 Speichermodell 2 3 Implementierungsvielfalt Prioritätsinversion 4 Threads Speichermodell Was sind Threads innerhalb

Mehr

Lösung von Übungsblatt 6. (Interprozesskommunikation)

Lösung von Übungsblatt 6. (Interprozesskommunikation) Lösung von Übungsblatt 6 Aufgabe 1 (Interprozesskommunikation) 1. Was ist ein kritischer Abschnitt? Mehrere Prozesse greifen lesend und schreibend auf gemeinsame Daten zu. 2. Was ist eine Race Condition?

Mehr

Betriebssysteme BS-H WS 2014/15. Hans-Georg Eßer. Foliensatz H: Zusammenfassung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/01/10

Betriebssysteme BS-H WS 2014/15. Hans-Georg Eßer. Foliensatz H: Zusammenfassung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/01/10 BS-H Betriebssysteme WS 2014/15 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz H: Zusammenfassung v1.0, 2015/01/10 10.01.2015 Betriebssysteme, WS 2014/15, Hans-Georg Eßer Folie H-1 Übersicht: BS

Mehr

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme Seite 1 Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme 1 11.07.2007 Hinweise: Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch

Mehr

Java Concurrency Utilities

Java Concurrency Utilities Java Concurrency Utilities Java unterstützt seit Java 1.0 Multithreading Java unterstützt das Monitorkonzept mittels der Schlüsselworte synchronized und volatile sowie den java.lang.object Methoden wait(),

Mehr

Lösung 3. Übung zur Vorlesung Betriebssysteme

Lösung 3. Übung zur Vorlesung Betriebssysteme UNIVERSITÄT ULM Fakultät für Informatik Verteilte Systeme Prof. Dr. Peter Schulthess Ralph Göckelmann Stefan Frenz Lösung 3. Übung zur Vorlesung Betriebssysteme Aufgabe 1: Konkurrierender Zugriff ( 4+2+2

Mehr

Anwendung (2. Versuch:-) Entkopplung der Locks

Anwendung (2. Versuch:-) Entkopplung der Locks Gut gemeint aber leider fehlerhaft... Jeder Producer benötigt zwei Locks gleichzeitig, um zu produzieren: 1. dasjenige für den Puffer; 2. dasjenige für einen Semaphor. Musser fürden Semaphor einwait()

Mehr

Aufgabenblatt 7 Musterlösung

Aufgabenblatt 7 Musterlösung Prof. Dr. rer. nat. Roland Wismüller Aufgabenblatt 7 Musterlösung Vorlesung Betriebssysteme I Wintersemester 2017/18 Aufgabe 1: Steuerung eines Warenautomaten (Bearbeitung zu Hause) Anleitung wie man solche

Mehr

Mutual Exclusion. Annika Külzer Florian Störkle Dennis Herzner

Mutual Exclusion. Annika Külzer Florian Störkle Dennis Herzner Mutual Exclusion Annika Külzer Florian Störkle Dennis Herzner Gliederung 1 Mutual Exclusion allgemein 2 Lock-Algorithmen 2.1 LockOne 2.2 LockTwo + Beweis 2.3 Peterson Lock 2.4 Lamport's Bakery Lock-Algorithmus

Mehr

Nicht-blockierende Synchronisation für Echtzeitsysteme

Nicht-blockierende Synchronisation für Echtzeitsysteme Nicht-blockierende Synchronisation für Echtzeitsysteme Seminar Mobile Systeme Florian Schricker 15. März 2005 Seminarleiter: Prof. Dr. Dieter Zöbel 1 INHALTSVERZEICHNIS INHALTSVERZEICHNIS Inhaltsverzeichnis

Mehr

Linked Lists The Role of Locking

Linked Lists The Role of Locking Clara Lüling, Stephan Bittner Linked Lists The Role of Locking Verkettete Liste - Die Rolle des Sperrens Gliederung Linked Lists The Role of Locking 1. Verkettete Listen 2. Algorithmen 1. Coarse-Grained

Mehr

Prioritäten/Zeitstempel-Verfahren

Prioritäten/Zeitstempel-Verfahren Prioritäten/Zeitstempel-Verfahren Grundlegende Idee: Falls einer Transaktion T k eine Sperre nicht gewährt wird, weil eine andere Transaktion T i sie hält, besteht Deadlockgefahr. Also bekommt jede Transaktion

Mehr

Prioritäten/Zeitstempel-Verfahren. WAIT-DIE und WOUND-WAIT-Strategien

Prioritäten/Zeitstempel-Verfahren. WAIT-DIE und WOUND-WAIT-Strategien Prioritäten/Zeitstempel-Verfahren Grundlegende Idee: Falls einer Transaktion T k eine Sperre nicht gewährt wird, weil eine andere Transaktion T i sie hält, besteht Deadlockgefahr. Also bekommt jede Transaktion

Mehr

Wiederholung: Übernahmeprüfung bei terminbasierter Einplanung

Wiederholung: Übernahmeprüfung bei terminbasierter Einplanung Echtzeitsysteme Übungen zur Vorlesung Evaluation Evaluation der Veranstaltung Eure Meinung (Lob/Kritik) ist uns wichtig! Eure Rückmeldung hat Konsequenzen A Bitte evaluiert Vorlesung und Übungen Betriebsmittelprotokolle

Mehr

2.3 Prozessverwaltung

2.3 Prozessverwaltung Realisierung eines Semaphors: Einem Semaphor liegt genau genommen die Datenstruktur Tupel zugrunde Speziell speichert ein Semaphor zwei Informationen: Der Wert des Semaphors (0 oder 1 bei einem binären

Mehr

Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun. Übungsklausur

Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun. Übungsklausur Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Verteilte Systeme. 2. Die Client-Server-Beziehung und daraus resultierende Techniken. 2.2 Nebenläufigkeitstechniken in Java

Verteilte Systeme. 2. Die Client-Server-Beziehung und daraus resultierende Techniken. 2.2 Nebenläufigkeitstechniken in Java VS22 Slide 1 Verteilte Systeme 2. Die Client-Server-Beziehung und daraus resultierende Techniken 2.2 Nebenläufigkeitstechniken in Java Sebastian Iwanowski FH Wedel VS22 Slide 2 Was ist Nebenläufigkeit?

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Softwaretechnik 1 Übung 5

Softwaretechnik 1 Übung 5 Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Übung 5 2.7.29 Aufgabe 1a) Zeichnen Sie die komplette Vererbungshierarchie der Klasse BufferedOutputStream als UML- Klassendiagramm.

Mehr

Fakultät für Informatik der Technischen Universität München. Nebenläufigkeit. Probleme

Fakultät für Informatik der Technischen Universität München. Nebenläufigkeit. Probleme Nebenläufigkeit Probleme 175 Race Conditions: Probleme Situationen, in denen zwei oder mehrere Threads/Prozesse, die gleichen geteilten Daten lesen oder schreiben und das Resultat davon abhängt, wann genau

Mehr

1. Motivation. Problemstellung: Dateninkonsistenzen (data races) aufgrund von konkurrierenden Zugriffen auf gemeinsame Daten sollen verhindert werden.

1. Motivation. Problemstellung: Dateninkonsistenzen (data races) aufgrund von konkurrierenden Zugriffen auf gemeinsame Daten sollen verhindert werden. 1. Motivation Problemstellung: Dateninkonsistenzen (data races) aufgrund von konkurrierenden Zugriffen auf gemeinsame Daten sollen verhindert werden. 25.09.09 Ferienakademie 2009 Kurs 1: Data Coloring

Mehr

Threads Einführung. Zustände von Threads

Threads Einführung. Zustände von Threads Threads Einführung Parallelität : Zerlegung von Problemstellungen in Teilaufgaben, die parallelel ausgeführt werden können (einfachere Strukturen, eventuell schneller, Voraussetzung für Mehrprozessorarchitekturen)

Mehr

Prozesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads

Prozesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads Threads Prozesse, Parallelität, Nebenläufigkeit, Threads, Erzeugung, Ausführung, Kommunikation, Interferenz, Kritischer Bereich, Deadlock, Synchronisation. Prozesse Prozesse sind Programme mehrere Prozesse

Mehr

Klausur zur Vorlesung Grundlagen der Betriebssysteme

Klausur zur Vorlesung Grundlagen der Betriebssysteme Prof. Dr. L. Wegner Dipl.-Math. K. Schweinsberg Klausur zur Vorlesung Grundlagen der Betriebssysteme 19.2.2004 Name:... Vorname:... Matrikelnr.:... Studiengang:... Hinweise: Bearbeitungszeit 2 Stunden.

Mehr

Nebenläufige Programmierung in Java: Threads

Nebenläufige Programmierung in Java: Threads Nebenläufige Programmierung in Java: Threads Wahlpflicht: Fortgeschrittene Programmierung in Java Jan Henke HAW Hamburg 10. Juni 2011 J. Henke (HAW) Threads 10. Juni 2011 1 / 18 Gliederung 1 Grundlagen

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) Betriebssysteme (BS) Probeklausur Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund http://ess.cs.uni-dortmund.de/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/

Mehr

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Threads Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Ein thread bearbeitet eine sequentielle Teilaufgabe innerhalb eines Prozesses Mehrere nebenläufige

Mehr

Übung zu Grundlagen der Betriebssysteme. 11. Übung

Übung zu Grundlagen der Betriebssysteme. 11. Übung Übung zu Grundlagen der Betriebssysteme 11. Übung 08.01.2012 Organisation Anmeldung zur Klausur Klausur Grundlagen der Betriebssysteme Datum: 05.02.2013 Raum F414 (steht aber noch nicht sicher fest) Anmeldung

Mehr

Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen

Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen Fachschaft Informatik Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen Michael Steinhuber König-Karlmann-Gymnasium Altötting 9. Februar 2017 Folie 1/40 Inhaltsverzeichnis I 1 Kommunikation

Mehr

Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen. Özden Urganci Ulf Sigmund Ömer Ekinci

Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen. Özden Urganci Ulf Sigmund Ömer Ekinci Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen Özden Urganci Ulf Sigmund Ömer Ekinci Inhaltsangabe 1 Einleitung 2 Prinzipien des verteilten wechselseitigen Ausschlusses 2.1 Anforderungen

Mehr

Programmieren II. Nebenläufigkeit. Vorlesung 9. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester Threads. Kritische Bereiche

Programmieren II. Nebenläufigkeit. Vorlesung 9. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester Threads. Kritische Bereiche Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 24 Threads Kritische Bereiche Reales Beispiel 2 / 24 Nebenläufigkeit Moderne Betriebssysteme unterstützen das Prinzip der

Mehr

Wintersemester 2009/10 Helmut Seidl Institut für Informatik TU München

Wintersemester 2009/10 Helmut Seidl Institut für Informatik TU München Informatik2 Wintersemester 2009/10 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Nebenläufigkeit in Java; Funktionales Programmieren mit OCaml :-) 2 1 Threads

Mehr

Info B VL 15: Multi-Threading

Info B VL 15: Multi-Threading Info B VL 15: Multi-Threading Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 15: Multi-Threading p.288

Mehr

Klausur am

Klausur am Vorlesung Betriebssysteme I Wintersemester 2004/2005 Fachbereich 12, Elektrotechnik und Informatik Betriebssysteme / verteilte Systeme Prof. Roland Wismüller Klausur am 04.04.2005 Name: Vorname: Matrikelnummer:

Mehr

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009 Fakultät für Mathematik und Informatik Lehrgebiet Kooperative Systeme Prof. Dr. Jörg M. Haake FernUniversität in Hagen 58084 Hagen Vorname Name Straße Hausnr. Informatikzentrum Universitätsstr. 1 58084

Mehr

Java I Vorlesung Nebenläufigkeit

Java I Vorlesung Nebenläufigkeit Java I Vorlesung 10 Nebenläufigkeit 28.6.2004 Threads Synchronisation Deadlocks Thread-Kommunikation Innere Klassen Anonyme Klassen Nebenläufigkeit http://java.sun.com/docs/books/tutorial/essential/threads/

Mehr

Klausur Nichtsequentielle Programmierung

Klausur Nichtsequentielle Programmierung Klausur Nichtsequentielle Programmierung Prof. Dr. Marcel Kyas 22. Juli 2009 Nachname: Bachelor Magister Vorname: Master Lehramt Diplom Hinweise zur Klausur Bitte überprüfen Sie, dass Sie alle Seiten dieser

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen 1 Datenstrukturen und Algorithmen Übung 13 FS 2018 Programm von heute 2 1 Feedback letzte Übung 2 Wiederholung Theorie 3 Nächste Übung 1. Feedback letzte Übung 3 Aufgabe 12.3: Summe eines Vektors void

Mehr

Literatur. VA SS Teil 5/Messages

Literatur. VA SS Teil 5/Messages Literatur [5-1] https://en.wikipedia.org/wiki/message-oriented_middleware [5-2] https://en.wikipedia.org/wiki/advanced_message_queuing_protocol http://www.amqp.org/specification/0-10/amqp-org-download

Mehr

Parallelität, Threads

Parallelität, Threads Parallelität, Threads Tutorium 17 Fabian Miltenberger 30.06.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD) KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr