18.03.2015 Views

XI Workshop de Testes e Tolerância a Falhas (WTF) - SBRC 2010

XI Workshop de Testes e Tolerância a Falhas (WTF) - SBRC 2010

XI Workshop de Testes e Tolerância a Falhas (WTF) - SBRC 2010

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

26 Anais<br />

Prova.<br />

1. Se t + 1 /∈ C d :<br />

P SafetyCond é satisfeita em t. Nós distinguimos então os dois casos seguintes:<br />

(a) existe um nó, S i com um REAL token (T oken(S i , t) = REAL) e não<br />

há nenhuma mensagem 〈TOKEN〉 pen<strong>de</strong>nte. Hyp. 1 assegura que S i é o<br />

único nó que po<strong>de</strong> chamar a função SafeSendToken e, consequentemente,<br />

enviar uma mensagem 〈TOKEN〉 a t + 1. Como SafeSendToken garante<br />

que T oken(S i , t i + 1) = NONE (linha 19), P SafetyCond é verda<strong>de</strong>ira<br />

a t + 1.<br />

(b) não existe um nó com um REAL token mas há uma mensagem<br />

〈P end REAL 〉 pen<strong>de</strong>nte, en<strong>de</strong>reçada a S i , no sistema. Hyp. 1 garante que<br />

nenhum site po<strong>de</strong> mandar uma nova mensagem 〈TOKEN〉 a t + 1, ou seja,<br />

a mensagem em questão é a única 〈P end REAL 〉 do sistema. Consequentemente,<br />

P SafetyCond é verda<strong>de</strong>ira a t + 1: se S i receber 〈P end REAL 〉 a<br />

t + 1, ele será o novo <strong>de</strong>tentor do token; senão ele é o único receptor <strong>de</strong>sta<br />

mensagem.<br />

2. Se t + 1 ∈ C d :<br />

Como P Hol<strong>de</strong>rMonitored é verda<strong>de</strong>ira a t, Hol<strong>de</strong>r(t) pertence a D(S d , t). Distinguimos<br />

então os seguintes dois casos:<br />

• Hol<strong>de</strong>r(t) é um nó <strong>de</strong> D(S d , t) diferente <strong>de</strong> S d . Como S d regera um novo<br />

token apenas quando todos os nós que ele monitora, com exceção <strong>de</strong>le<br />

mesmo, falharem (linhas 29 e 36), não há nenhum outro nó correto com<br />

um REAL token a t + 1, ou seja, Hol<strong>de</strong>r(t) se encontra falho a t + 1.<br />

• S d é o Hol<strong>de</strong>r(t). Como S d não <strong>de</strong>tém o REAL token, existe uma<br />

〈P end REAL 〉 que lhe é en<strong>de</strong>reçada. Neste caso, P Hol<strong>de</strong>rCount(t + 1)<br />

garante que o valor <strong>de</strong> count contido nesta mensagem não po<strong>de</strong> ser maior<br />

que o valor corrente count <strong>de</strong> S d . O teste da linha 23 irá então ignorar esta<br />

mensagem.<br />

Em ambos os casos P SafetyCond(t + 1) é verda<strong>de</strong>ira.<br />

Teorema 1 Para o máximo <strong>de</strong> k falhas consecutivas, nosso algoritmo assegura a proprieda<strong>de</strong><br />

<strong>de</strong> segurança.<br />

Prova. A <strong>de</strong>monstração é consequência direta dos lemas anteriores<br />

Teorema 2 Para o máximo <strong>de</strong> k falhas consecutivas, nosso algoritmo assegura a proprieda<strong>de</strong><br />

<strong>de</strong> vivacida<strong>de</strong>.<br />

Prova. A fim <strong>de</strong> <strong>de</strong>monstrar a proprieda<strong>de</strong> <strong>de</strong> vivacida<strong>de</strong>, basta provar que (1) se o token<br />

nunca se per<strong>de</strong>r, todo site que <strong>de</strong>tém o REAL token o enviará ao seu sucessor e (2) se o<br />

token é perdido <strong>de</strong>vido à falha do <strong>de</strong>tentor do REAL token, este será regerado pour um<br />

dos k nós sucessores do <strong>de</strong>tentor que falhou.<br />

A prova <strong>de</strong> (1) é trivial pois quando S i envia k + 1 cópias da mensagem 〈TOKEN〉<br />

(linha 18) a t, ele informa nesta mensagem que o próximo <strong>de</strong>tentor do token é o nó S i+1<br />

(Hol<strong>de</strong>r(t + 1) = S i+1 ). Como os canais são confiáveis e S i possui o maior valor <strong>de</strong><br />

count a t (P SafetyCond(t) e P Hol<strong>de</strong>rCount(t)), S i+1 terá o REAL a t + 1.<br />

Para provar (2), consi<strong>de</strong>remos que S i é o último nó a possuir o token que enviou<br />

as k + 1 cópias da mensagem 〈TOKEN〉 a t e que f é o número <strong>de</strong> sucessores falhos <strong>de</strong>

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

Saved successfully!

Ooh no, something went wrong!