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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>XI</strong> <strong>Workshop</strong> <strong>de</strong> <strong>Testes</strong> e Tolerância a <strong>Falhas</strong> 23<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
19<br />
20<br />
21<br />
/* D: Detection set */<br />
/* F: Faulty set */<br />
Initialisation ()<br />
count ← 0<br />
F ← { }<br />
case i = 0<br />
token ← REAL<br />
D ← {S 0 }<br />
case 0 < i ≤ k<br />
token ← BACKUP<br />
D ← {S 0 , .., S i }<br />
case k < i<br />
token ← NONE<br />
D ← { }<br />
UpdateDetection(D)<br />
SafeSendToken (〈TOKEN〉)<br />
to S i+1<br />
count ← count + 1<br />
Send 〈TOKEN,S i+1 ,count 〉<br />
to {S i+1 , .., S i+k+1 }<br />
token ← NONE<br />
D ← { }<br />
UpdateDetection(D)<br />
22<br />
23<br />
24<br />
25<br />
26<br />
27<br />
28<br />
29<br />
30<br />
31<br />
32<br />
33<br />
34<br />
35<br />
36<br />
37<br />
38<br />
39<br />
40<br />
41<br />
42<br />
SafeReceiveToken (〈TOKEN,S t ,count r 〉) from S j<br />
if count < count r then<br />
count ← count r<br />
D ← {S t , .., S i }<br />
if S i = S t then<br />
token ← REAL<br />
DeliverToken(〈TOKEN〉)<br />
else if D/F = {S i } then<br />
UseBackup()<br />
else<br />
token ← BACKUP<br />
updateDetection(D)<br />
ReceiveSuspected (S j )<br />
F ← F ∪ S j<br />
if D/F = {S i } then<br />
UseBackup()<br />
UseBackup ()<br />
count ← count + ( #(D) - 1 )<br />
token ← REAL<br />
UpdateToken(〈TOKEN〉)<br />
DeliverToken(〈TOKEN〉)<br />
Figura 2. Algoritmo tolerante à perda do token