O documento discute sistemas distribuídos e paralelos. Ele explica que o poder de processamento das máquinas vem crescendo rapidamente e que as máquinas estão cada vez mais interligadas. Sistemas e aplicações estão se tornando mais complexos com maior carga, usuários e demandas por desempenho e confiabilidade. A computação distribuída e paralela permitem executar partes de uma aplicação simultaneamente para atender essas demandas.
2. 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 ...
Prof. Adriano Teixeira de Souza
4. Consiste em executar simultaneamente
várias partes de uma mesma aplicação
Tornou-se possível a partir do
desenvolvimento de sistemas operacionais
multi-tarefa, multi-thread e paralelos
Aplicações são executadas paralelamente:
◦ Em um mesmo processador
◦ Em uma máquina multiprocessada
◦ Em um grupo de máquinas interligadas que se
◦ comporta como uma só máquina
Prof. Adriano Teixeira de Souza
5. 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
Prof. Adriano Teixeira de Souza
7. A Computação Distribuída fornece toda a
infra-estrutura necessária para a construção
e operação efetiva de aplicações distribuídas
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
Prof. Adriano Teixeira de Souza
8. 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 imprevisíveis
devido ao uso da rede e a falhas
Prof. Adriano Teixeira de Souza
9. Influência do Tempo
◦ Sistemas distribuídos são bastante 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
Prof. Adriano Teixeira de Souza
10. 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
Prof. Adriano Teixeira de Souza
11. 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
Prof. Adriano Teixeira de Souza
13. 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
...
Prof. Adriano Teixeira de Souza
14. 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
Prof. Adriano Teixeira de Souza
15. 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
Prof. Adriano Teixeira de Souza
16. 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
Prof. Adriano Teixeira de Souza
17. Aplicações que são funcionalmente separadas
em processos distintos rodando em
computadores diferentes sobre uma rede
Os processos interoperam para resolver um
problema computacional comum
Consistem de interface de usuário, dados do
usuário e os processos em diferentes
computadores
Prof. Adriano Teixeira de Souza
18. Máquina 1 Máquina
Aplicação Aplicação
N
Apliacação Serviço Serviço Aplicação
Middleware para Programação Distribuída
Sistema Operacional Sistema Operacional
Hardware Hardware
Prof. Adriano Teixeira de Souza
19. 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
Prof. Adriano Teixeira de Souza
20. 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
Prof. Adriano Teixeira de Souza
21. 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
Prof. Adriano Teixeira de Souza
22. 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
Prof. Adriano Teixeira de Souza
23. Client-Server Model
◦ Modelo tradicional e dominante a partir dos
anos 80
◦ Enfoque na LAN
Web-Based Distributed Computing Model
◦ Enfoque na Internet
◦ Processos
◦ Threads
◦ Objetos Distribuídos
◦ Agentes
Prof. Adriano Teixeira de Souza
24. 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
Prof. Adriano Teixeira de Souza
25. 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
Prof. Adriano Teixeira de Souza
26. Uma Placa-Mãe Multiprocessador permite que
cada processador execute um processo
Prof. Adriano Teixeira de Souza
28. 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 de alta
performance seriam capazes de fazer.
Prof. Adriano Teixeira de Souza
29. Um Cluster é uma solução de baixo custo
para processamento de alto desempenho
Prof. Adriano Teixeira de Souza