Sistemas Distribuídos
O sistema distribuído surgiu para resolver alguns problemas que eram encontrados em outros tipos de sistema. São eles: concorrência - em uma rede de computadores, a execução concorrente de programas é a norma. Enquanto cada um executa suas tarefas em cada computador, em determinados momentos há o compartilhamento de recursos como páginas web ou arquivos, quando necessário. A capacidade do sistema de manipular recursos compartilhados pode ser ampliada pela adição de mais recursos (por exemplo, computadores) na rede; inexistência de relógio global - quando os programas precisam cooperar, eles coordenam suas ações trocando mensagens. A coordenação frequentemente depende de uma noção compartilhada do tempo em que as ações dos programas ocorrem. Entretanto, verifica-se que existem limites para a precisão com a qual os computadores podem sincronizar seus relógios em uma rede. Não existe uma noção global única do tempo correto. Essa é uma consequência direta do fato de que a única comunicação se dá por meio do envio de mensagens em uma rede e falhas independentes - todos os sistemas de computador podem falhar e é de responsabilidade dos projetistas de sistema pensar nas consequências das possíveis falhas. Nos sistemas distribuídos, as falhas são diferentes. Falhas na rede resultam no isolamento dos computadores que estão conectados a ela, mas isso não significa que eles param de funcionar. Cada componente do sistema pode falhar independentemente, deixando os outros