Cursos / Eletrônica / Sistemas Operacionais / Aula

arrow_back Aula 13 - Sistemas Operacionais Não Convencionais

Sistemas distribuídos

Você já imaginou o benefício e o ganho que podemos ter se utilizarmos o poder de processamento de diversos computadores interligados por uma rede como se fosse um único computador? Dá para pensar como seria mais rápida a execução de uma tarefa muito complexa, não é verdade? Nesse contexto, a união de diversos computadores com o objetivo de compartilhar a execução de tarefas é conhecida como sistema distribuído.

Um sistema distribuído é definido como um conjunto de unidades de processamento independentes, que através de um esquema de gerenciamento da comunicação e da sincronização, pode processar uma aplicação distribuída em diferentes localidades, usando diversos sistemas locais com características próprias diferentes, mas que passa a impressão de que toda a aplicação é gerenciada por um sistema único. Além do processamento conjunto, sistemas distribuídos têm como objetivo o compartilhamento de recursos, sabendo que diferentes pontos do sistema possuem diferentes recursos.

A própria Internet é um exemplo de sistema distribuído, pois ela interliga diversos computadores, possibilitando trocas de recursos. Na Internet, um exemplo clássico de computação distribuída com compartilhamento de recursos é o projeto SETI@home, cujas informações você pode obter acessando o site http://setiathome.berkeley.edu. Esse projeto visa procurar em sinais de rádio interplanetários algum vestígio de vida extraterrestre através de um sistema que auxilia diversos projetos de processamento distribuído que se utilizam de computadores espalhados na Internet. Você mesmo pode ajudar esses projetos disponibilizando parte da memória e do tempo de uso do processador de seu computador instalando o programa BOINC.

O BOINC (Berkeley Open Infrastructure for Network Computing) é uma plataforma aberta para projetos de processamento distribuído (Figura 7).

Logomarca do projeto BOINC

O funcionamento do BOINC se dá da seguinte forma:

  1. Após o download e instalação do BOINC, você define em quais projetos deseja participar. Você pode definir preferências específicas para cada projeto, por exemplo, para limitar o uso de processamento, memória e espaço em disco.
  2. O BOINC conecta sua máquina aos servidores dos projetos selecionados e faz o download das "aplicações" dos projetos, que são basicamente os programas para processamento das informações daquele projeto em específico.
  3. O BOINC conecta sua máquina aos servidores dos projetos e faz o download das "tarefas", que são basicamente os dados a serem processados.
  4. Após o processamento das tarefas, o BOINC retorna os resultados para os servidores dos projetos.

Assim, sistemas distribuídos procuram compartilhar recursos, como memória, CPU e periféricos dos diversos PC’s conectados em rede para serem utilizados por diferentes tarefas, aumentando consideravelmente a capacidade de processamento e recursos na execução dos processos.

Além disso, diferentes equipamentos com sistemas embarcados precisam interagir. Podemos querer que o circuito de segurança de nossa casa inteligente informe ao servidor do departamento de polícia uma possível invasão enquanto estamos em uma viagem de férias. Veja que isso é possível, uma vez que já existem câmeras digitais que mandam as fotos automaticamente para seu e-mail quando elas são tiradas.

Curiosidade

Ladrões foram pegos graças à câmera digital equipada com cartão de memória que se conecta automaticamente à Internet. Além de enviar as fotos “originais” da proprietária, a câmera mostrou quem eram os ladrões que foram capturados. Detalhes da reportagem podem ser vistos por meio do link:

<http://g1.globo.com/Noticias/Tecnologia/0,,MUL591703-6174,00-CAMERA+DRIBLA+LADROES+E+DEVOLVE+FOTOS+DIGITAIS+A+VITIMA+DE+FURTO.html>

De acordo com a forma de interação entre as diferentes unidades de sistemas distribuídos, podemos classificá-los como:

  • Cliente x servidor: um computador cliente manda um pedido para o computador servidor e este retorna. Como exemplos, temos os provedores de Internet que disponibilizam acesso para nossos computadores.
  • Peer-to-peer (P2P): um computador funciona como cliente e também como servidor. Programas de distribuição de arquivos pela Internet, como o BitTorrent, funcionam baseados nesse modelo.

Bittorrent é um sistema de download de arquivos P2P. A idéia básica é que quando um usuário procura por um arquivo, ele baixa "pedaços" do arquivo de outros usuários até que o arquivo fique completo. Um importante objetivo do projeto foi garantir colaboração entre diferentes usuários. Acesse o site <http://www.bittorrent.com/> e procure mais informações sobre essa ferramenta.

Versão 5.3 - Todos os Direitos reservados