Cada nodo sem-falha que testa outro nodo sem-falha obtém informação sobre todos os demais nodos, exceto aqueles que testou. (é o próprio Adative-DSD)
---------RELATÓRIO--------------
A tarefa 4 completa o algoritmo Adaptive-DSD, nesta tarefa quando o nodo testa outro nodo sem falha, ele coleta as informações do vetor deste nodo não falho, exceto a informação do próprio nodo. Com o seguinte código em C: " if (prox != token){ ", foi criada uma condição no caso de existir apenas um nodo sem falha no anel, executa somente se o proximo nao for o próprio nodo.
Abaixo a parte principal do programa:
int prox = token;
do {
prox = (prox+1)%n; //logica para anel
if (prox != token){ // executa somente se o proximo nao for o próprio nodo
if (status (nodo[prox].id)==0){
nodo[token].state[prox] = 0;
k = prox;
do {
k = (k+1)%n;
if (k != token) // o nodo sabe seu proprio estado, entao somente executa se for diferente
nodo[token].state[k] = nodo[prox].state[k]; //copia os dados do vetor do proximo nodo nao falho
} while (k != token);
}
.
.
.
printf("o nodo %d vai testar o nodo %d no tempo %5.1f ", token, prox, time());
.
.
.
.
}
} while (status (nodo[prox].id) !=0);
Tarefa4 em txt: Tarefa4
LOG: log de saída do programa com 5 nodos--> log5.out
LOG: log de saída do programa com 10 nodos--> log10.out
LOG: log de saída do programa com 50 nodos--> log50.out
LOG: log de saída do programa com 500 nodos--> log500.out
LOG: log de saída do programa com 5000 nodos--> log5000.out