sistemas distribuídos carlos a. g. ferraz di/ufpe aula 03

25
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Upload: internet

Post on 19-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Sistemas Distribuídos

Carlos A. G. Ferraz

DI/UFPE

Aula 03

Page 2: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Tópicos Características Tendências Suporte à Programação

Distribuída: Introdução Conceitos

Page 3: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Caracterização de SD Características principais ->

benefícios: Compartilhamento de recursos Flexibilidade Concorrência

(cont.)

Page 4: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Características (cont.)

Escalabilidade (operação efetiva e eficiente em qualquer escala)

Robustez Tolerância a falhas Disponibilidade

Transparência

Page 5: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Tipos de Transparência

Localização: acesso sem conhecimento de localizacao

Acesso: operações idênticas para acesso local e remoto

Migração: sem afetar operação Concorrência: sem interferência

entre concorrentes

Page 6: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Tipos de Transparência (cont.)

Falha: completar tarefas apesar de falhas

Replicação: sem conhecimento das réplicas

Desempenho: reconfigura sistema variando cargas

Escala: expansão sem mudanças na estrutura do sistema

Page 7: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Tendências Multimídia distribuída

Longa distância Redes de alta velocidade Problema: “Novas” latências

Interoperabilidade de plataformas distribuídas heterogêneas Diversas aplicações

Computação móvel Agentes móveis Integração com CORBA

Page 8: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Suporte à Programação Distribuída Sistemas Abertos (OSI + ODP) Sistemas operacionais distribuídos

Abordagem “revolucionária” Microkernels

MicrokernelHardware

Sistemas abertos e Aplicações

Suportea Ling.

Emul.

S.O..... ....

Page 9: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Suporte à Programação Distribuída (cont.) Plataformas “ODP”

Abordagem “evolucionária”

Hardware

Sistema Operacional

Plataforma “ODP”

Sistemas abertos e Aplicações

Page 10: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Conceitos - Tópicos Processos e Threads Concorrência Sistemas Abertos Comunicação Sincronização Tolerância a Falhas Segurança Sistemas Distribuídos de Tempo-

Real

Page 11: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Processos e Threads Em sistemas operacionais

tradicionais, cada processo tem um único espaço de endereço e uma única linha (thread) de controle

Page 12: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Processos e Threads (cont.) É desejável ter múltiplos threads

de controle compartilhando um espaço de endereço e executando em “paralelo”, como se fossem processos separados

ConcorrênciaConcorrência é uma abstração é uma abstração importante porque o importante porque o comportamento de muitos comportamento de muitos sistemas reais pode ser sistemas reais pode ser modelado sem detalhes modelado sem detalhes desnecessáriosdesnecessários

Page 13: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Processos e Threads (cont.) Threads são também chamados

de processos peso-leve Executam sequencialmente e têm

seu próprio contador de programa e pilha de execução

Compartilham a CPU assim como processos - através de timesharing

Page 14: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Processos e Threads (cont.) Diferentes threads em um

processo não são tão independentes quanto diferentes processos - não são protegidos uns dos outros; compartilham variáveis

Page 15: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Processos e Threads (cont.) Múltiplos threads x múltiplos

processos (servidores) Um servidor pode servir a vários

clientes concorrentemente Interferência pode causar

inconsistência nos dados compartilhados

Page 16: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Processos e Threads (cont.) Pacote de threads: conjunto de

primitivas (ex. chamadas de bibliotecas) Criação estática e dinâmica de

threadssimplicidade x flexibilidade

Compartilhamento de memória/variávies: mutex

Sincronização: variável condicional - wait e wakeup

Page 17: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Processos e Threads (cont.) Criação estática e dinâmica de

processos Razões para a criação dinâmica:

Flexibilidade: um sistema pode ser projetado sem saber # de processos necessários;

Uso dinâmico de recursos: um sistema pode precisar de diferentes conjuntos de recursos em tempos diferentes;

Page 18: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Processos e Threads (cont.)

Razões para a criação dinâmica (cont.): Balanceamento de carga: se a

criação dinâmica de processos existe, processos adicionais podem ser criados para desempenhar a função sobrecarregada e alocados a processadores sub-utilizados.

Page 19: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Processos e Threads (cont.)

A criação estática (mais eficiente) é mais aplicável em sistemas embarcados (ex. aviões), onde: A configuração do sistema é fixa; A previsibilidade do desempenho

é mais importante do que flexibilidade;

Sendo a configuração fixa, balanceamento de carga não é importante.

Page 20: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Processos e Threads (cont.)

Ligação dinâmica (dynamic binding) de processosLigação estática, com

endereçamento pré-definido, é inflexível e gera problema se um processo (servidor) migra ou é replicado, por exemplo - requer recompilação.

Page 21: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Concorrência Região Crítica (RC) Exclusão mútua: enquanto um

processo estiver em sua RC, outros não podem estar em suas RCs Problemas:

Interrupção de instruções de máquina

• Ex: A = A + 1 3 instruções

(cont.)

Page 22: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Concorrência (cont.) Problemas de exclusão mútua:

Entradas simultâneas em RCs Alternação Impasse (deadlock)

Page 23: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Concorrência (cont.) Semáforo

Primitivas - instruções não-interrompíveis

P(s) e V(s) / Wait(s) e Signal(s) Primitivas de sincronização

Page 24: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Concorrência (cont.) Monitor

Construção de mais alto nível Baseada em procedimentos -

mais bem estruturado Chamada a procedimento

garante exclusão mútua

Page 25: Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 03

Concorrência (cont.) Problemas clássicos:

representam abstrações de problemas Exclusão mútua: sincronização

(wait e signal) Produtor-Consumidor:

comunicação Leitores e Escritores: acesso a

banco de dados