variante von lermen und maurer
play

Variante von Lermen und Maurer Verteiltes Reference-Counting: - PowerPoint PPT Presentation

Variante von Lermen und Maurer Verteiltes Reference-Counting: Lsungen copy p q p q p q --> Jede increment-Nachricht besttigen (warten auf ack bevor das copy losgeschickt wird): ack inc dec copy r r r p q p q p q an q,


  1. Variante von Lermen und Maurer Verteiltes Reference-Counting: Lösungen copy p q p q p q --> Jede increment-Nachricht bestätigen (warten auf ack bevor das copy losgeschickt wird): ack inc dec copy r r r p q p q p q an q, nicht an p! inc Idee: ack r r r Senden einer dec-Nachricht (bei Löschen der Referenz) erst dann, wenn das Objekt bereits eine zugehöriges ack Referenz- 1 2 2 zähler (bzgl. inc) vom Zielobjekt der Referenz empfangen hat ==> Korrektheitskriterium erfüllt - Korrektheitskriterium erfüllt: inc wird vor einem kausal abhängigen dec empfangen - Beachte: Referenz kann stets gelöscht werden, nur das (d.h. Objekt r erfährt über die Existenz einer Kopie einer r-Referenz, Senden von dec muss verzögert werden bevor es vom Löschen dieser oder einer "solchen" Referenz erfährt) - Implementierungsskizze: - Nachteile der Methode: - Zählen von empfangenen copy und ack-Nachrichten - copy wird verzögert --> insgesamt 3 Nachrich- - dec-Nachricht erst senden, wenn Zähler ACK und COPY übereinstimmen ten pro copy-Operation - zusätzliche Nachricht (ack) - dann die Zähler ACK und COPY beide dekrementieren - "individuelle" Zuordnung von copy zu ack nicht notwendig! - Abschwächung |ACK|>0 ∧ |COPY|>0 möglich? Konsequenzen? - Vorteil : kein Verzögern von Basisaktionen wieso? - Nachteil : Ack-Nachricht und FIFO-Kanäle notwendig Vert. Algo. 02/03, F. Ma. 313 Vert. Algo. 02/03, F. Ma. 314

  2. Varianten von Rudalics Die Referenzgewichts-Methode (WRC: "Weighted Reference Counting") 1) 3-Nachrichten-Protokoll ("zyklisch"): 3) ack Idee : q bekommt Referenz auf r von r p q selbst; nachdem r seinen Zähler inkre- Neues Objekt generieren ("new"): mentiert hat (veranlasst durch inc). Bedingung : p darf seine r-Referenz p p erst löschen, wenn alle erwarteten 1) inc 2) copy ack-Nachrichten eingetroffen sind. Reference Weight RW= 8 Frage : Wäre es auch möglich, dass das r ack an p von r (statt q) gesendet wird? RC Reference Count = 8 (obwohl dadurch die Referenzen - Vorteil : kein FIFO notwendig (falls FIFO garantiert ist: ack-Nachricht nicht tatsächlich "gezählt" werden) einsparen ==> nur zwei Nachrichten pro copy!) - Nachteil : Kopieren dauert länger (2 Nachrichten) Referenz kopieren ("copy "): 2) 4-Nachrichten-Protokoll: 3) ack p p q - Idee: ack erst senden, wenn p q beide copy-Nachrichten RW= 8 RW= 4 RW= 4 empfangen wurden 1) copy RC RC Splitten von RW - q installiert die r-Referenz = 8 = 8 2) copy 1) inc (...solange das geht!) bei Empfang der ersten copy-Nachricht ansonsten (hier nicht entspricht genauer behandelt): r "ack" bei - Unter welchen Bedingungen dürfen Lermen / 1) "Recharge" p bzw. q dec-Nachrichten senden? Maurer 2) Indirektionsobjekt - Vorteil: kein FIFO notwendig; keine Verzögerung - Beachte: Es wird keine Increment-Nachricht benötigt! - Nachteil: 4 Nachrichten (aber nur 3 "sequentiell") Vert. Algo. 02/03, F. Ma. 315 Vert. Algo. 02/03, F. Ma. 316

  3. Referenz löschen ("delete"): Kredit-Methode und WRC p q p q RW= 2 RW= 4 RW= 4 Terminierungserkennung WRC- mit der Kreditmethode Garbage-Collection DRC(2) RC RC RC =6 - Senden einer Nachricht - Kopieren einer Referenz =6 =4 (Splitten des RW) (Splitten des Kreditwertes) Decrement-Reference- Count-Nachricht - Passiv werden (Kredit - R-Referenz löschen an Urprozess zurückgeben) (Decrement-Nachricht an R) Invariante : ∑ Kredit =1 Invariante : RC = ∑ RW + ∑ DRC Invariante : RC = ∑ RW + ∑ DRC - Gesamtkredit beim - RC = 0 bei R RC = 0 --> Objekt ist Garbage Urprozess = 2 0 =1 --> alle Referenzen dieses Objektes auf andere Objekte löschen (DRC-Nachrichten senden) Terminierung R ist Garbage Also: Kreditmethode entspricht WRC-Garbage-Collection! - Logarithmische Kompression (2er-Potenzen!) von RW - mit nur 2 Bit pro Zeiger lassen sich so RW bis max. 8 darstellen - statt 8 kann ggf. auch ein (etwas?) grösserer Maximalwert gewählt werden - RC so nicht komprimierbar ==> int-Variable mit "vielen" Bits pro Objekt - Keine Verzögerung bei copy / delete und bei copy keine zusätzlichen Nachrichten! - RW = 1 sollte ein eher seltenes Ereignis sein (--> Zusatzaufwand) - Analogie zur Kredit-Methode bei vert. Terminierung! Vert. Algo. 02/03, F. Ma. 317 Vert. Algo. 02/03, F. Ma. 318

  4. Problemtransformation Garbage-Collection und Terminierung - Es wird das Problem , nicht der Algortihmus transformiert! nicht notwendigerweise verteilte Theorem: Jeder G arbage-Collection -Algorithmus kann automatisch in einen Algorithmus zur Feststellung Terminierungs- Garbage- der verteilten Terminierung transformiert werden entdeckungs- Collection- problem Problem ? Bemerkung: Für beide Probleme wurden viele nicht-triviale (und auch manche falsche!) Lösungen publiziert einfache Transformation Anwendung des Ein Garbage-Collection- (aber wie?) Garbage-Coll. Algorithmus Algorithmus triviale Interpretation ? Lösung des Lösung des Terminierungs- Garbage- entdeckungs- Collection- problems Problems mechanische Transformation automatisch Vereinfachung und Optimierung manuell Lösung des Terminierungs- Terminierungs- entdeckungs- ! entdeckungs- problem problems Ein verteilter Termi- nierungsentdeckungs-Algorithmus Algorithmus zur Feststellung der verteilten Terminierung! Vert. Algo. 02/03, F. Ma. 319 Vert. Algo. 02/03, F. Ma. 320

  5. Vom Ende einer Geheimniskrämerei Die Transformation Die vier goldenen Regeln der Geheimniskrämerei: - Jeder Prozess wird in ein Wurzelobjekt transformiert 1) Es gibt und unein- - Ein zusätzliches virtuelles Objekt R wird hinzugefügt Geheim- geweihte Personen nisträger P1 P2 1) Prozess P aktiv <==> 2) Nur ein Geheimnisträger kann das Geheimnis P besitzt Referenz auf R weiterverbreiten: 2) Jede Nachricht enthält virtuelles R Referenz auf R Objekt - Die beiden Regeln lassen sich ("induktiv") erfüllen: - ein (aktives) Objekt / Prozess sendet eine Kopie seiner R-Referenz mit jeder Nachricht - ein reaktivierter Prozess erhält eine R-Referenz - ein Prozess, der passiv wird, löscht seine R-Referenz Geheimnis: Ort R Garbage <==> Es gibt keine Referenz auf R des Schatzes <==> Alle Prozesse passiv und keine Nachricht 3) Wer das Geheimnis erfährt, wird zum Geheimnisträger unterwegs <==> Verteilte Berechnung terminiert 4) Ein Geheimnisträger kann das Geheimnis (endgültig) vergessen - Also: verwende irgendeinen GC-Algorithmus --> interpretiere Berechnung als GC-Problem --> melde Terminierung, wenn R als Garbage erkannt es gibt keine Geheimnisträger und keine Nachrichten mit dem Geheimnis Geheimniskrämerei terminiert <==> Schatz nicht mehr zugreifbar <==> Schatz ist "Garbage" - Übung: man mache dies für konkrete GC-Algorithmen aus der Literatur - beachte: es entstehen keine Zyklen von Referenzen, daher sind auch --> "watchdog" beim Schatz meldet Terminierung... Referenzzählverfahren anwendbar! Vert. Algo. 02/03, F. Ma. 321 Vert. Algo. 02/03, F. Ma. 322

  6. Dijkstra 2 Die Patent-Story 3 et al. ’78 "Local Refernce Counting" ’90 Variante 1 WRC-Garbage-Collection-Algorithm patentiert: von Ben-Ari Bevan / Watson Europäische Patentnummer 86309082.5 GC-Algo. (WRC) mechanische Transformation Hier u.U. Algo. zur Entdeckung optimieren der verteilten Ist der resultierende Terminierungs- Terminierung erkennungsalgorithmus auch durch Credit das Patent geschützt? 1 Recovery 3 Dijkstra Dijkstra / et al. ’83 Scholten ’80 ("DFG") 2 Bekannte Garbage-Collection-Verfahren werden so in bekannte und brauch- bare Algorithmen zur Erkennung der verteilten Terminierung transformiert! Vert. Algo. 02/03, F. Ma. 323 Vert. Algo. 02/03, F. Ma. 324

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend