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,