Introdução aos Sistemas Distribuídos

Trabalho de Sistemas Distribuídos
Aluno: Rafael Silva de Oliveira - 13733
Email: rsiloliveira@gmail.com
Professor: Claudio Kirner
Email: ckirner@gmail.com


Definição

A palavra "distribuídos" em termos tais como "sistema distribuído", "programação distribuída", e "algoritmo distribuído" originalmente se referia a redes de computadores onde os computadores individuais foram distribuídos fisicamente dentro de uma certa área geográfica. Os termos são hoje utilizados em um sentido muito mais amplo, mesmo referindo-se a processos autônomos que são executados no mesmo computador físico e interagem uns com os outros por passagem de mensagens.

A figura abaixo demonstra um exemplo de visão geral de um sistema distribuído e seus nós



Embora não exista uma única definição de um sistema distribuído, as seguintes propriedades que o definem são comumente utilizados:
Existem várias entidades autônomas computacionais, cada qual tem sua própria memória local.
As entidades se comunicam entre si por passagem de mensagens.
As entidades computacionais são chamados de computadores ou nós.
Um sistema distribuído pode ter um objetivo comum, como solucionar um grande problema computacional.

Em alternativa, cada computador pode ter o seu próprio usuário com necessidades individuais, e da finalidade do sistema distribuído é coordenar o uso de recursos compartilhados ou fornecer serviços de comunicação para os usuários.
Outras propriedades típicas de sistemas distribuídos incluem o seguinte:
O sistema tem de tolerar falhas em computadores individuais.

A estrutura do sistema (topologia da rede, a latência da rede, o número de computadores) não é conhecido antecipadamente, o sistema pode ser constituído por diferentes tipos de computadores e ligações de rede, e o sistema pode alterar durante a execução de um programa distribuído.
Cada computador tem apenas um ponto de vista do sistema, limitado e incompleto. Cada computador pode conhecer apenas uma parte da entrada.

Aplicações


Há duas razões principais para o uso de sistemas distribuídos e computação distribuída. Primeiro, a natureza da aplicação pode requerer o uso de uma rede de comunicação que conecta vários computadores. Por exemplo, os dados são produzidos em um local físico, e são necessários em outro local.

Em segundo lugar, há muitos casos em que a utilização de um único computador seria possível, em princípio, mas o uso de um sistema distribuído é benéfico por razões práticas. Por exemplo, pode ser mais eficiente em termos de custo para se obter o nível desejado de desempenho usar um conjunto de vários computadores de performance baixa, em comparação com um computador de alta performance. Um sistema distribuído pode ser mais confiável do que um sistema não-distribuído, como não há nenhum ponto único de falha. Além disso, um sistema distribuído pode ser mais fácil de expansão e gestão do que um sistema de um processador monolítico.

A figura abaixo ilustra a utilização de um Sistema Distribuído para administração de escritórios de uma empresa



Outros xemplos de sistemas distribuídos e aplicações de computação distribuída incluem o seguinte:

Redes de telecomunicações:

Redes de telefonia e redes celulares.
As redes de computadores como a Internet.
Sem fio redes de sensores.
Algoritmos de roteamento.

Aplicações de rede:

World Wide Web e peer-to-peer.
Massively multiplayer online games e comunidades de realidade virtual.
Distribuído bancos de dados e sistemas de gerenciamento de banco de dados distribuídos.
Sistemas de arquivos de rede.
Sistemas de informação distribuídos processamento, tais como sistemas bancários e sistemas de reservas das companhias aéreas.

Em tempo real, controle de processos:

Controle de sistemas de aeronaves.
Industriais sistemas de controle.

Computação paralela:

Computação científica, incluindo computação em cluster e grid computing e vários projetos de computação voluntária.
Renderização distribuídaem computação gráfica.

Abaixo, uma vídeo-aula sobre Sistemas Distribuídos