Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Verteilte Systeme, Sommersemester 1999 Folie 7.2

Größe: px
Ab Seite anzeigen:

Download "Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Verteilte Systeme, Sommersemester 1999 Folie 7.2"

Transkript

1 Verteilte Systeme 7. Verteilter wechselseitiger Ausschluß Inhalt I. Was ist wechselseitiger Ausschluß II. Wechselseitiger Ausschluß mit State-Variablen III. Wechselseitiger Ausschluß mit Nachrichten Verteilte Systeme, Sommersemester 999 Folie 7.2 (c) Peter Sturm, Universität Trier

2 Wechselseitiger Ausschluß (mutual exclusion) Mehrere Prozesse möchten etwas tun, wobei garantiert sein muß, daß es zu einem Zeitpunkt nur einer darf. exklusive Betriebsmittel abstrakte exklusive Betriebsmittel, z.b. Termin in einem verteilten TVS Im shared memory -Fall Fall: Mit Hilfe von z.b. Semaphoren einfach lösbar! Interessiert uns hier nicht! Verteilte Systeme, Sommersemester 999 Folie 7.3 Wechselseitiger Ausschluß (mutual exclusion) Was uns auch nicht interessiert: Zentraler Monitor Request Grant 2 Nachrichten Fehlertoleranz: Verteilte Systeme, Sommersemester 999 Folie 7.4 (c) Peter Sturm, Universität Trier 2

3 II. STATE-VARIABLEN Jeder Prozeß P i hat zwei Arten von Variablen: Lokale Variablen: Nur P i kann auf sie zugreifen (lesend und schreibend) State-Variablen Variablen: P i darf lesend und schreibend zugreifen. j j : j i : P j darf lesend zugreifen. Prinzipiell auch in Nachrichten-basierten Systemen möglich: Read (S i ) Pj P i Si Content (S i ) Verteilte Systeme, Sommersemester 999 Folie 7.5 Bäckerei-Algorithmus (Lamport 74) var number : array [... n-] n of integer; number [i] + max (number[],..., number [n-]); for j= to n-, i j begin wait (number [j] ) (number [i], i) < (number( [j], j); end; <kritischer Abschnitt> number [i] ; (a,b) < (c,d) (a < c) ((a = c) (b < d)) Verteilte Systeme, Sommersemester 999 Folie 7.6 (c) Peter Sturm, Universität Trier 3

4 Bäckerei-Algorithmus (Lamport 74) ) Algorithmus garantiert wechselseitigen Ausschluß: number [i] = n i (n,..., n n ) besitzt bezgl.. der Ordnung ein eindeutiges Minimum! Sei n i dieses Minimum Für r P i : j : j i : wait (true) Für P j : j i : wait (false); 2) Algorithmus ist fair! Prozeß P i muß maximal (n-) mal warten 3) Algorithmus ist korrekt? Fast! Problem: number [i] + max (number [],..., number [n-]) ist nicht atomar! Verteilte Systeme, Sommersemester 999 Folie 7.7 Szenario: Ein wechselseitiger Nicht-Ausschluß P P 2 n = n 2 = ( n = ) ( n 2 = ) + ( n = ) ( n 2 = ) + n 2 n for (j = 2) true! waít (n 2 ) (n, ) < (n 2, 2) true! <kritischer Abschnitt> Boing for (j=) wait (n ) false!... true! <kritischer Abschnitt> Verteilte Systeme, Sommersemester 999 Folie 7.8 (c) Peter Sturm, Universität Trier 4

5 Bäckerei-Algorithmus Algorithmus (Lamport 74) var number : array [... n-] n of integer; choice : array [... n-] n of boolean; choice [i] true; number [i] + max (number[],..., number [n-]); choice [i] false; for j= to n-, i j begin wait choice [j]; wait (number [j] ) (number [i], i) < (number( [j], j); end; <kritischer Abschnitt> number [i] ; Verteilte Systeme, Sommersemester 999 Folie 7.9 Szenario: Ein wechselseitiger Nicht-Ausschluß P P 2 n = choice = true ( n = ) ( n 2 = ) + n 2 = choice 2 = true ( n = ) ( n 2 = ) + n 2 choice 2 = false n choice = false for (j = 2) true! waít (n 2 ) (n, ) < (n 2, 2) P darf true! zuerst rein <kritischer Abschnitt> Bleibt false bis P durch Boing for (j=) wait (n ) false!... true! <kritischer Abschnitt> wait choice Verteilte Systeme, Sommersemester 999 Folie 7. (c) Peter Sturm, Universität Trier 5

6 Bemerkungen: ) Algorithmus ist symmetrisch 2) Fehlertoleranz: Es muß bloß garantiert sein, daß bei Absturz von P i jeder andere Prozeß P j davon ausgeht: P i ist nicht im kritischen Abschnitt! Deadlock-Gefahr Gefahr: Prozeß P i stürzt immer bei der Maximumbildung ab! choice; ; = true Alle Prozesse warten an wait choice; 3) Nachrichtenaufwand: Hängt H davon ab, wie man die State- Variablen realisiert (~ 2n + 4 (n )) Verteilte Systeme, Sommersemester 999 Folie 7. Dijkstra s selbst-stabilisierender stabilisierender Algorithmus (974) Token P P P n- P 2 P 3 Sei k>: var flag: array [... n-] n of...k; P : wait flag [] = flag [n-]; <kritischer Abschnitt> flag [] (flag [] + ) mod k; P (i ): wait flag [i] flag [i-]; <kritischer Abschnitt> flag [i] flag [i-]; Verteilte Systeme, Sommersemester 999 Folie 7.2 (c) Peter Sturm, Universität Trier 6

7 Dijkstra s selbst-stabilisierender stabilisierender Algorithmus (974) Sei flag[i] ] = i Bemerkungen: ) Algorithmus garantiert wechselseitigen Ausschluß: true! P : wait flag [] = flag [n-] P : wait flag [i] flag [i-] false! i i : i P betritt kritischen Abschnitt... danach flag [] = false! P : wait flag [] = flag [n-] P : wait flag [] flag [] true! P i : wait flag [i] flag [i-] false! i i : i, i P betritt kritischen Abschnitt 2) Algorithmus verhindert Deadlocks 3) Algorithmus ist fair Verteilte Systeme, Sommersemester 999 Folie 7.3 Dijkstra s selbst-stabilisierender stabilisierender Algorithmus (974) Aber: ) Algorithmus ist nicht symmetrisch 2) Prozesse bekommen das Privileg, obwohl sie gar nicht in den kritischen Abschnitt wollen! müssen Token weitergeben 3) Fehlertoleranz: Abstürzende Prozesse müssen aus dem Ring entfernt werden! Wie man entfernt, hängt vom Prozeß P ab (P Anderer wird P ) (P i Raus aus Ring) Zusätzliche Informationen für f r den Ringaustrag Verteilte Systeme, Sommersemester 999 Folie 7.4 (c) Peter Sturm, Universität Trier 7

8 Dijkstra s selbst-stabilisierender stabilisierender Algorithmus (974) Interessante Eigenschaft: Man kann die initiale Bedingung flag [i] = i i fallen lassen Selbst Stabilisierung Hängt von k ab: ) k n : Wechselseitiger Ausschluß kann nicht garantiert werden! n=4, k=2: P P P 2 P Verteilte Systeme, Sommersemester 999 Folie 7.5 Dijkstra s selbst-stabilisierender stabilisierender Algorithmus (974) k > n : Selbst-Stabilisierung Stabilisierung P o inkrementiert (wenn er darf) P i schieben Token nach rechts Da k > n informell: Müll wird nach rechts geschoben und durch sinnvolle Inhalte in P o ergänzt!man kann erkennen, wann wechselseitiger Ausschluß garantiert ist! Verteilte Systeme, Sommersemester 999 Folie 7.6 (c) Peter Sturm, Universität Trier 8

9 Abschließende Bemerkungen Einfache, verhältnismäßig fehlertolerante Algorithmen sind möglich! Nachteile: 2 Ebenen werden durcheinander gebracht: - Logik - Implementierung schwer beschreibbar & schwer verständlich Hohe Anzahl an Nachrichten Blindes Testen von Statevariablen Nachrichten an andere, wenn sich Statevariablen in P i ändern: Nachrichten-basierte Algorithmen Viele unnütze Nachrichten Verteilte Systeme, Sommersemester 999 Folie 7.7 Abschließende Bemerkungen Aber: Effiziente Realisierung in shared shared-memory memory -System Vorteil: (gegenüber z.b. Semaphor) - keine Globalen Variablen - Erhöhte Fehlertoleranz Verteilte Systeme, Sommersemester 999 Folie 7.8 (c) Peter Sturm, Universität Trier 9

10 III. Wechselseitiger Ausschluß - Nachrichten-basiert - STATE-Variablen Variablen -Algorithmen können in einer nachrichten- basierten Umgebung realisiert werden! Request Informationen -Nachrichten Viele z.t.. unnötige Nachrichten Send Informationen -Nachrichten Anzahl der Nachrichten wird minimiert Keine unnützen Nachrichten Alle Nachrichten signalisieren Zustandswechsel Nachrichten-Basierte Algorithmen sind verteilter als die mit State-Variablen! Verteilte Systeme, Sommersemester 999 Folie 7.9 III. Wechselseitiger Ausschluß - Nachrichten-basiert -... natürlich gibt es auch hier eine Token-Ring Lösung: a) Le Lann s Algorithmus (977) P P Pn- P 2 P3 Pi P i : Klar: Token Nachteile: Warte auf Token von P i- ; <Kritischer Abschnitt> Sende Token an P i+ ; Garantiert wechselseitigen Ausschluß Verhindert Deadlocks Fair Anzahl Nachrichten:... + Prozeß bekommt Privileg, obwohl er es nicht braucht! Fehlertoleranz ) Token-Verlust Genau neues Token! 2) Prozeß-Absturz Ring verkürzen rzen Verteilte Systeme, Sommersemester 999 Folie 7.2 (c) Peter Sturm, Universität Trier

