Você está na página 1de 6

Trabalho 2 - Sistemas Distribuídos em Tempo Real

Nome : Rander Felipe Miranda de Paula

Questões sobre SINCRONIZAÇÃO :

1-
R : O maior problema que se pode identificar é a defasagem entre os relógios, gerando
diferença entre os valores dos horários, causando diferença entre a frequência de um
relógio perfeito e um relógio "comum". Pode-se citar como exemplo um programa onde a
fonte e executável estão em máquinas diferentes.

2 - A)
R : O modelo de Berkley está relacionado a Servidores de tempo ativo, onde basta somente
entrar em acordo em relação ao horário do servidor, mesmo que não tenha relação com a
hora real. Já o modelo Cristian, trata-se de servidor de tempo passivo, onde há necessidade
de um servidor de tempo, com hora corrente exata.

B)
R : Como há uma organização em uma estrutura hierárquica, não há dependências cíclicas,
o que ocasiona que um computador somente atualize a sua hora, caso esteja em um de
nível inferior ao daquele que está trocando informações no momento.

3-
R : a)B - b)L - c)T - d)C - e)C - f)B

4-
R : Como existe tempo gasto entre a troca de mensagens, possuindo o valor das leituras
anteriores pode-se calcular o valor exato que se deve alterar e sincronizar os relógios. Um
exemplo de aplicação de Berkeley pode demonstrar isso.

5-
R : Hora P1 (master) = 1:10:15.005
Hora P2 : 1:10:15:026+RTT/2 = 1:10:15.026 + .003 = 1:10:15.029
Hora P3 : 1:10:14:995+RTT/2 = 1:10:14:995 + .004 = 1:10:14.999

Média entre P1 - P2 - P3 = 1:10:15:011

Ajustando em P2 = -.018
Ajustando em P3 = +.012

6-
a)
R : O mais apropriado para a escolha do cliente é o item 20ms = 0,025, pois é o que possui
menor RTT, entre os registros existentes.
b)
R : O clock escolhido é :
10:54:28.342 + 0.02/2 = 10:54:28.352

Pois é o horário fornecido pelo servidor mais metade do RTT, desprezando o tempo de
processamento para a resposta pelo servidor.

c)
R : A precisão é igual a 10 ms, pois, a precisão do clock do cliente depende diretamente do
tempo gasto com o processamento do pedido e, já que ele é desconhecido nesse caso,
deve-se considerar metade do RTT, com desprezo ao tempo de deslocamento.

d)
R : Com o tempo mínimo de transferência de mensagens na rede de 8ms, pode-se
considerar que o tempo restante para a metade do RTT consiste na precisão, refletindo
então em uma precisão de apenas 2 ms com o mesmo clock.

7)
R:
d = (T1 - T0 - I)/2
d = (3050 - 3004 - 8)/2
d = 19

T = R + d => 3035 + 19
T = 3054

8)
R:
Pares de eventos concorrentes :
(a,d); (b,d); (c,e); (c,f); (c,d).

9)
R:
m1,1 ; m2,12 ; m3,15 .

10)
R : Para os processos dentro de determinada aplicação, a hora exata não é um princípio
básico, mas sim a ordem em que os eventos ocorrem.

11)
R : A função do algoritmo de Lamport é sincronizar relógios lógicos, ou seja, somente é
importante para aplicação definir a ordem que ocorrem os eventos. É baseado na relação
"acontece antes" (a -> b).
Cada processo pi possui um estado consistente si :
Evento : ocorrência de uma ação associada ao processo;
Eventos dentro de um processo pi podem ser totalmente ordenados pela relação "
acontece antes";
Processos se comunicam através de mensagens;
Ações de um processo : enviar e receber mensagens, mudar o próprio status;
Um sistema distribuído pode ser visto como uma coleção P de N processos pi,i=1,2,...N

Relógios de Lamport não capturam causalidade.

12)
R : Relógios vetoriais são uma melhora nos relógios de relação "acontece antes" ou são
concorrentes através da comparação dos vetores com marcas de tempo.
Relógios vetoriais são implementados para evitar a limitação dos relógios de Lamport :
C(a)<C(b) não implica a "acontece antes" de b
Vetores com marcas de tempo são usados para os eventos locais em cada processo

13)
R : Primeira coluna, 6 (mensagem B)-> 8 na segunda coluna

14)
R : Trata-se de um algoritmo de eleição de líder em um sistema distribuído. Sempre que um
processo P verifica que o coordenador não está respondendo a requisições, inicia uma nova
eleição.

1 - P envia mensagem de eleição para todos os processos com ID's maiores;


2 - Caso nenhum responder, P torna-se coordenador;
3 - Caso haja resposta de um processo com ID maior, há desistência por parte de P.

Quando processo recebe msg de eleição de membros com ID mais baixa


Envia OK para o remetente para indicar que está vivo e assume processo.
Eventualmente todos os processos desistem menos um: novo coordenador
Se processo que estava indisponível voltar, inicia eleição.

15)
R:
Uso de um anel, mas sem token
• Processos fisicamente ou logicamente ordenados
- Conhecem sucessor
• Processo verifica que coordenador não funciona
-Envia msg de eleição para sucessor
- Msg contém seu ID
- Se sucessor indisponível, manda para próximo, e assim
sucessivamente
- A cada passo, processo que recebe msg adiciona seu ID e repassa
para sucessor
- Eventualmente msg volta para quem começou eleição
- Reconhece porque msg de eleição contém seu ID
- Neste ponto muda msg para coordenador e a circula novamente para
informar a todos
1. Novo coordenador: processo com maior ID
2. Nova configuração do anel → Quando msg coordenador volta para processo
que iniciou eleição, é removida e todos voltam a trabalhar

16)
R : Pode-se usar algoritmos distribuídos para tratar a exclusão mútua em um sistema
distribuído. Exemplos de algoritmos distribuídos para exclusão mútua são o de Ricart e
Agrawala e o Anel Token.

17)
R : Processo necessita acessar uma região ”crítica”:
- Envia uma mensagem a todos os outros processos: nome do recurso, número
do processo, tempo corrente
- Todas as mensagens devem ser confirmadas.
Processo recebe uma requisição:
– Ação depende do estado no qual se encontra o processo ao receber a
requisição
• Se o processo não está acessando o recurso e nem pretende fazê-lo, envia
uma OK
• Se estiver na região crítica, requisição é enviada a uma fila
• Se não está acessando o recurso, mas pretende fazê-lo, comparação entre
os tempos de geração dos pedidos. O menor ganha o acesso.

18)
R:
O algoritmo funcionará normalmente.
* Cada um dos processos com maiores números irá receber
duas mensagens de ELEIÇÃO.
* A segunda mensagem é ignorada e o processo de eleição
continua

Questões sobre TRANSAÇÕES E CONCORRÊNCIA

1) R :
b. [ ] somente II;

2) R :
a. [ ] Falso

3) R :
d. [ ] atualização perdida.

4) R :
d. [ ] O padrão SQL define quatro níveis de isolamento de transações, visando ao controle
de concorrência, e apenas um deles permite a leitura suja (dirty read).
5) R :
d. [ ] SERIALIZABLE

6) R :
e. [ ] pode ler o valor de K, mas não alterar seu valor.

7) R :
a. [ ] Certo

8) R :
a. [ ] compartilhados permitem somente a leitura de um dado, desde que esse dado não
esteja sobre outro bloqueio compartilhado

9) R :
e. [ ] protocolo de bloqueio em duas fases (two-phase locking)

10) R :
d) [ ] atomicidade

11) R :
b. [ ] uma forma de serialização de transações concorrentes que garante que não ocorre
Bloqueio Perpétuo (Dead- lock) entre essas transações, já que todos os bloqueios são
liberados após o uso.

12) R :
d. [ ] atualização perdida, apenas.

13) R :

T
x = read(j)
y = read (i)
y = write(j, 44)
Y = write(i, 33)

U
x = read(k)
x = write(i, 55)
y = read(j)
y = write(k, 66)

Leitura de T
x = leitura de aj
y = leitura de ai
y = escreve 44 em aj
y = escreve 33 em ai
Leitura de U
x = leitura de ak
x = escreve 55 em ai
Antes era 33 agora ai =55
y = leitura de aj, aj = 44
y = escreve 66 em ak
ak = 66
No fim, temos:
aj = 44
ak = 66
ai = 55.

T | U
x = read(j) | x = read(k)
y = read(i) |
y = write(j,44) |
Y = write(i,33) |
|x = write(i,55)
|y = read(j)
|y = write(k,66).

Você também pode gostar