INTRODUÇÃO A COMPUTAÇÃO DISTRIBUÍDA

Dr. Almir Rogério Camolesi camolesi@femanet.com.br

Motivacionais
• Poder de processamento das máquinas vem crescendo

rapidamente
• Grande parte das máquinas interligada por redes de

computadores
• Sistemas e aplicações estão cada vez mais complexos • Funcionalidade, Interfaceamento gráfico, Comunicação,

... • Maior carga, Maior número de usuários, ... • Exigências de otimizar tempo de resposta, incrementar a confiabilidade ...

Sistemas Distribuídos x Paralelos

Sistemas de Processamento Paralelo
• Consiste em executar simultaneamente várias partes de

uma mesma aplicação
• Tornou-se

sistemas paralelos

possível a partir do desenvolvimento de operacionais multi-tarefa, multi-thread e

• Aplicações são executadas paralelamente:
• Em um mesmo processador • Em uma máquina multiprocessada

• Em

um grupo de máquinas interligadas que se comportam como uma só máquina

Sistemas Distribuídos
• O que é? • Consiste em executar aplicações cooperantes

em máquinas diferentes
• Tornou-se possível a partir da popularização

das redes de computadores

Sistemas Distribuídos

Sistemas Distribuídos
•A

Computação Distribuída fornece toda infraestrutura necessária para a construção operação efetiva de aplicações distribuídas

a e

• Engloba todos os produtos necessários para permitir

que essas aplicações sejam construídas e possam ser executadas em um ambiente de rede heterogêneo, ou em um ambiente centralizado

Sistemas Distribuídos x Paralelos
• Acoplamento

• Sistemas

paralelos são fortemente acoplados: compartilham hardware ou se comunicam através de um barramento de alta velocidade • Sistemas distribuídos são fracamente acoplados
• Previsibilidade

• O comportamento de sistemas paralelos é mais

previsível • Sistemas distribuídos são mais devido ao uso da rede e a falhas

imprevisíveis

Sistemas Distribuídos x Paralelos
• Influência do Tempo
• Sistemas distribuídos são influenciados pelo tempo de

comunicação pela rede • Não há uma referência de tempo global geral • Em sistemas paralelos o tempo de troca de mensagens pode ser desconsiderado
• Controle
• Em sistemas paralelos se tem o controle de todos os

recursos computacionais • Os sistemas distribuídos tendem a empregar também recursos de terceiros

Sistemas Distribuídos - Necessidades
• Um SD deve prover:
• sincronização de processos

• gerenciamento da comunicação Interprocessos
• tratamento de deadlocks • tratamento de outras situações não encontradas em

sistemas centralizados

Sistemas Distribuídos - Vantagens
• Usam melhor o poder de processamento

• Apresentam um melhor desempenho
• Permitem compartilhar dados e recursos • Podem apresentar maior confiabilidade

• Permitem reutilizar serviços já disponíveis
• Atendem um maior número de usuários • Balanceamento de carga • Escalabilidade

Sistemas Distribuídos - Dificuldades

Sistemas Distribuídos - Dificuldades
• Desenvolver, gerenciar e manter o sistema.

• Controlar o acesso concorrente a dados e a recursos

compartilhados. • Evitar que falhas de máquinas ou da rede comprometam o funcionamento do sistema. • Garantir a segurança do sistema e o sigilo dos dados trocados entre máquinas • Lidar com a heterogeneidade do ambiente • ...

Sistemas Distribuídos - Tipos
• SO de Rede • Provê ambiente no qual os usuários estão cientes da

multiplicidade das máquinas, acessando-as remotamente • Login remoto • SSH • Transferência remota de arquivos • FTP • Obriga que usuário mude de paradigma • Conjunto de comandos específico no FTP • Conjunto de comandos adequado do comando remoto no SSH

Sistemas Distribuídos - Tipos
SO Distribuído • Provê ambiente transparente, gerenciado pelo SO • Migração de Dados • Duas abordagens • FTP automático, com processamento local de uma cópia completa • Andrew File System • Distribuir, manipulando pequenas porções • NFS da Sun • SMB da Microsoft

Sistema Distribuído - Tipos
SO Distribuído

Migração de Computação • RPC • Troca de Mensagens
Migração de Processos • Balanceamento de Carga • Aumento na velocidade de execução -> minimizar turnaround • time • Preferência de hardware • Preferência de software • Acesso a dados

