9. Vorlesung Betriebssysteme
|
|
- Maike Schuler
- vor 7 Jahren
- Abrufe
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
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
MehrLö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?
MehrLeser-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
MehrVerklemmungen - 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 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)
MehrParallele 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:
MehrBetriebssysteme. 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
MehrAusnahmebehandlung 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
MehrBeispiel 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
MehrObjektorientierte 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
MehrInfo 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
MehrDeadlocks. 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.
MehrSysteme 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
MehrBetriebssysteme. 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
MehrInfo 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
MehrDeadlocks. 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.
MehrSystemsoftware (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
MehrTafelü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/
Mehr3. 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/
MehrInteraktionsarten. 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)
MehrBetriebssysteme - 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):
MehrBetriebssysteme 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
MehrInformatik 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
MehrTesten 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
MehrWirtschaftsinformatik 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
MehrWas 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
MehrVorlesung 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
MehrKapitel 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.
MehrThread-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
Mehr2. 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
MehrUniversitä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
MehrDeadlock. 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
MehrEinfü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 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
MehrMonitore. 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
MehrH 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
Mehr1 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
MehrKontrollflü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
MehrPraktikum 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
MehrNebenlä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
MehrJJ 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(
MehrInteraktionsarten. 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)
MehrLebenszyklus 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
MehrAufgabenblatt 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:
MehrDie 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
Mehrparallele 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
MehrSysteme 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
MehrSynchronisation 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
MehrVorlesung 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
MehrLaborskript 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,
MehrWS 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
MehrProzesszustä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 &
MehrPthreads. 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
MehrLö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?
MehrBetriebssysteme 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
MehrTest (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
MehrSysteme 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
MehrJava 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(),
MehrLö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
MehrAnwendung (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()
MehrAufgabenblatt 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
MehrMutual 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
MehrNicht-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
MehrLinked 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
MehrPrioritä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
MehrPrioritä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
MehrWiederholung: Ü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
Mehr2.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
MehrSystemsoftware (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
MehrVerteilte 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,
MehrVerteilte 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?
MehrTag 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
MehrSoftwaretechnik 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.
MehrFakultä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
Mehr1. 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
MehrThreads 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)
MehrProzesse. 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
MehrKlausur 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.
MehrNebenlä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
MehrSysteme 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
MehrBetriebssysteme (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/
MehrSequentielle 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 08.01.2012 Organisation Anmeldung zur Klausur Klausur Grundlagen der Betriebssysteme Datum: 05.02.2013 Raum F414 (steht aber noch nicht sicher fest) Anmeldung
MehrInformatik 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
MehrWechselseitiger 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
MehrProgrammieren 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
MehrWintersemester 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
MehrInfo 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
MehrKlausur 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:
MehrKlausur 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
MehrJava 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/
MehrKlausur 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
MehrDatenstrukturen 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
MehrLiteratur. 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
MehrParallelitä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