Sistemas sitribuidos

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1088 palavras )
  • Download(s) : 0
  • Publicado : 11 de junho de 2011
Ler documento completo
Amostra do texto
PESQUISAS
SISTEMAS DISTRIBUIDOS

Karina Rocha Oliveira 10104089
Vania Gomes Reais 10104085
CCO NA7

Osasco
2011

Sincronização em SD
A sincronização entre processos é tão importante quanto a comunicação entre processos em sistemas distribuídos. Por exemplo, como as regiões críticas são implementadas em um sistema distribuído, e como estes recursos são alocados?
Em sistemas de umaúnica CPU, regiões críticas, exclusão mútua, e outros problemas de sincronização são geralmente resolvidos usando métodos como semáforos e monitores. Estes métodos não são recomendados para serem usados em sistemas distribuídos porque eles invariavelmente contam (implicitamente) com a existência de uma memória compartilhada. Por exemplo, dois processos que estão interagindo usando um semáforo, ambosdevem ser capazes de acessar o semáforo. Se eles estão rodando na mesma máquina, eles podem compartilhar o semáforo tendo−o armazenado no Kernel, e executar chamadas de sistema (system calls) para acessá−lo. Se, entretanto, eles estiverem rodando em diferentes máquinas, este método não mais funcionará, e outras técnicas devem ser utilizadas. Mesmo parecendo problemas simples, como determinar se oevento A aconteceu antes ou depois do evento B, requer bastante cuidado.
Inicialmente será focalizado o tempo e a forma de medi−lo, devido ao fato de que o tempo é a principal parte de alguns métodos de sincronização. Em seguida será visto a exclusão mútua e os algoritmos de eleições. Depois será estudado uma técnica de sincronização de alto−nível chamada de transação atômica. Finalmente, seráestudado o deadlock.

Sincronismo lógico
Em alguns sistemas (tempo-real por exemplo) um clock real é importante. Nestes sistemas necessitamos de clocks físicos externos. Por motivos de eficiência e de redundância, é desejável que se tenha mais de um clock externo, o que causa os seguintes problemas: como sincronizá-los com o clock de tempo real e como sincronizar estes clocks entre si.Algoritmos de Cristian
Para sistemas com uma máquina com receptor de UTC (Tempo Universal Coordenado – base de todos os sistemas de medida de tempo civil adotados atualmente). A máquina que tem o receptor UTC é chamada Servidor de Tempo.
Periodicamente, cada máquina envia uma mensagem para o Servidor de Tempo perguntando pelo tempo corrente (atual). Esta máquina responde o mais rápido possível com umamensagem contendo o tempo corrente Cutc.

Algoritmo de Cristian

T0 e T1 são medidos com o mesmo clock

Tempo de Propagação da Mensagem (TP)
TP = (T1 - T0)/2
No entanto, a estimativa pode ser melhorada considerando o tempo de manipulação da interrupção
I:
TP = (T1 - T0 - I)/2

Sincronismo físico
Algoritmo de Lamport
Lamport define a relação acontecimento-anterioridade (a→b) queindica que todos os processos concordam que o evento a acontece primeiro e depois o b.

- Se a e b são eventos no mesmo processo, e a acontece antes de b então a→b é verdade
- Se a é o evento de uma mensagem sendo enviada por um processo e b é evento de outro processo recebendo aquela mensagem então a→b é verdade. Uma mensagem não pode ser recebida antes de ser enviada, ou no mesmo tempo em que foienviada.
A relação “acontece-antes” é transitiva, logo:
Se a→b e b→c, então a→c

Se dois eventos acontecem em processos diferentes que não se comunicam, esses eventos são ditos concorrentes.
Mensagens são enviadas juntamente um clock da máquina do processo emissor.
Máquina que recebe mensagem ajusta seu próprio clock caso seja necessário, isto é, quando seu clock tem um valor igual ouinferior ao da mensagem.
Pode-se usar número do processo para se resolver empates e implementar um clock global, isto é, cada evento tem um tempo associado e os tempos associados de todos os eventos são diferentes.

Precisamos de um modo de medir o tempo de tal forma que para todo evento a, nós podemos
assumir que ele aconteceu em um tempo C(a) no qual todo processo concorda. Se a→b, então
C(a)...
tracking img