FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / Wahlpflichtmodule

[DIS] Synchronisation - Korrektheit

[DIS] Synchronisation - Korrektheit 2010-03-25 22:08
7formell
Abend,

ich weiß, dass es schon ein DIS Thema dazu gibt (http://www.fb18.de/mybb/showthread.php?tid=9893&pid=109346#pid109346), aber ich find es wird da langsam unübersichtlich, daher würd ich hier gern meine Fragen stellen:

Bin gerade dabei mich für DIS vorzubereiten und in diesem Kapitel ist mir so einiges nicht klar:

1. Was genau ist nun der Unterschied zwischen Schedules, Historien und Präfix? Eine Historie kann zugleich Schedules sein und zudem noch Präfix, außerdem kann ein Schedules scheinbar ebenfalls Präfix sein?! Blick da nicht durch. Kann die Definitionen nicht sauber auseinander halten

2. Mit den ganzen Klassen komm ich noch nicht so zurecht. Vllt. könnte man sich hier mal die Zusammenfassung recht weit hinten anschauen, es gilt:

  1. w1(x) x2(x) w2(y) c2 w1(y) –> FULL
  2. w1(x) r2(x) w2(y) c2 r1(y) w1(y) c1 w3(x) w3(y) c3 –> FSR
  3. w1(x) r2(x) w2(y) w1(y) c1 c2 –> CMFSR AND Full
  4. w1(x) w2(x) w2(y) c2 w1(y) c1 w3(x) w3(y) c3 –> VSR
  5. w1(x) r2(x) w2(y) w1(y) c1 c2 w3(x) w3(y) c3 –> auch VSR ??
  6. w1(x) w2(x) w2(y) c2 w1(y) w3(x) w3(y) c3 w1(z) c1 –> CMVSR AND FULL
  7. w1(x) w2(x) w2(y) c2 w1(z) c1 –> CSR
  8. w3(y) c3 w1(x) r2(x) c2 w1(y) c1 –> OCSR
  9. w3(y) c3 w1(x) r2(x) w1(y) c1 c2 –> COCSR
  10. w1(x) w1(y) c1 w2(x) w2(y) c2 –> seriell

Zu 1) Was heißt den eig. Full? Sämtliche mögl. Historien? Aufjedenfall hier ganz klar keine Chance von Serialisierbarkeit

Zu 2) Aus dem Konflikgraphen (T1 <–> T2, T1 –> T3) folgt, dass es nicht CSR sein kann, da wir einen Zyklus haben. Aber wieso nicht VSR? Hab den Unterschied zwischen VSR und FSR noch nicht erkannt.

Zu 3) Wieder Zyklus (T1 <–> T2), wieso nicht VSR weiß ich auch hier nicht, CMFSR heißt hier soweit ich wieß, dass die Commitreihnfolge eingehalten wird, und zwar commited zuerst die TA, welche zuerst einen Konfilkt hatte? also hier zuerst T1, dann T2…

zu 4) Auch hier Zyklus im Graph (T1 <—> T2, T2 –> T3), weiß auch hier nicht wieso jetzt VSR

zu 5) hier bin ich mir gar nicht sicher, welche Klasse nun gemeint ist, wieder VSR?

zu 6) Mh, hier müßte die Commitreihenfolge eig. wieder eingehalten werden. Den ersten Konflikt produziert aber T1 oder nicht? Aber hier commited T2 als erster .. wieso ist das trotzdem CMVSR?

zu 7) kein Zyklus mehr –> CSR

zu 8) Ordnungserhaltende Konfliktserialisierbarkeit habe ich nicht verstanden - was sagt das aus?

zu 9) Hier sollte eig. wieder die commitreihenfolge beachtet werden, wie erstellt sich die Reihenfolge ?

zu 10) das ist klar :)

sind jetzt doch recht viele Fragen geworden, sry … vllt. könnt ihr mir ja bei ein paar weiter helfen.
Dominik

RE: [DIS] Synchronisation - Korrektheit 2010-03-27 00:48
7formell
ok bin mittlerweile ein wenig weiter:

Zu meiner ersten Frage, ich habe jetzt eine Definition gefunden, wo es heißt, dass es bei Historien keine aktiven TA mehr gibt. Es handelt sich um einen abgeschlossenen Vorgang. Wohingegeben Schedules noch nicht abgeschlossene Vorgänge sind. Präfix weiß ich aber immer noch nicht :/

Zur zweiten Frage:
zu 1) Full wird wohl bedeuten, beliebige serielle Reihenfolge, also T1 -> T2 oder T2 -> T1, nur erzeugen wir ausgehend vom selben Ausgangszustand jeweils unterschiedliche Endzustände  (also nich wirklich sinnvoll)

zu 2) FSR bedeutet, dass wir ausgehend vom selben Ausgangszustand denselben Endzustand der DB erzeugen, also hier z.B.: T1->T2->T3, es ist nicht VSR, da unsere Leseoperationen jeweils unterschiedliche Werte liefern.

zu 4) Da wir keine Leseoperationen hier haben liefern unsere nicht vorhandenen Leseoperationen immer den gleichen Wert, daher VSR

zu 5) Versteh ich immer noch nicht, was genau gemeint ist

zu 6) da wir wieder keine Leseoperationen haben, können wir wieder folgende serielle Folge erstellen: T2 -> T3 -> T1 (auch wenns vllt. nicht sinnvoll ist), aber wir halten die commit reinfolge ein.

zu 8) Ich glaube, dass hier eine OCSR serielle Reihnfolge folgende wär: T3 -> T1 -> T2, da T3 vollständig vor T1 und T2 ist.

zu 9) Commit Reihnfolge kann eingehalten werden und zwar gibts die serielle Reihnfolge T3->T1->T2