11 III. Wechselseitiger Ausschluß - Nachrichten-basiert - b) Verteilte Warteschlange (Lamport( 978) Idee: Manager-Prozess P P 2 P 3 P i... Warteschlange P P 2 P P n P 2 Totale Ordnung auf alle Nachrichten im System Prozesse: Nachrichten kommen in gleicher Reihenfolge an! P n P i Verteilte Systeme, Sommersemester 999 Folie 7.2 Timestamp - Mechanismus Jeder Prozeß (Knoten) besitzt eine lokale Uhr, die unabhängig von anderen Uhren ist! Anpassung der Uhren! Event i Event i+ Event i+2 lc++ lc++ lc++ lc = local clock Verteilte Systeme, Sommersemester 999 Folie 7.22 (c) Peter Sturm, Universität Trier

12 Timestamp - Mechanismus Uhren-Synchronisation beim Nachrichtenverschicken: P i Send (message, lc i, i) lc i Übertragung Receive P k lc k = max (lc k, lc i ) + lc k d.h. bei Empfang von (message( message, lc m, m) bei P k : if lc k < lc m lc k lc k + ; then lc k lc m endif; Verteilte Systeme, Sommersemester 999 Folie 7.23 Timestamp Mechanismus Erweiterung: Für zwei empfangene Nachrichten (Daten, k, i) und (Daten 2, k 2, j) kann gelten: lc = lc 2! Prozeß (Knoten)- Nummer Dann gilt: (Daten, lc, i) < (Daten( 2, lc 2, j) (lc < lc 2 ) ((lc = lc 2 ) ( i < j)) Das ist nur eine mögliche Art, Nachrichten mit Zeitstempeln zu versehen! Es gibt auch andere! Verteilte Systeme, Sommersemester 999 Folie 7.24 (c) Peter Sturm, Universität Trier 2

13 Lamport s Algorithmus n Prozesse: P,..., P n- Lokale Variablen für P i var: clock i :... + queue i : j n- REL REL REL REL j n- Letzte Nachr. Ist Req, Ack, oder Rel. Clock von P j j Verteilte Systeme, Sommersemester 999 Folie 7.25 Lamport s Algorithmus P i möchte in den kritischen Abschnitt:. Sende (req( req, clock i, i) an alle; /*Broadcast Broadcast*/ queue i [i] := clock i + ; 2. Warte bis j j : j i gilt: Die Nachricht in queue i [i] ist kleiner als die Nachricht in queue i [j] 3. <kritischer Abschnitt> 4. Sende (rel( rel, clock i, i) an alle; queue i [i] := (rel( rel, clock i, i); clock i, := clock i + ;! Voraussetzung: Nachrichten überholen sich nicht! Verteilte Systeme, Sommersemester 999 Folie 7.26 (c) Peter Sturm, Universität Trier 3

14 Lamport s Algorithmus P i empfängt Nachricht (Daten, clock, Nr): ) /* Uhr synchronisieren */ wenn clock i < clock dann clock i := clock; clock i := clock i + ; 2) Falls Daten = req: queue i [Nr]] := (req( req, clock, Nr); Sende (ack( ack, clock i, i) zu P Nr ; Daten = rel: queue i [Nr]] := (rel( rel, clock, Nr); Daten = ack: wenn Nachricht in queue i [Nr] req dann queue i [Nr]] := (ack( ack, clock, Nr); Algorithmus ist Fair Deadlock frei (Totale Ordnung enthält keine Zyklen) Korrekt (Garantiert wechselseitigen Ausschluß) Nachrichten-Komplexität: 3 (n-) Verteilte Systeme, Sommersemester 999 Folie 7.27 Ein optimaler Algorithmus c) Ricart & Agrawala s Algorithmus (98) Optimierung von Lamport s Algorithmus Prozess P i möchte in den kritischen Abschnitt: ) Sende (Request( Request, clock i, i) an alle; 2) Warte auf n- n Reply s; 3) <kritischer Abschnitt> Prozess P i empfängt Request: Sendet Reply sofort, wenn I) P i nicht in den kritischen Abschnitt will! II) P i zwar in den kritischen Abschnitt will, aber der andere höhere Rechte hat! Verzögert das Reply,, wenn III) P i in den kritischen Abschnitt will und höhere Rechte hat! Verteilte Systeme, Sommersemester 999 Folie 7.28 (c) Peter Sturm, Universität Trier 4

15 Ein optimaler Algorithmus c) Ricart & Agrawala s Algorithmus (98) Optimierung von Lamport s Algorithmus Prozess P i möchte in den kritischen Abschnitt: ) Sende (Request( Request, clock i, i) an alle; 2) Warte auf n- n Reply s; 3) <kritischer Abschnitt> 4) Gib alle verzögerten Reply s raus! Prozess P i empfängt Request: Sendet Reply sofort, wenn I) P i nicht in den kritischen Abschnitt will! II) P i zwar in den kritischen Abschnitt will, aber der andere höhere Rechte hat! Verzögert das Reply,, wenn III) P i in den kritischen Abschnitt will und höhere Rechte hat! Nachrichten-Komplexität 2 (n-) Verteilte Systeme, Sommersemester 999 Folie 7.29 Ein optimaler Algorithmus In dieser Richtung sind dann einige Verbesserungen vorgenommen worden: Le Lann (977)... + Lamport (978) 3 (n-) Ricart & Agrawala (98) 2 (n-) Carvalho & roucairol... (2(n-)) Suzuki & Kasami (982) Ricart & Agrawala (983) n oder oder 42? Verteilte Systeme, Sommersemester 999 Folie 7.3 (c) Peter Sturm, Universität Trier 5

16 Ein optimaler Algorithmus d) Maekawa s Algorithmus (985) Idee: 2 k k+ 2k (k-)k (k-)k+ k-k Verteilte Systeme, Sommersemester 999 Folie 7.3 Ein optimaler Algorithmus d) Maekawa s Algorithmus (985) Idee: 2 k k+ 2k i j (k-)k (k-)k+ k-k Prozess i hat eine Menge von Prozessen S i, die er um Erlaubnis fragen muß! Es gilt: i, j S i n S j Ø (Wichtig, um wechselseitigen Ausschluß zu garantieren) Verteilte Systeme, Sommersemester 999 Folie 7.32 (c) Peter Sturm, Universität Trier 6

17 Ein optimaler Algorithmus Nachrichten: REQUEST LOCKED RELEASE Inquire Relinquish Failed } } für wechselseitigen Ausschluß Vermeidung von Deadlocks Verteilte Systeme, Sommersemester 999 Folie 7.33 Algorithmus P i möchte kritischen Abschnitt betreten: ) Sende REQUEST an alle Elemente von S i ; 2) Warte auf LOCKED von allen Prozessen aus S i ; 3) <kritischer Abschnitt> 4) Sende RELEASE an alle Prozesse aus S i ; P j ε S i empfängt REQUEST-Nachricht Nachricht: ) Wenn frei dann Zustand locked; Sende LOCKED-Nachricht an P i ; Sonst /* Abschnitt ist von P k ε S j belegt */ wenn P j von einem aussichtsreicheren REQUEST-Kandidaten weiß dann sonst Sende FAILED-Nachricht an P i ; Sende INQUIRE-Nachricht Nachricht an P k ; /* Warte auf RELINQUISH oder RELEASE von P k */ Verteilte Systeme, Sommersemester 999 Folie 7.34 (c) Peter Sturm, Universität Trier 7

18 Algorithmus P k ε S i empfängt INQUIRE-Nachricht Nachricht von P j : ) wenn ein Prozess ε S k ein FAILED an P k geschickt hat dann Hebe bereits angelaufene LOCK s auf; Sende RELINQUISH an P j ; sonst Sende RELEASE nach Verlassen des kritischen Abschnitts;... usw. usw. Algorithmus garantiert wechselseitigen Ausschluß verhindert Deadlocks ist fair! Verteilte Systeme, Sommersemester 999 Folie 7.35 Algorithmus Nachrichten-Komplexität: c n n c ε [6... ] Algorithmus kann verbessert werden: Die REQUEST GRANTING -Mengen S i sind im Gitter nicht minimal! Lösung: Problem aus der projektiven Geometrie Für r bestimmte n sind minimale S i möglich (S i = Potenz einer Primzahl) Im minimalen Fall ist die Nachrichten-Komplexit Komplexität c n n c ε [3... 5] Verteilte Systeme, Sommersemester 999 Folie 7.36 (c) Peter Sturm, Universität Trier 8

19 Algorithmus Fehlertoleranz: Bei Ausfall von P i muß die Request-Grant Grant-Menge S i von einem anderen Rechner übernommen werden! Interessant: Das wissen von P i ist in σ( n) n)-nachrichten wieder herleitbar! Verteilte Systeme, Sommersemester 999 Folie 7.37 Ein optimaler Algorithmus c) Raymond s Algorithmus (989) Idee: Topologie ist ein spannender Baum P P 2 P 3 P 4 P 5 P 6 P 7 P 8 P 9 P P... Ein Prozess P i besitzt das Privileg ( Token Token ), den kritischen Abschnitt zu betreten P i Verteilte Systeme, Sommersemester 999 Folie 7.38 (c) Peter Sturm, Universität Trier 9

20 Ein optimaler Algorithmus c) Raymond s Algorithmus (989) Idee: Topologie ist ein spannender Baum P P 2 P 3 P 4 P 5 P 6 P 7 P 8 P 9 P P... Ein Prozess P i besitzt das Privileg ( Token Token ), den kritischen Abschnitt zu betreten P i Die anderen Prozesse wissen in welcher Richtung es zu finden ist! Verteilte Systeme, Sommersemester 999 Folie 7.39 Nachrichten-Arten: REQUEST : Ein Prozess will das Token! (Privileg) PRIVILEG : Hier ist das Privileg! Lokale Variablen für P i : HOLDER = self oder Name eines direkten Nachbarn in dessen Richtung das Privileg liegt. USING : bool = true wenn P i im kritischen Abschnitt ist (USING Holder self) REQUEST-QUEUE QUEUE = FIFO Schlange angekommener Request- Nachrichten von Prozessen, die das Privileg noch nicht hatten ASKED : bool = true Request nach Privileg in Richtung HOLDER ist bereits verschickt worden. Enthält nur self und Namen direkter Nachbarn! Verteilte Systeme, Sommersemester 999 Folie 7.4 (c) Peter Sturm, Universität Trier 2

21 Algorithmus Prozess P i will Privileg: ) Füge self self an REQUEST-QUEUE QUEUE an; 2) wenn ASKED dann sende REQUEST an HOLDER; ASKED true; Prozess P i emfängt Request von P i : ) Füge P i an REQUEST-QUEUE QUEUE an; 2) wenn ASKED dann sende REQUEST an HOLDER; ASKED true; Prozess P k hat Privileg und will es loswerden: ) wenn REQUEST-QUEUE > dann X Kopf von REQUEST-QUEUE QUEUE; Lösche Kopf der REQUEST-QUEUE QUEUE; Holder X; sende PRIVILEGE an HOLDER; asked false; using false; Verteilte Systeme, Sommersemester 999 Folie 7.4 Algorithmus Prozess l empfängt Privileg von P m : ) X Kopf von REQUEST-QUEUE QUEUE; 2) Lösche Kopf von REQUEST-QUEUE QUEUE; 3) wenn X = self then Using true; <kritischer Abschnitt> sonst HOLDER X; sende Privilege an HOLDER; Verteilte Systeme, Sommersemester 999 Folie 7.42 (c) Peter Sturm, Universität Trier 2

22 Algorithmus Garantiert wechselseitigen Ausschluß Verhindert Deadlock s: spannender Baum ist azyklisch Privileg trifft nach endlicher Zeit auf einen Request. Fair! (FIFO( FIFO-Queue s) Nachrichten-Komplexität: σ (log k n) k = Grad des Baums Verbesserungen Initialisierung: I) Ein Prozeß wird privilegiert II) Sendet INITIALIZE an alle Nachbarn; III) Alle Prozesse, die INITIALIZE empfangen setzen HOLDER INIT-Sender Sender; Sende INITIALIZE an alle Nachbarn; Fehlertoleranz Verteilte Systeme, Sommersemester 999 Folie 7.43 Algorithmus VERGLEICH Le Lann (977)... + Lamport (978) 3 (n-) Ricart & Agrawala (98) 2 (n-) Carvalho & Roucairol... (2(n-)) Ricart & Agrawala (983) n Maekawa (985) c n Raymond (989) log k n Verteilte und Symmetrische Algorithmen Verteilte Systeme, Sommersemester 999 Folie 7.44 (c) Peter Sturm, Universität Trier 22

23 Algorithmus Problem: Es ist nicht einfach zu entscheiden, ob es einen besten Algorithmus gibt! Güte eines Algorithmus hängt nicht allein vom worst worst-case case - Verhalten ab! Empirische Untersuchungen, da mittlere -Verhalten fast nie theoretisch bestimmt werden kann z.b. Ausführliche Simulation aller Algorithmen bis 983 (CNET : Lannion) Parameter: Knoten mittlere Wartezeit Ruhezeiten } Nachrichten Belegtzeiten Verteilte Systeme, Sommersemester 999 Folie 7.45 Algorithmus Wartezeit 2 σ LeLann 77 R/A 8 q 3 Ruhezeiten (Last ) Es gibt keinen besten Algorithmus Verteilte Systeme, Sommersemester 999 Folie 7.46 (c) Peter Sturm, Universität Trier 23

