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

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

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

24 Anais<br />

acesso a C e nem a C d . Eles são introduzidos apenas por uma questão <strong>de</strong> conveniência da<br />

apresentação da prova.<br />

Para expressar o valor <strong>de</strong> certas variáveis <strong>de</strong> nosso algoritmo em relação a C,<br />

<strong>de</strong>finimos algumas funções. Para um dado t ∈ C e um dado site S, cada uma <strong>de</strong>stas<br />

funções retorna o valor da respectiva variável.<br />

Denotamos P(Π) o conjunto <strong>de</strong> potência <strong>de</strong> π. As funções que respectivamente<br />

retornam o valor das variáveis token, count e D para o nó S a t são:<br />

Token(S, t) : π × C → {NONE, BACKUP, REAL}<br />

Count(S, t) : π × C → N<br />

D(S, t) : π × C → P(Π)<br />

〈P end REAL 〉 e 〈P end BACKUP 〉 <strong>de</strong>notam uma mensagem 〈TOKEN,S i ,count〉 pen<strong>de</strong>nte<br />

que é en<strong>de</strong>reçada respectivamente a S i e um dos k sucessores <strong>de</strong> S i .<br />

Denotamos S d o nó que chama a função UseBackup.<br />

Para auxiliar a prova <strong>de</strong> nosso algoritmo, introduzimos as seguintes proprieda<strong>de</strong>s:<br />

• P SafetyCond(t): Existe no máximo um processo correto que <strong>de</strong>tém o REAL<br />

token ou que é o receptor <strong>de</strong> 〈P end REAL 〉.<br />

Se P SafetyCond(t) é satisfeita, nós <strong>de</strong>notamos:<br />

- Hol<strong>de</strong>r(t): o nó que satisfaz P SafetyCond(t).<br />

- HCount(t): equivale a Count(Hol<strong>de</strong>r(t), t), se T oken(Hol<strong>de</strong>r(t), t) =<br />

REAL ou ao valor <strong>de</strong> count <strong>de</strong> 〈P end REAL 〉, caso contrário.<br />

- T (t): o conjunto token a t, ou seja, o conjunto or<strong>de</strong>nado <strong>de</strong> k + 1 nós<br />

composto <strong>de</strong> Hol<strong>de</strong>r(t) e seus k sucessores.<br />

• P Hol<strong>de</strong>rCount(t): O <strong>de</strong>tentor do token possui o maior valor <strong>de</strong> count entre<br />

todos os nós não falhos e mensagens 〈TOKEN〉 pen<strong>de</strong>ntes.<br />

• P Hol<strong>de</strong>rMonitored(t): Se um nó não falho monitora outros nós, então<br />

Hol<strong>de</strong>r(t) está presente entre estes nós.<br />

• P NestedMonitoring(t): Se dois nós não falhos monitoram outros nós, ao<br />

menos um <strong>de</strong>les monitora o outro.<br />

Definimos que S i ≺ t S j , se S i prece<strong>de</strong> S j em T (t).<br />

Assumimos que o algoritmo que utiliza as funções oferecidas por nosso algoritmo<br />

as chamam corretamente e que o algoritmo original (sem as chamadas às referidas<br />

funções) satisfazem as proprieda<strong>de</strong>s <strong>de</strong> segurança e vivacida<strong>de</strong>.<br />

Hip 1 (Hipótese <strong>de</strong> Uso Correto) Um nó po<strong>de</strong> chamar a função SafeSendToken à<br />

condição que ele possua o REAL token. Depois <strong>de</strong> chamá-la ele não <strong>de</strong>tém mais o token.<br />

Lema 1 A t = 0, todas as proprieda<strong>de</strong>s acima <strong>de</strong>scritas são satisfeitas.<br />

Prova. A função Initialisation é chamada a t = 0. P SafetyCond(0): S 0 é o único <strong>de</strong>tentor<br />

do token e não há nenhuma mensagem 〈TOKEN〉 pen<strong>de</strong>nte; P Hol<strong>de</strong>rCount(0):<br />

o valor da variável count <strong>de</strong> todos os nós é igual a 0; P Hol<strong>de</strong>rMonitored(0) e<br />

P NestedMonitoring(0): os nós com um conjunto <strong>de</strong> <strong>de</strong>tecção não vazio, S 0 . . . S k ,<br />

são sucessivos no anel e monitoram nós entre S 0 , o <strong>de</strong>tentor do token, e ele próprio.<br />

Lema 2 ∀t ∈ C, P SafetyCond(t) ∧ P Hol<strong>de</strong>rCount(t) =⇒ P Hol<strong>de</strong>rCount(t + 1).

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

Saved successfully!

Ooh no, something went wrong!