Sistemas distribuídos
Como nos sistemas distribuídos o processamento ocorre de forma concorrente em diferentes unidades de processamento, é necessário o uso de mecanismos de sincronização que possibilitem a comunicação entre os diferentes sistemas. Problemas de sincronização em um sistema de uma única CPU são geralmente resolvidos usando métodos como semáforos e monitores. Já em sistemas distribuídos onde não haja sincronização entre as diversas máquinas que o integram, podem surgir muitos problemas. Processos podem ser executados em ordem inadequada, causando resultados inadequados, erros e travamentos. Em sistemas distribuídos os problemas de sincronização exigem soluções específicas. Sistemas distribuídos têm, em geral, as seguintes propriedades:
1. As informações relevantes estão dispersas em várias máquinas. 2. Processos tomam decisões baseados apenas em informação local. 3. Um único ponto de falha no sistema pode derrubá-lo por inteiro. 4. Não existem relógios ou outras fontes precisas de tempo global.
Normalmente, em sistemas distribuídos não é possível ou desejável obter as informações necessárias à sincronização de forma centralizada E mesmo que isso seja feito, diversos problemas ainda podem persistir. Para solucionar o problema de sincronismo nos sistemas distribuídos são usadas duas abordagens:
Relógios Lógicos – A sincronização é feita de modo que os eventos não ocorram em um tempo realmente determinado, mas onde a ordem em que os eventos ocorrem sejam as desejadas.
Relógios Físicos – A sincronização é feita através de um tempo absoluto que deve ser comum a todo o sistema.
Relógios Lógicos
Na utilização de relógios lógicos para a sincronização de sistemas distribuídos somente os processos que interagem entre si precisam estar sincronizados. Nenhum dos processos obedece a um tempo absoluto, eles só precisam estar sincronizados quanto a ordem de acontecimento dos eventos. Todo o