24 Algorithmus... nochmal: Wechselseitiger Ausschluß Idee der Request Request-Grant Grant -Mengen kann erweitert werden! B. A. Sanders (987) 2 Mengen/Prozess: Inform-Menge Menge: Alle Prozesse, die informiert werden müssen, wenn ein bestimmter Prozeß den kritischen Abschnitt verläßt. Request-Menge Menge: Alle Prozesse, die gefragt werden müssen, wenn ein bestimmter Prozeß in den kritischen Abschnitt will. Anpassbar an bestimmte Anwendungen Bestimmte Anforderungen an die Inform- und Request-Mengen Mengen, um wechselseitigen Ausschluß zu garantieren. Verteilte Systeme, Sommersemester 999 Folie 7.47 Literatur: ) Michel Raynal: Algorithmus for mutual Exclusion,, 986 State-Variablen Algorithmen, Nachrichten-basierte Algorithmen: LeLann, Lamport, Ricart & Agrawala 2) Mamoru Maekawa: A n Algorithm for Mutual Exclusion in Decentralized Systems, ACM Transactions on Computer Systems, Vol. 3, No. 2, May 985, pp ) Kerry Raymond: A Tree-Based Algorithm for Distributed Mutual Exclusion, ACM Transactions on Computer Systems, Vol. 7, No., February 989, pp log n - Algorithmus 4) Beverly A. Sanders: The Information Structure of Distributed Mutual Exclusion Algorithms, ACM Transactions on Computer Systems, Vol. 5, No. 3, August 987, pp Verallgemeinerung Verteilte Systeme, Sommersemester 999 Folie 7.48 (c) Peter Sturm, Universität Trier 24

Verteilte Systeme. 7. Verteilter wechselseitiger. Ausschluß. Wechselseitiger Ausschluß (mutual. exclusion)

Verteilte Systeme. 7. Verteilter wechselseitiger. Ausschluß. Wechselseitiger Ausschluß (mutual. exclusion) Verteilte Systeme 7. Verteilter wechselseitiger Ausschluß Wechselseitiger Ausschluß (mutual exclusion) Aufgabenstellung Mehrere Prozesse möchten etwas tun, wobei garantiert sein muß, daß es zu einem Zeitpunkt

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

Verteilte Algorithmen

Verteilte Algorithmen Verteilte Algorithmen Wechselseitiger Ausschluss PD Dr.-Ing. Gero Mühl Kommunikations- und Betriebssysteme Fakultät für Elektrotechnik u. Informatik Technische Universität Berlin Überblick > Problem des

Mehr

Token-Request-basierte Algorithmen. Der O(log n)-algorithmus. - Andere Idee: Spannbaum verwenden

Token-Request-basierte Algorithmen. Der O(log n)-algorithmus. - Andere Idee: Spannbaum verwenden Token-Request-basierte Algorithmen aber wie bekommt man diesen? Der O(log n)-algorithmus Das wäre aber besser als das "optimale" O( n)- Verfahren!?! - Andere Idee: Spannbaum verwenden - "Suchnachrichten"

Mehr

Gegenseitiger Ausschluss

Gegenseitiger Ausschluss Gegenseitiger Ausschluss Problemstellung Mehrere Prozesse greifen auf gemeinsame Daten/essourcen zu; der Zugriff muss synchronisiert werden: Immer nur ein Prozess darf den kritischen Abschnitt (k.a.) betreten.

Mehr

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43 Wahlalgorithmen Überblick/Problemstellung Wahlalgorithmen auf Ringstrukturen Beispiel TokenRing Wahlalgorithmen auf Baumstrukturen Wahlalgorithmen auf beliebigen Netzstrukturen Verteilte Algorithmen (VA),

Mehr

Vorlesung "Verteilte Systeme" Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Vorlesung Verteilte Systeme Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19. Verteilte Systeme 19. Distributed Shared Memory Sharing!! No Sharing! Sharing? Evolution der Berechnungsmodelle Vergangenheit Gemeinsamer Speicher Einzelrechner Gegenwart Nachrichtenkommunikation Verteilte

Mehr

Literatur. c Kapitza VS (SS 2015) 12 Gegenseitiger Ausschluss 12.1 Überblick Beispiele

Literatur. c Kapitza VS (SS 2015) 12 Gegenseitiger Ausschluss 12.1 Überblick Beispiele .. Zentraler Koordinator.. Tenbasierte Algorithmen c Kapitza VS (SS 0) : Zentraler Koordinator ( Alle fragen einen) : Zentraler Koordinator: Zentraler Koordinator: Alle fragen einen Alle fragen einen ich

Mehr

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. 9. Verteilte Algorithmen

Vorlesung Verteilte Systeme Sommersemester Verteilte Systeme. 9. Verteilte Algorithmen Vorlesung "Verteilte Systeme" Sommersemester 999 Verteilte Systeme 9. Verteilte Algorithmen Bereits behandelte Bereiche Logische Uhren Keine globale Uhrensynchronisation möglich (Theorie) Kausalitätserhaltender

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

Gegenseitiger Ausschluss:

Gegenseitiger Ausschluss: Gegenseitiger Ausschluss Gegenseitiger Ausschluss Problemstellung Gegenseitiger Ausschluss Problemstellung Mehrere Prozesse greifen auf gemeinsame Daten/essourcen zu; Problemstellung Mehrere dieser Zugriff

Mehr

7.1 Grundlagen. Anforderungen an eine Realisierung

7.1 Grundlagen. Anforderungen an eine Realisierung Verteilte Betriebssysteme Wintersemester 2017/2018 Koordination des exklusiven Zugriffs auf Ressourcen Verteilte Betriebssysteme 7. Kapitel Gegenseitiger Ausschluss Prof. Matthias Werner Professur Betriebssysteme

Mehr

Verteilte Systeme. Übereinstimmung und Koordination

Verteilte Systeme. Übereinstimmung und Koordination Verteilte Systeme Übereinstimmung und Koordination 1 Wahlen 2 Wahl-Algorithmen In vielen verteilten Algorithmen benötigt man einen Prozeß, der eine irgendwie geartete besondere Rolle spielt, z.b. als Koordinator,

Mehr

Verteilte Systeme. Synchronisation II. Prof. Dr. Oliver Haase

Verteilte Systeme. Synchronisation II. Prof. Dr. Oliver Haase Verteilte Systeme Synchronisation II Prof. Dr. Oliver Haase 1 Überblick Synchronisation 1 Zeit in verteilten Systemen Verfahren zum gegenseitigen Ausschluss Synchronisation 2 Globale Zustände Wahlalgorithmen

Mehr