Sistemas Distribuídos – Aplicações Distribuídas
• Aplicações que são funcionalmente se parada sem

processos distintos rodando diferentes sobre uma rede
• Os

em

computadores

processos interoperam para problema computacional comum

resolver

um

• Consistem de interface de usuário, dados do usuário

e os processos em diferentes computadores

Sistemas Distribuídos - Midleware

Sistemas Distribuídos - Midleware
• Middleware é um software que permite elementos de

aplicações interoperarem através de redes
• Mesmo

com as diferenças nos protocolos de comunicação, arquiteturas de sistemas, sistemas operacionais, bases de dados e outro serviços de aplicação

Sistemas Distribuídos - Midleware
• provê um modo para obter dados de um lugar (..)

para outro lugar (..)
• deve mascarar as diferenças existentes entre SOs,

plataformas de Hardware e protocolos de rede
• deve

ocultar a complexidade do processo de transporte da rede, do desenvolvedor da aplicação

Sistemas Distribuídos - Midleware
• Fornecedores estão oferecendo serviços de sistemas

distribuídos que têm interfaces de programação padronizadas e protocolos
• tais serviços são chamados serviços de middleware,

porque se situam “no meio”, num nível acima ao SO e ao software de rede e abaixo das aplicações específicas

Sistemas Distribuídos - Estratégias
• Estratégias diferentes que permitem a comunicação entre

aplicações distribuídas
• Sockets • RPC - Remote Procedure Call
• RMI - Remote Method Invocation • CORBA - Commom Object Request Broker Architecture • Web Services

Sistemas Distribuídos - Software
• Modelo Cliente-Servidor (Client-Server Model) • Modelo tradicional e dominante a partir dos anos 80 • Enfoque na LAN • Modelo

Fundamentado em Distributed Computing Model) • Enfoque na Internet • Processos • Threads • Objetos Distribuídos • Agentes

WEB

(Web-Based

Sistemas Distribuídos - Software
• Web-based Client-Server Computing • proxy computing

• Dados e programa são mandados do cliente para o servidor

processar
• code shipping

• O cliente faz uma requisição ao servidor que envia o programa

para ser executado com dados locais do cliente • Ex: Applets rodando no browser
• remote computing

• O cliente envia os dados para serem processados no servidor
• agent-based computing

• three-tier model

Sistemas Paralelos - Plataformas
• Um SO multitarefa permite simular o paralelismo em

um único processador, alternando a execução de processos

• Um

processador com núcleo múltiplo permite paralelismo real entre processos, executando múltiplas instruções por ciclo

Sistemas Paralelos – Plataformas: placas-mãe
• Uma Placa Mãe Multiprocessador permite que cada

processador execute um processo

Sistemas Paralelos – Plataformas: placas-mãe

Sistemas Paralelos – Plataformas: Clusters
• Cluster é o nome dado a um sistema montado com

mais de um computador, cujo objetivo é fazer com que todo o processamento da aplicação seja distribuído aos computadores, mas de forma que pareça com que eles sejam um computador só.
• Com isso, é possível realizar processamentos que

até então somente computadores performance seriam capazes de fazer.

de

alta

Sistemas Paralelos – Plataforma: Cluster
• Um Cluster é uma solução de baixo custo para

processamento de alto desempenho

Sistemas Paralelos – Plataforma: Cluster

Sistemas Paralelos – Plataforma: Cluster

Sistemas Paralelos – Plataforma: Cluster

Referências
• COULOURIS, George; DOLLIMORE, Jean, KINDBERG, Tim.

“Distributed Systems: Concepts and Design”. 3 ed. Addisonesley, 2001. from concepts to implementations”. Boston: Springer, 2005.

• JIA, Weijia; ZHOU, Wanlei. “Distributed Network Systems –

• SILBERSCHATZ, Abraham; GALVIN, Peter; GAGNE, Greg.

“Sistemas Operacionais: Conceitos e Aplicações”. Rio de Janeiro: Campus, 2000.

• Souza, Adriano Teixeira de, Aula Introdução a Sistemas

Distribuídos e Paralelos, Curso Sistemas de Informação, FASUL. Disponível em: http://www.slideshare.net/adrianots/2sd-conceitossistemas-distribuidos-e-paralelos

Dúvidas

Sign up to vote on this title
UsefulNot useful