Aula1

Propaganda
Sistemas distribuídos
Prof. Emiliano Monteiro
Múltiplos processadores
• São arquiteturas que possuem duas ou mais
CPU interligadas e que funcionam em
conjunto na execução de tarefas
independentes ou no processamento
simultâneo de uma mesma tarefa.
Vantagens/Desvantagens
•
•
•
•
•
•
Desempenho, pode ser obtido em dois níveis:
• 1. Múltiplos processadores permitem a execução simultânea de diversas
tarefas independentes, aumentando o throughput do sistema
• 2. Múltiplos computadores permitem a execução de uma mesma tarefa por
vários processadores simultâneamente (processamento paralelo)
Escalabilidade: é a capacidade de adicionar novos processadores ao conjunto
Relação custo/benefício: Permite utilizar CPUs convencionais interligadas por
barramentos a custo inferiores de uma única CPU poderosa
Tolerância a Falhas
Disponibilidade
Balanceamento de carga
Tipos de Sistemas Operacionais
Tipos de
SO
monotarefa
Batch
(lote)
Multi processadores
multitarefa
Tempo
compartilhado
(time sharing)
Tempo real
(Real Time)
Fracamente
acoplado
Fortemente
acoplado
Tipos de sistemas computacionais
•
SISD – Single Instruction Single Data
• Sistemas que suportam uma única seqüência de instruções e apenas
uma seqüência de dados – a maioria dos computadores pessoais e
servidores esta nesta categoria
•
SIMD – Single Instruction Multiple Data
• Sistemas que tratam uma única seqüência de instruções e múltiplas
entradas de dados, trabalham com dados escalares e portanto
processam vetores seqüêncialmente (Família de computadores CRAY)
•
MISD – Multiple Instruction Single Data
• Permite Múltiplas seqüências de instruções e uma única seqüência de
dados. Não existe, até o momento nenhum computador desenvolvido
com essa arquitetura!!
•
MIMD – Multiple Instruction Multiple Data
• Tratam múltiplas seqüências de instruções e múltiplas seqüências de
dados, onde se enquadram os sistemas com múltiplos processadores e
Sistemas Distribuídos
Sistemas Fracamente Acoplados e
Fortemente Acoplados
• São uma classificação das arquiteturas MIMD
• Fortemente Acoplados:
• Os processadores compartilham uma única memória principal e
são controlados por apenas um único sistema operacional
• Fracamente Acoplados:
• Caracterizam-se por possuir dois ou mais sistemas
computacionais independentes, conectados por uma rede de
comunicação, tendo cada um seus próprios processadores,
memória, SO, etc.
Tabela comparativa
Características
1 Espaço de endereçamento
Sistemas Fortemente
Acoplados
Centralizado
2 Comunicação entre processadores Muito Rápida
3 Arquitetura de hardware
4 Sistema Operacional
5 Cópias do sistemas operacional
6 Programação paralela
7 Número de processadores
8 Escalabilidade
9 Disponibilidade
10 Administração
11 Custo de software
12 Intercomunicação
13 Segurança
Sistemas Fracamente
Acoplados
Distribuído
Lenta
Complexa
Mais simples
Homogêneo
Geralmente heterogêneo
Várias cópias, uma para cada
Existe apenas uma cópia sistema
Mais fácil
Mais difícil
Centenas
Não existe limite
Baixa
Alta
Baixa/Média
Média/Alta
Simples
Complexa
Menor
Maior
Proprietária
Padronizada
Centralizada
Distribuída
Subdivisões das arquiteturas MIMD
- Multiple Instruction Multiple Data
M
IM
D
S
istem
asF
ortem
ente
S
istem
asF
racam
ente
A
coplados
A
coplados
S
M
P
N
U
M
A
C
luster
S
O
R
S
D
Subdivisões das arquiteturas MIMD
• SMP – Symmetric Multiprocessors: possuem dois ou
mais processadores compartilhando um único espaço
de endereçamento e gerenciados por apenas um SO
• NUMA – Non-Uniform Memory Access: o tempo de
acesso a memória dependente da localização física
do processador
• Em ambos os casos anteriores (SMP/NUMA) é
implementada a simetria dos processadores, ou seja,
todos os processadores realizam as mesmas funções.
As diferenças entre ambos esta no desempenho das
operações de acesso a memória
Subdivisões das arquiteturas MIMD
• Clusters
• São formados por nós conectados por uma rede de
interconexão de alto desempenho dedicada. Cada nó da
rede é um membro do Cluster e possui seus próprios
recursos.
• Cada membro do cluster possui seu próprio espaço de
endereçamento individual e a comunicação entre os
membros se faz na maioria das implementações pelo
mecanismo de troca de mensagens
• As conexões de rede geralmente são: Gigabit Ethernet, Fiber
Channel e ATM
• A rede de conexão é restrita ao cluster
Subdivisões das arquiteturas MIMD
• SOR – Sistemas Operacionais de Rede
• Cada componente deste sistema possui seus próprios
recursos de hardware, como processadores, memória,
IO, etc
• Os nós são totalmente independentes dos demais,
sendo interconectados por uma rede comunicação de
dados formando uma rede de computadores.
• Utilizam redes locais como: Ethernet, Token Ring,
Token Bus, Wireless.
• Cada nó possui seu próprio Sistema Operacional
• Na maioria das vezes é utilizado os sistema
operacional TCP/IP na comunicação entre os hosts
Subdivisões das arquiteturas MIMD
• Sistemas Distribuídos:
• São um conjunto de sistemas autônomos, interconectados
por uma rede de comunicação e que funcionam como se
fosse um sistema fortemente acoplado.
• Cada componente do sistema possui seus próprios recursos,
como processador, memória, SO, etc.
• É um sistema fracamente acoplado pelo aspecto de
hardware porém fortemente acoplado pelo aspecto de
software. É um conceito chamado de Imagem única do
Sistema.
• Fornecem: Tolerância a Falhas e Transparência.
• Exemplo de sistema operacional distribuído: Amoeba
Sistemas Distribuídos
• São uma coleção de processadores
fracamente acoplados entre si por uma rede
de comunicação.
• Do ponto de vista de um processador
específico em um sistema distribuído, o
restante dos processadores e seus recursos
são remotos, enquanto seus próprios recursos
são locais
Conceitos
• Sistema Operacional de Rede
• Sistemas Distribuídos
• Rede x SD
Redes de computadores
Sistemas Distribuídos
a) Usuário devem realizar um login (ou
logon) com uma máquina, submeter
explicitamente suas tarefas remotas e
movimentar
explicitamente
seus
arquivos.
a) Existem diversos computadores autônomos (o
usuário não tem conhecimento destes).
b) Cabe ao sistema operacional selecionar
recursos, localizar objetos, e esconder do usuário
detalhes de implementação e funcionamento do
sistema.
Sistemas Distribuídos
• “Um SD consiste de processos concorrentes acessando
recursos distribuídos, os quais podem ser
compartilhados ou replicados, através de passagem de
mensagem em um ambiente de rede.”
• “Um SD é uma coleção de computadores autônomos,
ligados por uma rede, com software projetado para
produzir uma facilidade de computação integrada.”
(Coulouris, Dollimore, Kindberg)
Quanto a localização de recursos
• Sistemas operacionais de rede: os usuários
sabem da existência das várias máquinas da
rede, podem abrir sessões em máquinas
remotas e transferir dados de uma máquina
remota para a máquina local
• Sistemas operacionais distribuídos: os
usuários não precisam saber da existência
das máquinas. Os recursos são usados da
mesma maneira que os locais
Motivos da existência de S.D.
• Compartilhamento de recursos
• Diminuição do tempo de processamento
• Se os programas forem divididos em partes, estas partes podem
ser executadas em máquinas diferentes
• Confiabilidade
• Em caso de defeito de um computador os outros continuam
trabalhando, os computadores de um SD são autônomos
• Comunicação
• Permite que usuários de diferentes computadores possam trocar
dados. Mensagens são trocadas entre computadores de maneira
similar as trocas de mensagens entre processos
Topologias
E
A
A
B
D
C
C
E
Barramento
B
D
Estrela
E
A
B
E
A
C
Mista
C
Anel
D
B
D
A
B
C
D
E
Topologias
A
A
B
B
C
E
D
Totalmente conexa
A
B
C
E
D
Árvore
F
G
C
D
E
Parcialmente conexa
Características diversas
• As seguintes características podem se apresentar juntas
ou em separado, nem sempre um SD possui todas elas!
•
•
•
•
•
•
•
•
•
•
•
Suporte ao modelo cliente servidor
Suporte a comunicação
Suporte a multiprogramação, threads, etc
Suporte a nomeação
Sincronização
Consistência e replicação
Tolerância a falhas
Segurança
Objetos distribuídos
Sistemas de arquivos distribuídos
Transparência (de acesso, de localização, etc..)
Comunicação em um SD
• Via protocolos estruturados em camadas (TCP/IP, por exemplo)
• Suporte RPC (remote procedure call)
• Invocação a objetos remotos
• Comunicação baseada em troca de mensagens
• Comunicação baseada em fluxos
Características Importantes
Nomeação
• Resolução de nomes
• DNS
• Localização de objetos
Sincronização
• Sincronização de clock
• Estado global
• Exclusão mútua
Consistência e replicação
• Sistemas centrados em dados
• Protocolos para distribuição de dados
Características Importantes
Tolerância a falhas
• Confiabilidade de:
•
•
•
•
•
Processos clientes
Processos servidores
Protocolos
Meios de comunicação
Hardware
Características Importantes
Segurança
• Canais seguros
• Controle de acesso
• Gerenciamento de segurança
• Kerberos
Aplicações distribuídas... Motivos de uso.
• Os dados usados pelas aplicações estão
espalhados pela rede
• Os dados necessários estão localizados em vários
computadores
• A computação é distribuída
• O processamento depende de várias CPUs para
resolver o problema
• Os usuários estão distribuídos
• Os usuários podem estar localizados em vários
locais
Problemas dos ambientes distribuídos
• Comunicação
• Algumas vezes lento conforme a carga aumenta
• Falhas
• Objetos podem falhar separadamente ou a rede pode ficar
particionada
• Segurança
• Apresenta maiores desafios que os ambientes
centralizados (Tipo C/S em LAN ou Terminais Burros)
Objetos Distribuídos
• São sistemas nos quais todas as suas
entidades (partes) são modeladas como
Objetos.
Características Importantes
Sistemas Distribuídos
•
•
•
•
Compartilhamento de recursos
• Impressoras, HD - Diminuir os custos e por questões de segurança.
• Servidor de Arquivos
• Recursos encapsulados em um computador da rede.
Sistemas Abertos
• Não proprietários, interoperáveis com arquiteturas distintas
Concorrência
• Diversos processos coexistem em um único computador e são
executados concorrentemente
Escalabilidade
• É a capacidade que um SD apresenta de poder adaptar-se
facilmente a uma carga crescente de recursos e serviços.
Características Importantes
Sistemas Distribuídos
• Tolerância à Falhas
• Continuação de funcionamento do sistema, apesar da
ocorrência de uma falha em um dos seus componentes
• Redundância de Hardware
• Recuperação por Software
• Disponibilidade do Sistema
• Medida da proporção de tempo que o sistema está
disponível para os usuários.
• Confiabilidade
• Probabilidade que o sistema continuará a funcionar dentro
de uma escala de tempo.
Características Importantes
Sistemas Distribuídos
• Transparência
• Parece não existir, quando na verdade existe.
• Tipos de Transparência
• Transparência de Acesso
• Ocultação do uso de comunicação para acessar
recursos remotos. Ex. Clicar um ícone
• Transparência de Localização
• Usuários não têm que saber a localização dos
recursos remotos
Características Importantes
Sistemas Distribuídos
• Tipos de Transparência
• Transparência de Concorrência
• Usuário não está ciente da existência de acesso simultâneo à
recursos remotos.
• Transparência de Replicação
• Múltiplas instâncias de recursos são usados, mas SD oculta
qualquer diferença entre recursos replicados, ou não replicados.
• Transparência de Falha
• SD oculta os efeitos de falhas parciais.
• Transparência de performance
• SD é reconfigurado para melhorar a performance na medida que a
carga varia sem o usuário perceber a configuração.
Características Importantes
Sistemas Distribuídos
• Tipos de Transparência
• Transparência de Migração
• Potencial para realocar recursos
dinamicamente sem que os usuários
estejam cientes do movimento de recursos
• Transparência de escala
• Oculta a expansão sem mudar a estrutura
do sistema.
Arquitetura Cliente/Servidor
• Modelo conceitual, adotado para disciplinar e orientar o projeto e
a implementação de aplicações que estão funcionalmente
separadas em processos distintos.
• Uma aplicação distribuída é conceitualmente modelada para
ser composta por dois processos cooperantes: o processocliente e o processo servidor.
• Componentes da computação distribuída:
•
•
•
•
•
•
Controle da Concorrência
Rede de Computadores
Chamadas Remotas a Procedimentos
Serviços de Nomes e Diretórios Distribuídos
Sistemas de Arquivos Distribuídos
SGBDs Cliente/Servidor
Referências Bibliográficas
• Sistemas Distribuídos – Conceitos e Projetos. Coulouris, George. [et al]. 5ª.
Ed. Porto Alegre. Bookman, 2013.
• Sistemas Distribuídos – Princípios e paradigmas. 2ª ed. Tanenbaum, Andrew
S. Steen, Maarten Van. São Paulo. Pearson Prentice Hall, 2007.
• Tecnologia de sistemas distribuídos. Marques, José Alves. Guedes, Paulo.
Download