Gegenseitiger Ausschluss: Überblick. Gegenseitiger Ausschluss. Gegenseitiger Ausschluss: Überblick. Gegenseitiger Ausschluss: Überblick

Gegenseitiger Ausschluss: Überblick. Gegenseitiger Ausschluss. Gegenseitiger Ausschluss: Überblick. Gegenseitiger Ausschluss: Überblick Gegenseitiger Ausschluss Gegenseitiger Ausschluss: Überblick Problemstellung Zentraler Koordinator: ich will ich will Mehrere Prozesse greifen auf gemeinsame Daten/essourcen zu; dieser Zugriff muss koordiniert

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Aufgabe 1: Wintersemester 07/08 Übungsblatt 6 15.01.08 Grundlagen verteilter Systeme Lösungsvorschlag

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

Verteilte Systeme. Synchronisation I. Prof. Dr. Oliver Haase

Verteilte Systeme. Synchronisation I. Prof. Dr. Oliver Haase Verteilte Systeme Synchronisation I Prof. Dr. Oliver Haase 1 Überblick Synchronisation 1 Zeit in verteilten Systemen Verfahren zum gegenseitigen Ausschluss Synchronisation 2 Globale Zustände Wahlalgorithmen

Mehr

Verteilter wechselseitiger Ausschluss

Verteilter wechselseitiger Ausschluss Westfälische Wilhelms-Universität Münster Ausarbeitung Verteilter wechselseitiger Ausschluss im Rahmen des Seminars Parallele und Verteilte Programmierung Jens Ehlers Themensteller: Prof. Dr. Herbert Kuchen

Mehr

9 Verteilte Verklemmungserkennung

9 Verteilte Verklemmungserkennung 9 Verteilte Verklemmungserkennung 9.1 Grundlagen Für die Existenz einer Verklemmung notwendige Bedingungen Exklusive Betriebsmittelbelegung Betriebsmittel können nachgefordert werden Betriebsmittel können

Mehr

Uberblick Verteilte Synchronisation Zeit in verteilten Systemen Logische Uhr Synchronisation Aufgabe 6 VS- Ubung (SS15) Verteilte Synchronisation 10 1

Uberblick Verteilte Synchronisation Zeit in verteilten Systemen Logische Uhr Synchronisation Aufgabe 6 VS- Ubung (SS15) Verteilte Synchronisation 10 1 Überblick Verteilte Synchronisation Zeit in verteilten Systemen Logische Uhr Synchronisation Aufgabe 6 VS-Übung (SS15) Verteilte Synchronisation 10 1 Zeit in verteilten Systemen Ist Ereignis A auf Knoten

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

Inhalt. Organisatorisches. Verteilte Algorithmen Überblick 4. Verteilte Systeme. Formales Modell Algorithmus

Inhalt. Organisatorisches. Verteilte Algorithmen Überblick 4. Verteilte Systeme. Formales Modell Algorithmus 1 2 Organisatorisches Inhalt Webseite zur Vorlesung: /teaching/ss_05/algosens/ Folien zur Vorlesung und Übung (soweit verfügbar) Übungsblätter Referenzen auf weiterführende Literatur Ankündigungen zur

Mehr

Praktikable Einigungsalgorithmen

Praktikable Einigungsalgorithmen Praktikable Einigungsalgorithmen Algorithmen für synchrone Systeme Atomarer Broadcast: siehe Aufgabe 4.4 Burns/Neiger Lamport/Shostak/Pease: Oral Messages; Signed Messages Algorithmen für asynchrone Systeme

Mehr

Motivation. Überblick. Motivation. Sequentielle Verfahren

Motivation. Überblick. Motivation. Sequentielle Verfahren Überblick Motivation Wahlalgorithmen Motivation Grundlagen Chang-Roberts-Algorithmus Wellenverfahren Adoptionsverfahren Problem: Wahl eines Anführerknotens szenarien Koordinierung verteilter Aktionen Erzeugung

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

Verteilte Systeme. Verteilte Systeme. 7 Koordination SS 2017

Verteilte Systeme. Verteilte Systeme. 7 Koordination SS 2017 Verteilte Systeme SS 2017 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 26. Juni 2017 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/12) i

Mehr

Vorlesung "Verteilte Systeme" Sommersemester 1999. Verteilte Systeme NTP) Verteilte Systeme, Sommersemester 1999 Folie 4.2

Vorlesung Verteilte Systeme Sommersemester 1999. Verteilte Systeme NTP) Verteilte Systeme, Sommersemester 1999 Folie 4.2 Verteilte Systeme 4. Zeit Ansätze Pragmatisch: Uhrensynchronisation Abgleich der lokalen Uhren Beispiele Zeitabgleich nach F. Christian Berkeley-Algorithmus Verteilte Synchronisation Network Time Protocol

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Wintersemester 07/08 Übungsblatt 5 08.01.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1:

Mehr

Verteilte Systeme. Übereinstimmung und Koordination

Verteilte Systeme. Übereinstimmung und Koordination Verteilte Systeme Übereinstimmung und Koordination 1 Wahlen 2 Wahl-Algorithmen In vielen verteilten Algorithmen benötigt man einen Prozeß, der eine irgendwie geartete besondere Rolle spielt, z.b. als Koordinator,

Mehr

Betriebssysteme Teil 11: Interprozess-Kommunikation

Betriebssysteme Teil 11: Interprozess-Kommunikation Betriebssysteme Teil 11: Interprozess-Kommunikation 19.12.15 1 Übersicht Grundbegriffe Shared Memory Pipelines Messages Ports Sockets 2 Grundbegriffe Interprocess-Kommunikation = Austausch von Daten über

Mehr

Überblick Wintersemester 2014/2015

Überblick Wintersemester 2014/2015 Überblick Wintersemester 2014/2015 Prof. Dr. Peter Mandl Verteilte Systeme Einführung und Überblick Zeitsynchronisation Wahl und Übereinstimmung RPC, verteilte Objekte und Dienste Verteilte Transaktionen

Mehr

Domänenmodell: Fadenkommunikation und -synchronisation

Domänenmodell: Fadenkommunikation und -synchronisation Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4

