A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Distribuídos, Programação Concorrente e Redes de Computadores SSC/ICMC/USP Grupo de Sistemas Distribuídos e Programação Concorrente Paulo Sérgio.

Apresentações semelhantes


Apresentação em tema: "Sistemas Distribuídos, Programação Concorrente e Redes de Computadores SSC/ICMC/USP Grupo de Sistemas Distribuídos e Programação Concorrente Paulo Sérgio."— Transcrição da apresentação:

1 Sistemas Distribuídos, Programação Concorrente e Redes de Computadores SSC/ICMC/USP Grupo de Sistemas Distribuídos e Programação Concorrente Paulo Sérgio Lopes de Souza Marcos José Santana

2 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

3 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

4 Sistemas Distribuídos Sistemas Computacionais Distribuídos Sistemas Computacionais Distribuídos Lamport: Lamport: É um sistema que impede você de obter qualquer serviço quando uma máquina que você nem imagina que exista falhe! É um sistema que impede você de obter qualquer serviço quando uma máquina que você nem imagina que exista falhe!

5 Sistemas Distribuídos Sistemas Computacionais Distribuídos Sistemas Computacionais Distribuídos Tanenbaum + van Renesse: Aparenta ser um sistema centralizado mas na realidade o S.O. executa em múltiplos e independentes processadores.Aparenta ser um sistema centralizado mas na realidade o S.O. executa em múltiplos e independentes processadores.

6 Sistemas Distribuídos Sistemas Computacionais Distribuídos Sistemas Computacionais Distribuídos Tanenbaum + van Renesse: Aparenta ser um sistema centralizado mas na realidade o S.O. executa em múltiplos e independentes processadores.Aparenta ser um sistema centralizado mas na realidade o S.O. executa em múltiplos e independentes processadores. Conceito Chave Transparência o uso de múltiplos processadores deve ser invisível ao usuário. Conceito Chave Transparência o uso de múltiplos processadores deve ser invisível ao usuário.

7 Sistemas Distribuídos Evolução Histórica: Evolução Histórica: 5 Fases: décadas de 50, 60, 70, 80 e 90: 5 Fases: décadas de 50, 60, 70, 80 e 90: 50 uso exclusivo - monousuário - alto custo 50 uso exclusivo - monousuário - alto custo

8 Sistemas Distribuídos Evolução Histórica: Evolução Histórica: 5 Fases: décadas de 50, 60, 70, 80 e 90: 5 Fases: décadas de 50, 60, 70, 80 e 90: 50 uso exclusivo - monousuário - alto custo 50 uso exclusivo - monousuário - alto custo 60 processamento em lote (em batch) 60 processamento em lote (em batch) Evolução das memórias: espaço suficiente para acomodar o S.O. e programa de aplicação; Evolução das memórias: espaço suficiente para acomodar o S.O. e programa de aplicação; Máxima utilização da máquina Máxima utilização da máquina

9 Sistemas Distribuídos Evolução Histórica: Evolução Histórica: 5 Fases: décadas de 50, 60, 70, 80 e 90: 5 Fases: décadas de 50, 60, 70, 80 e 90: 50 uso exclusivo - monousuário - alto custo 50 uso exclusivo - monousuário - alto custo 60 processamento em lote (em batch) 60 processamento em lote (em batch) 70 multiusuário-compartilhamento da máquina (time sharing) 70 multiusuário-compartilhamento da máquina (time sharing) Ciclo de máquina se tornou mais barato (máquinas mais velozes / preço menor por ciclo). Ciclo de máquina se tornou mais barato (máquinas mais velozes / preço menor por ciclo). Programadores tornaram-se mais produtivos. Programadores tornaram-se mais produtivos.

10 Sistemas Distribuídos Evolução Histórica: Evolução Histórica: 5 Fases: décadas de 50, 60, 70, 80 e 90: 5 Fases: décadas de 50, 60, 70, 80 e 90: 50 uso exclusivo - monousuário - alto custo 50 uso exclusivo - monousuário - alto custo 60 processamento em lote (em batch) 60 processamento em lote (em batch) 70 multiusuário-compartilhamento da máquina (time sharing) 70 multiusuário-compartilhamento da máquina (time sharing) 80 computação pessoal e S.D. 80 computação pessoal e S.D. Tecnologia de VLSI e LAN tornaram as E.T. e os S.D. viáveis superando o T.S. Tecnologia de VLSI e LAN tornaram as E.T. e os S.D. viáveis superando o T.S.

11 Sistemas Distribuídos Evolução Histórica: Evolução Histórica: 5 Fases: décadas de 50, 60, 70, 80 e 90: 5 Fases: décadas de 50, 60, 70, 80 e 90: 50 uso exclusivo - monousuário - alto custo 50 uso exclusivo - monousuário - alto custo 60 processamento em lote (em batch) 60 processamento em lote (em batch) 70 multiusuário-compartilhamento da máquina (time sharing) 70 multiusuário-compartilhamento da máquina (time sharing) 80 computação pessoal e S.D. 80 computação pessoal e S.D. 90 computação pessoal, S.D. e Internet 90 computação pessoal, S.D. e Internet sedimentação dos S.D; sedimentação dos S.D; proliferação acelerada da Internet; proliferação acelerada da Internet; computação paralela sobre plataformas distribuídas; computação paralela sobre plataformas distribuídas; integração de ambientes computacionais. integração de ambientes computacionais.

12 Sistemas Distribuídos Evolução Histórica: Evolução Histórica: 5 Fases: décadas de 50, 60, 70, 80 e 90: 5 Fases: décadas de 50, 60, 70, 80 e 90: 50 uso exclusivo - monousuário - alto custo 50 uso exclusivo - monousuário - alto custo 60 processamento em lote (em batch) 60 processamento em lote (em batch) 70 multiusuário-compartilhamento da máquina (time sharing) 70 multiusuário-compartilhamento da máquina (time sharing) 80 computação pessoal e S.D. 80 computação pessoal e S.D. 90 computação pessoal, S.D. e Internet 90 computação pessoal, S.D. e Internet 2000 globalização, computação ubíqua,... 2000 globalização, computação ubíqua,... Sistemas distribuídos globais; Máquinas paralelas virtuais globais; Wireless e distribuição em tempo real do processamento.

13 Sistemas Distribuídos Motivação: aplicações especiais: requerem alto grau de interação com os usuários (aplicações gráficas);

14 Sistemas Distribuídos Motivação: aplicações especiais: requerem alto grau de interação com os usuários (aplicações gráficas); minicomputadores: passam a ser usados como máquina pessoal (monousuário) primeiras E.T.;

15 Sistemas Distribuídos Motivação: aplicações especiais: requerem alto grau de interação com os usuários (aplicações gráficas); minicomputadores: passam a ser usados como máquina pessoal (monousuário) primeiras E.T.; E.T. máquinas isoladas: perda de conectividade;

16 Sistemas Distribuídos Motivação: aplicações especiais: requerem alto grau de interação com os usuários (aplicações gráficas); minicomputadores: passam a ser usados como máquina pessoal (monousuário) primeiras E.T.; E.T. máquinas isoladas: perda de conectividade; redes locais de computadores: retorno da conectividade;

17 Sistemas Distribuídos Motivação: aplicações especiais: requerem alto grau de interação com os usuários (aplicações gráficas); minicomputadores: passam a ser usados como máquina pessoal (monousuário) primeiras E.T.; E.T. máquinas isoladas: perda de conectividade; redes locais de computadores: retorno da conectividade; servidores: algumas E.T. foram transformadas para desempenhar tarefa específica;

18 Sistemas Distribuídos Motivação: aplicações especiais: requerem alto grau de interação com os usuários (aplicações gráficas); minicomputadores: passam a ser usados como máquina pessoal (monousuário) primeiras E.T.; E.T. máquinas isoladas: perda de conectividade; redes locais de computadores: retorno da conectividade; servidores: algumas E.T. foram transformadas para desempenhar tarefa específica; custo: obter desempenho esperado de um único recurso pode ser muito caro com a tecnologia disponível no momento;

19 Sistemas Distribuídos Motivação: aplicações especiais: requerem alto grau de interação com os usuários (aplicações gráficas); minicomputadores: passam a ser usados como máquina pessoal (monousuário) primeiras E.T.; E.T. máquinas isoladas: perda de conectividade; redes locais de computadores: retorno da conectividade; servidores: algumas E.T. foram transformadas para desempenhar tarefa específica; custo: obter desempenho esperado de um único recurso pode ser muito caro com a tecnologia disponível no momento;; desempenho: vários fatores a mais alteram o desempenho (cuidado!).

20 Sistemas Distribuídos Modelos Arquiteturais: Aspectos físicos Aspectos lógicos

21 Sistemas Distribuídos Modelos Arquiteturais: Estações de Trabalho - Servidores Cliente-servidor Usuário – estação de trabalho Servidores - serviços especializados

22 Sistemas Distribuídos Modelos Arquiteturais: Banco de Processadores Cliente-servidor Usuário – terminais Processadores formam um banco Login – associa processador a terminal Servidores – serviços especiais

23 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

24 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

25 Programação Concorrente Máquinas von Neumann Máquinas von Neumann Programação Seqüencial Um processo por vez; Programação Seqüencial Um processo por vez; Gargalo de von Neumann Baixo desempenho; Gargalo de von Neumann Baixo desempenho; Serialização de problemas paralelos. Serialização de problemas paralelos. Solução: Computação Paralela Solução: Computação Paralela Arquiteturas Paralelas: Arquiteturas Paralelas: vários processadores/memórias trabalhando em uma mesma aplicação; vários processadores/memórias trabalhando em uma mesma aplicação; Programação Concorrente: Programação Concorrente: inciar/finalizar, coordenar e comunicar inciar/finalizar, coordenar e comunicar Diversas instruções executadas em paralelo para resolver problemas complexos mais eficientemente; Diversas instruções executadas em paralelo para resolver problemas complexos mais eficientemente;

26 Programação Concorrente Execução Seqüencial: Execução Seqüencial: Várias instruções sendo executadas uma após a outra. Várias instruções sendo executadas uma após a outra. Execução Concorrente: Execução Concorrente: Várias instruções sendo executadas concorrentemente; Várias instruções sendo executadas concorrentemente; Único processador: há um pseudo-paralelismo; Único processador: há um pseudo-paralelismo; Em arquiteturas paralelas (vários processadores) têm-se:. Em arquiteturas paralelas (vários processadores) têm-se:. Execução Paralela: Execução Paralela: na computação paralela há vários processos executando em diferentes processadores e trabalhando juntos em um único problema; na computação paralela há vários processos executando em diferentes processadores e trabalhando juntos em um único problema;

27 Programação Concorrente Arquiteturas Paralelas Arquiteturas Paralelas Objetivo principal: Objetivo principal: Acelerar o processamento Acelerar o processamento Há diferentes soluções: Há diferentes soluções: Organizações de propósito geral Organizações de propósito geral Organizações orientadas a aplicações Organizações orientadas a aplicações

28 Programação Concorrente Classificação de Flynn Classificação de Flynn

29 Programação Concorrente SISD – Single Instruction Single Data SISD – Single Instruction Single Data

30 Programação Concorrente SIMD– Single Instruction Multiple Data SIMD– Single Instruction Multiple Data

31 Programação Concorrente MISD– Multiple Instruction Single Data MISD– Multiple Instruction Single Data

32 Programação Concorrente MIMD– Multiple Instruction Multiple Data MIMD– Multiple Instruction Multiple Data

33 Programação Concorrente MIMD– Multiple Instruction Multiple Data MIMD– Multiple Instruction Multiple Data Sistemas Computacionais Distribuídos: Sistemas Computacionais Distribuídos: MIMD – Memória Distribuída MIMD – Memória Distribuída Arquitetura Paralela Virtual Arquitetura Paralela Virtual Computação Paralela Virtual Computação Paralela Virtual

34 Programação Concorrente Arquitetura Paralela Virtual Arquitetura Paralela Virtual Elementos de processamento: estações de trabalho Elementos de processamento: estações de trabalho Rede de interconexão: rede de computadores Rede de interconexão: rede de computadores Comunicação: troca de mensagens Comunicação: troca de mensagens Desempenho: potencialmente inferior Desempenho: potencialmente inferior

35 Programação Concorrente Computação Paralela Virtual Computação Paralela Virtual Implementada por software Implementada por software Uso do hardware instalado nos sistemas computacionais distribuídos Uso do hardware instalado nos sistemas computacionais distribuídos Ambiente transparente Ambiente transparente Pode ser utilizado sem alterar ambiente original Pode ser utilizado sem alterar ambiente original

36 Programação Concorrente Software disponível Software disponível PVM (amplamente difundido desde os anos 80) PVM (amplamente difundido desde os anos 80) MPI (padrão definido nos anos 90) MPI (padrão definido nos anos 90) OpenMP OpenMP

37 Programação Concorrente PVM – Parallel Virtual Machine PVM – Parallel Virtual Machine Define uma máquina paralela virtual Define uma máquina paralela virtual Disponível em C e Fortran Disponível em C e Fortran Programação normal, sem modificações Programação normal, sem modificações Inclusão de chamadas a rotinas de comunicação Inclusão de chamadas a rotinas de comunicação

38 Programação Concorrente PVM – Visão Arquitetural PVM – Visão Arquitetural Visão Uniforme de uma máquina virtual paralela hosts

39 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

40 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

41 Redes de Computadores Objetivos: Objetivos: interligação de máquinas em diversas localidades; interligação de máquinas em diversas localidades; compartilhamento de informações; compartilhamento de informações; correio eletrônico; correio eletrônico; aproveitamento de potência computacional; aproveitamento de potência computacional; etc. etc.

42 Redes de Computadores Origem: Origem: Década de 60: ligar computadores distribuídos geograficamente para troca de dados; Década de 60: ligar computadores distribuídos geograficamente para troca de dados; conexão de terminais interativos a computadores remotos; conexão de terminais interativos a computadores remotos; correio eletrônico; correio eletrônico; transmissão de arquivos; transmissão de arquivos; processamento em lote entre computadores. processamento em lote entre computadores.

43 Redes de Computadores Tipos de Redes de Computadores: Tipos de Redes de Computadores: WAN - Wide Area Network (Redes de Longa Distância) WAN - Wide Area Network (Redes de Longa Distância) MAN - Metropolitan Area Network (Redes Intermediárias) MAN - Metropolitan Area Network (Redes Intermediárias) LAN - Local Area Network (Redes Locais) LAN - Local Area Network (Redes Locais) SAN - System Area Network (Redes de Sistemas) SAN - System Area Network (Redes de Sistemas)

44 Redes de Computadores Meio Físico de Interconexão: Meio Físico de Interconexão: Cabo Coaxial Cabo Coaxial Par trançado Par trançado Fibra Ótica Fibra Ótica Transmissão Wireless Transmissão Wireless etc. etc.

45 Redes de Computadores Protocolos de Comunicação Protocolos de Comunicação Regras de comunicação Regras de comunicação Viabilizam a comunicação Viabilizam a comunicação Uniformizam a troca de mensagens Uniformizam a troca de mensagens Permitem criação de serviços Permitem criação de serviços

46 Redes de Computadores Exemplo de protocolo: Exemplo de protocolo: TCP/IP TCP/IP Padrão amplamente utilizado Padrão amplamente utilizado Origem na ARPANET Origem na ARPANET Protocolo base Protocolo base da Internet

47 Redes de Computadores Redes de Alta Velocidade Redes de Alta Velocidade Qualidade de Serviço (QoS) Qualidade de Serviço (QoS) Evolução das redes convencionais Evolução das redes convencionais Fibras óticas Fibras óticas Protocolos especiais Protocolos especiais

48 Redes de Computadores Redes modernas Redes modernas Integração de: Integração de: Dados Dados Voz Voz Imagens Imagens

49 Redes de Computadores Segurança: Segurança: Interna Interna Proteção de dados Proteção de dados Acessos indevidos Acessos indevidos Externa Externa Hackers Hackers

50 Redes de Computadores Base para Sistemas Distribuídos Base para Sistemas Distribuídos Base para Arquiteturas Paralelas Virtuais Base para Arquiteturas Paralelas Virtuais Base para Telecomunicações Base para Telecomunicações Sistemas telefônicos interconectados por redes de computadores Sistemas telefônicos interconectados por redes de computadores

51 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

52 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

53 Disciplinas Obrigatórias Obrigatórias SCE612 - Redes de Computadores (5o Per) SCE612 - Redes de Computadores (5o Per) SCE616 - Sistemas Computacionais Distribuídos (6o Per) SCE616 - Sistemas Computacionais Distribuídos (6o Per) Optativas Optativas SCE704 - Programação Concorrente (7o Per) SCE704 - Programação Concorrente (7o Per) SCE706 - Computação Distribuída (8o Per) SCE706 - Computação Distribuída (8o Per) SCE708 - Sistemas Comp. de Tempo Real (8o Per) SCE708 - Sistemas Comp. de Tempo Real (8o Per) SCE709 - Sistemas Comp. Tolerantes Falhas (10o Per) SCE709 - Sistemas Comp. Tolerantes Falhas (10o Per)

54 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

55 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

56 Grupo de Sistemas Distribuídos e Programação Concorrente Integrantes: Integrantes: Marcos José Santana – PhD Univ. Southampton Marcos José Santana – PhD Univ. Southampton Regina Helena Carlucci Santana – PhD Univ. Southampton Regina Helena Carlucci Santana – PhD Univ. Southampton Edson dos Santos Moreira – PhD Univ. Manchester Edson dos Santos Moreira – PhD Univ. Manchester Onofre Trindade Jr. – Dr. IFSC-USP Onofre Trindade Jr. – Dr. IFSC-USP Eduardo Marques – Dr. EPUSP Eduardo Marques – Dr. EPUSP Sarita Mazzini Bruschi – Dr. ICMC-USP Sarita Mazzini Bruschi – Dr. ICMC-USP Francisco José Mônaco – Dr. EESC-USP Francisco José Mônaco – Dr. EESC-USP Jorge Luis e Silva – Dr. EPUSP Jorge Luis e Silva – Dr. EPUSP Paulo Sérgio Lopes de Souza – Dr. IFSC-USP Paulo Sérgio Lopes de Souza – Dr. IFSC-USP Denis Fernando Wolf - PhD Univ. California Denis Fernando Wolf - PhD Univ. California Kalinka Regina L. J. Castelo Branco Dr. - ICMC-USP Kalinka Regina L. J. Castelo Branco Dr. - ICMC-USP

57 Grupo de Sistemas Distribuídos e Programação Concorrente Áreas de Pesquisas: Áreas de Pesquisas: Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Avaliação de Desempenho Avaliação de Desempenho Simulação de Sistemas Simulação de Sistemas Hardware Reconfigurável Hardware Reconfigurável

58 Grupo de Sistemas Distribuídos e Programação Concorrente Pesquisas Envolvendo Pesquisas Envolvendo Iniciação Científica Iniciação Científica Mestrado Mestrado Doutorado Doutorado

59 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

60 Conteúdo Sistemas Distribuídos Sistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Programação Concorrente Grupo de Sistemas Distribuídos e Programação Concorrente Comentários Finais Comentários Finais

61 Comentários Finais Sistemas Distribuídos + Programação Concorrente + Redes de Computadores Sistemas Distribuídos + Programação Concorrente + Redes de Computadores Base importante na formação do Engenheiro de Computação Base importante na formação do Engenheiro de Computação Aplicação em, basicamente, todas as demais disciplinas avançadas; Aplicação em, basicamente, todas as demais disciplinas avançadas; Influenciam diretamente a vida do profissional em Computação Influenciam diretamente a vida do profissional em Computação


Carregar ppt "Sistemas Distribuídos, Programação Concorrente e Redes de Computadores SSC/ICMC/USP Grupo de Sistemas Distribuídos e Programação Concorrente Paulo Sérgio."

Apresentações semelhantes


Anúncios Google