1 / 25

Sistemas Distribuídos

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. Caracterização de SD. Características principais -> benefícios : Compartilhamento de recursos Flexibilidade Concorrência (cont.).

flint
Download Presentation

Sistemas Distribuídos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Tópicos • Características • Tendências • Suporte à Programação Distribuída: Introdução • Conceitos

  3. Caracterização de SD • Características principais -> benefícios: • Compartilhamento de recursos • Flexibilidade • Concorrência (cont.)

  4. Características (cont.) • Escalabilidade (operação efetiva e eficiente em qualquer escala) • Robustez • Tolerância a falhas • Disponibilidade • Transparência

  5. 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

  6. 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

  7. 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

  8. Suporte à Programação Distribuída • Sistemas Abertos (OSI + ODP) • Sistemas operacionais distribuídos • Abordagem “revolucionária” • Microkernels Sistemas abertos e Aplicações Emul. S.O. Suporte a Ling. .... .... Microkernel Hardware

  9. Suporte à Programação Distribuída (cont.) • Plataformas “ODP” • Abordagem “evolucionária” Sistemas abertos e Aplicações Plataforma“ODP” Sistema Operacional Hardware

  10. 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

  11. Processos e Threads • Em sistemas operacionais tradicionais, cada processo tem um único espaço de endereço e uma única linha (thread) de controle

  12. 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ência é uma abstração importante porque o comportamento de muitos sistemas reais pode ser modelado sem detalhes desnecessários

  13. 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

  14. 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

  15. 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

  16. Processos e Threads (cont.) • Pacote de threads: conjunto de primitivas (ex. chamadas de bibliotecas) • Criação estática e dinâmica de threads simplicidade x flexibilidade • Compartilhamento de memória/variávies: mutex • Sincronização: variável condicional - wait e wakeup

  17. 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;

  18. 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.

  19. 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.

  20. Processos e Threads (cont.) • Ligação dinâmica (dynamic binding) de processos Ligaçã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.

  21. 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.)

  22. Concorrência (cont.) • Problemas de exclusão mútua: • Entradas simultâneas em RCs • Alternação • Impasse (deadlock)

  23. 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

  24. 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

  25. Concorrência (cont.) • Problemas clássicos: representam abstrações de problemas • Exclusão mútua: sincronização (waite signal) • Produtor-Consumidor: comunicação • Leitores e Escritores: acesso a banco de dados

More Related