10.03.2015 Views

Odporność na błędy bizantyjskie w systemach peer-to-peer - Instytut ...

Odporność na błędy bizantyjskie w systemach peer-to-peer - Instytut ...

Odporność na błędy bizantyjskie w systemach peer-to-peer - Instytut ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

104 Dodatek B. Uzgadnianie w asynchronicznym systemie<br />

Przez konfigurację C będziemy rozumieli stan wszystkich procesów wraz z<br />

zawar<strong>to</strong>ścią ich buforów. Konfiguracja początkowa jest ustalo<strong>na</strong> w sposób taki,<br />

iż każdy procesów jest w stanie początkowym, a bufory wiadomości są puste.<br />

Konfigurację początkową będziemy <strong>na</strong>zywali przyległą do innej konfiguracji, jeżeli<br />

różni się o<strong>na</strong> stanem wewnętrznym tylko jednego procesu p.<br />

Na krok wykonywany przez proces p składają się <strong>na</strong>stępujące czynności:<br />

wyko<strong>na</strong>nie operacji odbierz(p), zmiany stanu wewnętrznego, wysłaniu skończonego<br />

zbioru wiadomości do innych procesów. Wyko<strong>na</strong>nie kroku jest całkowicie<br />

uzależnione od e =(p, m), co będziemy <strong>na</strong>zywać zdarzeniem i jeżeli e przenosi<br />

konfigurację C do nowej konfiguracji, <strong>to</strong> nowa konfiguracja będzie oz<strong>na</strong>cza<strong>na</strong><br />

jako e(C).<br />

Przebiegiem σ będziemy określali skończony bądź nieskończony ciąg zdarzeń.<br />

Jeżeli σ będzie skończone <strong>to</strong> wynikową konfigurację dla C oz<strong>na</strong>czymy<br />

jako σ(C). Mówimy, że σ(C) jest osiągalne z C. C posiada war<strong>to</strong>ść decyzyjną<br />

v jeżeli y p = v dla jakiegoś p. P jest częściowo poprawny gdy spełnia<br />

<strong>na</strong>stępujące wymagania:<br />

1. Żad<strong>na</strong> z osiągalnych konfiguracji nie posiada więcej, jak jednej war<strong>to</strong>ści<br />

decyzyjnej.<br />

2. Dla każdej z war<strong>to</strong>ści v ∈{0, 1}, któraś z osiągalnych konfiguracji ustala<br />

war<strong>to</strong>ść v.<br />

P jest całkowicie poprawny niezależnie od jednego niepoprawnie działającego<br />

procesu jeżeli jest częściowo poprawny oraz każdy osiągalny przebieg posiada<br />

war<strong>to</strong>ść decyzyjną v. Możemy powiedzieć, że konfiguracja C jest dwuokreślo<strong>na</strong>,<br />

lubjednookreślo<strong>na</strong>, gdy istnieją dla niej przebiegi zarówno prowadzące,<br />

w pierwszym przypadku do decyzji {0, 1} lub tylko do 0 lub 1 w drugim przypadku.<br />

Konfigurację jednookreśloną rozróżniamy <strong>na</strong> 0-określoną i 1-określoną.<br />

Lemat 1 Załóżmy, że istnieje pew<strong>na</strong> konfiguracja C. Przebiegi σ 1 ,σ 2 prowadzą<br />

odpowiednio do wynikowych konfiguracji C 1 oraz C 2 . Jeżeli zbiory procesów<br />

biorących udział w przebiegach σ 1 ,σ 2 są rozłączne, <strong>to</strong> σ 1 może być zas<strong>to</strong>sowa<strong>na</strong><br />

do C 2 oraz σ 2 do C 1 i oba przebiegi będą prowadziły do pewnej konfiguracji<br />

C 3 .<br />

Dowód. Możemy podzielić N procesów <strong>na</strong> dwa rozłączne podzbiory A i B.<br />

Jeżeli σ 1 jest przebiegiem, który wiąże się ze zmianą stanu tylko dla procesów<br />

w A (brak komunikacji z B) orazσ 2 jest przebiegiem, który wiąże się ze zmianą<br />

stanu tylko dla procesów w B (brak komunikacji z A), <strong>to</strong> σ 1 (C A ) jest nową<br />

konfiguracją w A, aσ 2 (C B ) jest nową konfiguracją w B, po zas<strong>to</strong>sowaniu obu<br />

przebiegów. Ponieważ σ 1 ,σ 2 są rozłączne, <strong>to</strong> σ 1 (C A ) i σ 2 (C B ) też są rozłączne

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!