Mehr

Mutual Exclusion und Synchronisation. Peter Puschner Institut für Technische Informatik

Mutual Exclusion und Synchronisation. Peter Puschner Institut für Technische Informatik Mutual Exclusion und Synchronisation Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Gemeinsame Ressourcen BS und Prozesse, parallel laufende Prozesse verwenden die selben Daten

Mehr

Überblick. Zeit Motivation Network Time Protocol (NTP) Logische Uhren. c td VS (SS16) Zeit 9 1

Überblick. Zeit Motivation Network Time Protocol (NTP) Logische Uhren. c td VS (SS16) Zeit 9 1 Überblick Zeit Motivation Network Time Protocol (NTP) Logische Uhren c td VS (SS16) Zeit 9 1 Motivation Zeit als Mittel zur Reihenfolgebestimmung (Beispiele) Erkennung von Modifikationen an Dateien (z.

Mehr

Kap. 6.5: Minimale Spannbäume ff

Kap. 6.5: Minimale Spannbäume ff Kap. 6.: Minimale Spannbäume ff Professor Dr. Karsten Klein Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 20. VO 2. TEIL DAP2 SS 2009 2. Juli 2009 SS08 1 Überblick 6.:

Mehr

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (5) Bisher. Jetzt. Aktuelle Themen zu Informatik der Systeme: WS 2011/12

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (5) Bisher. Jetzt. Aktuelle Themen zu Informatik der Systeme: WS 2011/12 Stand der Folien: 15. November 2011 Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (5) 1 Übersicht über die Operationen Mutual-Exclusion

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Heaps Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 469 Prioritätswarteschlange Problem Häufig ist das Prinzip einer einfachen Warteschlangen-Datenstruktur

Mehr

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung

Mehr

Übungen zur Vorlesung Verteilte Algorithmen II, Heiko Krumm, Universität Dortmund, FB Informatik

Übungen zur Vorlesung Verteilte Algorithmen II, Heiko Krumm, Universität Dortmund, FB Informatik Übung 4: Gegenseitiger Ausschluss (Ricart-Agrawala 1981) Konstanten: n >1 Anzahl der Prozesse; r Adresse des Prozesses, der initial das Token besitzt. Prozessparameter i sei die Adresse der aktuellen Prozessinstanz,

Mehr

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern)

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern) Klausur Verteilte Systeme 15.6. R120A 8:00-9:30 5 Aufgaben, 50 Punkte (8 12 pro Aufgabe) 45-50 1.0 44 1.1 35 2.0 25 3.0 15 4.0 http://www.bts.fh-mannheim.de Aufgaben: (dazugehörige Kapitel / Seitenangaben

Mehr

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Abgeschlossenheit (Definition) Gegeben sei eine Menge M und ein n-ärer

Mehr

Lösungsvorschlag Serie 7 Parallelität

Lösungsvorschlag Serie 7 Parallelität 7 (1/6) Lösungsvorschlag Serie 7 Parallelität 1. Es sei die folgende Situation vorgegeben: 4 D 3 C 2 E 5 1 B A Im Folgenden sind vier Methoden zur Lösung des Problems dargestellt: (a) Intelligente Kontrolleinheit

Mehr

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Klausur zur Vorlesung Algorithmen und Datenstrukturen Klausur zur Vorlesung Algorithmen und Datenstrukturen Die Dauer der Klausur beträgt 120 Minuten. Erlaubte Hilfsmittel: Ein selbst handschriftlich beschriebenes DIN A4 Blatt, das komplette Skript zur Vorlesung

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

Verteilte Algorithmen

Verteilte Algorithmen Verteilte Softwaresysteme Verteilte Algorithmen Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.06.2018 21:08 Inhaltsverzeichnis Verteilt versus zentralisiert 1 Unterschiede....................................

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

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Klausur zur Vorlesung Algorithmen und Datenstrukturen Klausur zur Vorlesung Algorithmen und Datenstrukturen Die Dauer der Klausur beträgt 120 Minuten. Erlaubte Hilfsmittel: Ein selbst handschriftlich beschriebenes DIN A4 Blatt, das komplette Skript zur Vorlesung

Mehr

KÖNIGSBERGER BRÜCKENPROBLEM

KÖNIGSBERGER BRÜCKENPROBLEM VOM PROBLEM ZUM PROGRAMM NUTZEN EINES FORMALEN MODELLS (U. A.) Was ist ein Problem? Ein Problem im Sinne der ierung ist durch Computer lösbar. Man kann leichter sehen, ob das Problem - oder Teile davon

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

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 Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 16 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Fragen zum zweiten Übungsblatt? 2. Vorbesprechung des dritten Übungsblatts 3. Beispielaufgaben

Mehr

3.2 Generischer minimaler Spannbaum-Algorithmus

3.2 Generischer minimaler Spannbaum-Algorithmus 3.2 Generischer minimaler Spannbaum-Algorithmus Initialisiere Wald F von Bäumen, jeder Baum ist ein singulärer Knoten (jedes v V bildet einen Baum) while Wald F mehr als einen Baum enthält do wähle einen

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

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

9: Verteilte Algorithmen

9: Verteilte Algorithmen 9: Verteilte Algorithmen Verteiltes System: Zusammenschluss unabhängiger Computer ( Knoten ), das sich für den Benutzer als einzelnes System präsentiert. (Begriffsbildung nach A. Tanenbaum hatten wir schon)

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Kapitel 3: Elementare Datenstrukturen Mariano Zelke Datenstrukturen 2/18 Einfach verkettete Listen Mariano Zelke Datenstrukturen 3/18 Eine Zeiger-Implementierung

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

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

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

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches: Keine Vorlesung nächste Woche wegen

Mehr

Zeit als Mittel der Reihenfolgebestimmung

Zeit als Mittel der Reihenfolgebestimmung Uhrensynchronisation Notwendigkeit von Uhrensynchronisation Zeit als Mittel der Reihenfolgebestimmung Probleme der Uhrensynchronisation Lamport Vektorduhren Synchronisation von physikalischen Uhren Grundlagen

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine

Mehr

Algorithmentheorie Randomisierung

Algorithmentheorie Randomisierung Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,

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

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

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda Amortisierte Analyse Suche in sortierten Arrays Heaps Vorstellen des fünften Übungsblatts

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

Überblick. Zeit in verteilten Systemen. Echtzeit-basierte Uhren. Synchronsation von Echtzeit-Uhren: NTP, PTP

Überblick. Zeit in verteilten Systemen. Echtzeit-basierte Uhren. Synchronsation von Echtzeit-Uhren: NTP, PTP Überblick Zeit in verteilten Systemen Ist Ereignis A auf Knoten X passiert bevor B auf Y passiert ist? Beispiele: Internet-Auktion, Industrie-Steuerungen,... Verteilte Synchronisation Zeit in verteilten

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

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute Wiederholung: Zusammenfassung Felder Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Ein Feld A kann repräsentiert

Mehr

8. Synchronisations-Verfahren

8. Synchronisations-Verfahren 8. Synchronisations-Verfahren Die verschiedenen Synchronisationsverfahren unterscheiden sich i.w. dadurch, wie sie die Einhaltung des Serialisierbarkeitsprinzips gewährleisten wann die Prüfung auf Serialisierbarkeit

Mehr

Interaktive Ausführung von verteilten

Interaktive Ausführung von verteilten Interaktive Ausführung von verteilten Algorithmen Distributed Algorithms in Java (DAJ) Mordechai Ben-Ari Weizmann Institute of Science Seminar zur Visualisierung verteilter Systeme Christoph Jacob Überblick

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion

Mehr

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

Copyright, Page 1 of 7 Heapsort

Copyright, Page 1 of 7 Heapsort www.mathematik-netz.de Copyright, Page 1 of 7 Heapsort Alle grundlegenden, allgemeinen Sortierverfahren benötigen O(n 2 ) Zeit für das Sortieren von n Schlüsseln. Die kritischen Operationen, d.h. die Auswahl

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Prof. Dr. Erika Ábrahám Datenstrukturen und Algorithmen 1/1 Datenstrukturen und Algorithmen Vorlesung 14: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/

Mehr

SS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen

SS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen SS10 Algorithmen und Datenstrukturen 2. Kapitel Fundamentale Datentypen und Datenstrukturen Martin Dietzfelbinger April 2010 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS10 Kapitel 2 Datentyp

Mehr

Aufgabe 2.1: Lamports Uhren

Aufgabe 2.1: Lamports Uhren Aufgabe 2.1: Lamports Uhren Die Relation a ereignet sich kausal vor b wird kurz als a b notiert. Von zwei Ereignissen a und b sind logische Zeitstempel nach Lamport, C(a) und C(b), bekannt, und es gilt

Mehr

Überblick. Multicast Motivation Grundlagen Zustellungsgarantien Ordnungsgarantien Paxos. c td VS (SS17) Multicast 7 1

Überblick. Multicast Motivation Grundlagen Zustellungsgarantien Ordnungsgarantien Paxos. c td VS (SS17) Multicast 7 1 Überblick Multicast Motivation Grundlagen Zustellungsgarantien Ordnungsgarantien Paxos c td VS (SS17) Multicast 7 1 Motivation Fehlertoleranz durch Replikation Redundante Applikationsinstanzen auf unterschiedlichen

Mehr

Visuelle Kryptographie. Anwendung von Zufallszahlen

Visuelle Kryptographie. Anwendung von Zufallszahlen Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,

Mehr

Grundlagen: Überblick

Grundlagen: Überblick Grundlagen: Überblick Verteilte Systeme Definition Grundbegriffe Kommunikation Klassifikation von Fehlern Begriffe Fehlerarten Analyse von Algorithmen Korrektheit Komplexität Verteilte Algorithmen (VA),

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

Synchrone Botschaften

Synchrone Botschaften Synchrone Botschaften PPJ-84 Prozesse kommunizieren und synchronisieren sich direkt miteinander, bzw. über Kanäle, die höchstens eine Botschaft aufnehmen. Operationen: send (b): receive (v): blockiert

Mehr

Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest

Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest Gliederung Algorithmen und Datenstrukturen I Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10,

Mehr

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :

Mehr

Softwareprojektpraktikum Maschinelle Übersetzung

Softwareprojektpraktikum Maschinelle Übersetzung Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de Vorbesprechung 5. Aufgabe 22. Juni 2017 Human Language Technology

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

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM Objektorientierte Programmierung 11. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Die 2. lgruppe von KobrA: : le der : e Folie 1 Zur Erinnerung: 1. lgruppe:

Mehr

Verteilte Systeme Teil 2

Verteilte Systeme Teil 2 Distributed Computing HS 2015 Prof. Dr. Roger Wattenhofer Prüfung Verteilte Systeme Teil 2 Mittwoch, 27. Januar 2016 15:00 18:00 Die Anzahl Punkte pro Teilaufgabe steht jeweils in Klammern bei der Aufgabe.

Mehr

Visualisierung paralleler bzw. verteilter Programme

Visualisierung paralleler bzw. verteilter Programme Seminar Visualisierung in Informatik und Naturwissenschaften im SS 1999 Visualisierung paralleler bzw. verteilter Programme Holger Dewes Gliederung Zum Begriff Motivation PARADE Beispiel 1: Thread basierte

Mehr

Übungsblatt 2: Betriebssysteme, Prozesse

Übungsblatt 2: Betriebssysteme, Prozesse Ludwig-Maximilians-Universität München München, 13.05.2009 Institut für Informatik Priv.-Doz. Dr. Peer Kröger Thomas Bernecker Einführung in die Informatik: Systeme und Anwungen SS 2009 Übungsblatt 2:

Mehr

Kapitel IV. Prozesssynchronisation. VO Betriebssysteme

Kapitel IV. Prozesssynchronisation. VO Betriebssysteme Kapitel IV Prozesssynchronisation 1 Motivation: Nebenläufigkeit Zentrale Bedeutung der Verwaltung von Prozessen und Threads Mehrprogrammbetrieb: : mehrere Prozesse in einem sequentiellen Einprozessorsystem

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr