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

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

Embed Size (px)

Citation preview

Page 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

Sistemas Distribuídos, Programação Concorrente e Redes

de Computadores

SSC/ICMC/USPSSC/ICMC/USP

Grupo de Sistemas DistribuídosGrupo de Sistemas Distribuídos e e Programação Programação ConcorrenteConcorrente

Paulo Sérgio Lopes de SouzaPaulo Sérgio Lopes de Souza

Marcos José SantanaMarcos José Santana

Page 2: 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

Conteúdo

Sistemas Distribuídos Sistemas Distribuídos Programação ConcorrenteProgramação Concorrente Redes de ComputadoresRedes de Computadores DisciplinasDisciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação Concorrente Programação Concorrente Comentários FinaisComentários Finais

Page 3: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação ConcorrenteProgramação Concorrente Redes de ComputadoresRedes de Computadores DisciplinasDisciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação Concorrente Programação Concorrente Comentários FinaisComentários Finais

Page 4: 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

Sistemas Distribuídos

Sistemas Computacionais DistribuídosSistemas Computacionais Distribuídos

Lamport: Lamport:

““É um sistema que impede você de É um sistema que impede você de obter qualquer serviço quando uma obter qualquer serviço quando uma máquina que você nem imagina que máquina que você nem imagina que exista exista falhefalhe!”!”

Page 5: 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

Sistemas Distribuídos

Sistemas Computacionais DistribuídosSistemas Computacionais Distribuídos

Tanenbaum + van Renesse:Tanenbaum + van Renesse:

““Aparenta ser um sistema centralizado Aparenta ser um sistema centralizado mas na realidade o S.O. executa em mas na realidade o S.O. executa em múltiplos e independentes múltiplos e independentes processadores.”processadores.”

Page 6: 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

Sistemas Distribuídos

Sistemas Computacionais DistribuídosSistemas Computacionais Distribuídos

Tanenbaum + van Renesse:Tanenbaum + van Renesse:

““Aparenta ser um sistema centralizado mas na Aparenta ser um sistema centralizado mas na realidade o S.O. executa em múltiplos e realidade o S.O. executa em múltiplos e independentes processadores .”independentes processadores .”

Conceito Chave Conceito Chave TransparênciaTransparência o uso de o uso de múltiplos processadores deve ser invisível ao múltiplos processadores deve ser invisível ao usuário.usuário.    

Page 7: 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

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:

5050 uso exclusivo - monousuário - alto custo uso exclusivo - monousuário - alto custo

Page 8: 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

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:

5050 uso exclusivo - monousuário - alto custo uso exclusivo - monousuário - alto custo

6060 processamento em lote (em batch) processamento em lote (em batch)

Evolução das memórias: espaço suficiente para acomodar o Evolução das memórias: espaço suficiente para acomodar o S.O. e programa de aplicação; S.O. e programa de aplicação;

Máxima utilização da máquinaMáxima utilização da máquina

Page 9: 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

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:

5050 uso exclusivo - monousuário - alto custo uso exclusivo - monousuário - alto custo 6060 processamento em lote (em batch) processamento em lote (em batch)

7070 multiusuário-compartilhamento da máquina ( multiusuário-compartilhamento da máquina (time sharingtime sharing))

Ciclo de máquina se tornou mais barato (máquinas mais Ciclo de máquina se tornou mais barato (máquinas mais velozes / preço menor por ciclo).velozes / preço menor por ciclo).

Programadores tornaram-se mais produtivosProgramadores tornaram-se mais produtivos..

Page 10: 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

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:

5050 uso exclusivo - monousuário - alto custo uso exclusivo - monousuário - alto custo 6060 processamento em lote (em batch) processamento em lote (em batch) 7070 multiusuário-compartilhamento da máquina ( multiusuário-compartilhamento da máquina (time sharingtime sharing)) 8080 computação pessoal e S.D. computação pessoal e S.D.

Tecnologia de VLSI e LAN tornaram as E.T. e os S.D. viáveis Tecnologia de VLSI e LAN tornaram as E.T. e os S.D. viáveis superando o T.S.superando o T.S.

Page 11: 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

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:

5050 uso exclusivo - monousuário - alto custo uso exclusivo - monousuário - alto custo 6060 processamento em lote (em batch) processamento em lote (em batch) 7070 multiusuário-compartilhamento da máquina ( multiusuário-compartilhamento da máquina (time sharingtime sharing)) 8080 computação pessoal e S.D. computação pessoal e S.D.

9090 computação pessoal, S.D. e Internet 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.

Page 12: 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

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:

5050 uso exclusivo - monousuário - alto custo uso exclusivo - monousuário - alto custo 6060 processamento em lote (em batch) processamento em lote (em batch) 7070 multiusuário-compartilhamento da máquina ( multiusuário-compartilhamento da máquina (time sharingtime sharing)) 8080 computação pessoal e S.D. computação pessoal e S.D. 90 90 computação pessoal, S.D. e Internet computação pessoal, S.D. e Internet

2000 2000 globalização, computação ubíqua,... globalização, computação ubíqua,...

Sistemas distribuídos globais; Máquinas paralelas virtuais globais; Wireless e distribuição em tempo real do processamento.

Page 13: 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

Sistemas Distribuídos

Motivação: aplicações especiais: requerem alto grau de interação

com os usuários (aplicações gráficas);

Page 14: 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

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

Page 15: 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

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;

Page 16: 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

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;

Page 17: 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

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;

Page 18: 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

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;

Page 19: 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

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

Page 20: 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

Sistemas Distribuídos

Modelos Arquiteturais:

Aspectos físicos Aspectos lógicos

Page 21: 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

Sistemas Distribuídos

Modelos Arquiteturais: Estações de Trabalho - Servidores

Cliente-servidorUsuário – estação de trabalhoServidores - serviços especializados

Page 22: 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

Sistemas Distribuídos

Modelos Arquiteturais:

Banco de ProcessadoresCliente-servidorUsuário – terminais Processadores formam um bancoLogin – associa processador a terminalServidores – serviços especiais

Page 23: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação ConcorrenteProgramação Concorrente Redes de ComputadoresRedes de Computadores DisciplinasDisciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação ConcorrenteProgramação Concorrente Comentários FinaisComentários Finais

Page 24: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação ConcorrenteProgramação Concorrente Redes de ComputadoresRedes de Computadores DisciplinasDisciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação ConcorrenteProgramação Concorrente Comentários FinaisComentários Finais

Page 25: 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

Programação Concorrente

Máquinas “von Neumann”Máquinas “von Neumann” Programação Seqüencial Programação Seqüencial Um processo por vez; Um processo por vez; Gargalo de von Neumann Gargalo de von Neumann Baixo desempenho; Baixo desempenho; Serialização de problemas paralelos.Serialização de problemas paralelos.

Solução: Computação ParalelaSolução: Computação Paralela Arquiteturas Paralelas:Arquiteturas Paralelas:

vários processadores/memórias trabalhando em uma vários processadores/memórias trabalhando em uma mesma aplicação;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 Diversas instruções executadas em paralelo para resolver problemas complexos mais eficientemente;problemas complexos mais eficientemente;

Page 26: 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

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 na computação paralela há vários processos executando em

diferentes processadores e trabalhando juntos em um único diferentes processadores e trabalhando juntos em um único problema;problema;

Page 27: 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

Programação Concorrente

Arquiteturas ParalelasArquiteturas Paralelas Objetivo principal:Objetivo principal:

Acelerar o processamentoAcelerar o processamento

Há diferentes soluções:Há diferentes soluções: Organizações de propósito geralOrganizações de propósito geral Organizações orientadas a aplicaçõesOrganizações orientadas a aplicações

Page 28: 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

Programação Concorrente

Classificação de FlynnClassificação de Flynn

Page 29: 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

Programação Concorrente

SISD – Single Instruction Single DataSISD – Single Instruction Single Data

Page 30: 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

Programação Concorrente

SIMD– Single Instruction Multiple DataSIMD– Single Instruction Multiple Data

Page 31: 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

Programação Concorrente

MISD– Multiple Instruction Single DataMISD– Multiple Instruction Single Data

Page 32: 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

Programação Concorrente

MIMD– Multiple Instruction Multiple DataMIMD– Multiple Instruction Multiple Data

Page 33: 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

Programação Concorrente

MIMD– Multiple Instruction Multiple DataMIMD– Multiple Instruction Multiple Data

Sistemas Computacionais Distribuídos:Sistemas Computacionais Distribuídos: MIMD – Memória DistribuídaMIMD – Memória Distribuída Arquitetura Paralela VirtualArquitetura Paralela Virtual

Computação Paralela VirtualComputação Paralela Virtual

Page 34: 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

Programação Concorrente

Arquitetura Paralela VirtualArquitetura Paralela Virtual

Elementos de processamento: estações de Elementos de processamento: estações de trabalho trabalho

Rede de interconexão: rede de computadoresRede de interconexão: rede de computadores Comunicação: troca de mensagensComunicação: troca de mensagens Desempenho: potencialmente inferiorDesempenho: potencialmente inferior

Page 35: 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

Programação Concorrente

Computação Paralela VirtualComputação Paralela Virtual

Implementada por softwareImplementada por software Uso do hardware instalado nos sistemas Uso do hardware instalado nos sistemas

computacionais distribuídoscomputacionais distribuídos Ambiente transparenteAmbiente transparente Pode ser utilizado sem alterar ambiente originalPode ser utilizado sem alterar ambiente original

Page 36: 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

Programação Concorrente

Software disponívelSoftware 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) OpenMPOpenMP

Page 37: 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

Programação Concorrente

PVM – Parallel Virtual MachinePVM – Parallel Virtual Machine

Define uma máquina paralela virtualDefine uma máquina paralela virtual Disponível em C e FortranDisponível em C e Fortran Programação normal, sem modificaçõesProgramação normal, sem modificações Inclusão de chamadas a rotinas de comunicaçãoInclusão de chamadas a rotinas de comunicação

Page 38: 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

Programação Concorrente

PVM – Visão ArquiteturalPVM – Visão Arquitetural

Visão Uniforme Visão Uniforme de uma de uma

máquina virtualmáquina virtualparalelaparalela

hostshosts

Page 39: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação Concorrente Programação Concorrente Redes de ComputadoresRedes de Computadores DisciplinasDisciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação ConcorrenteProgramação Concorrente Comentários FinaisComentários Finais

Page 40: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação Concorrente Programação Concorrente Redes de ComputadoresRedes de Computadores DisciplinasDisciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação ConcorrenteProgramação Concorrente Comentários FinaisComentários Finais

Page 41: 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

Redes de Computadores

Objetivos:Objetivos: interligação de máquinas em diversas interligação de máquinas em diversas

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

Page 42: 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

Redes de Computadores

Origem:Origem:

Década de 60: Década de 60: ligar computadores distribuídos ligar computadores distribuídos geograficamente para troca de dados;geograficamente para troca de dados;

conexão de terminais interativos a conexão de terminais interativos a computadores remotos;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.

Page 43: 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

Redes de Computadores

Tipos de Redes de Computadores:Tipos de Redes de Computadores:     

WAN - Wide Area Network (Redes de Longa WAN - Wide Area Network (Redes de Longa Distância)Distância)

MAN - Metropolitan Area Network MAN - Metropolitan Area Network (Redes Intermediárias) (Redes Intermediárias)

LAN - Local Area Network (Redes LAN - Local Area Network (Redes Locais) Locais) 

SAN - System Area Network (Redes de SAN - System Area Network (Redes de Sistemas)Sistemas)

Page 44: 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

Redes de Computadores

Meio Físico de Interconexão:Meio Físico de Interconexão:

Cabo CoaxialCabo Coaxial Par trançadoPar trançado Fibra ÓticaFibra Ótica Transmissão WirelessTransmissão Wireless etc.etc.

Page 45: 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

Redes de Computadores

Protocolos de ComunicaçãoProtocolos de Comunicação Regras de comunicação Regras de comunicação Viabilizam a comunicaçãoViabilizam a comunicação Uniformizam a troca de mensagensUniformizam a troca de mensagens Permitem criação de serviçosPermitem criação de serviços

Page 46: 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

Redes de Computadores

Exemplo de protocolo:Exemplo de protocolo: TCP/IPTCP/IP

Padrão amplamente utilizadoPadrão amplamente utilizadoOrigem na ARPANETOrigem na ARPANETProtocolo baseProtocolo base

da Internetda Internet

Page 47: 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

Redes de Computadores

Redes de Alta VelocidadeRedes de Alta Velocidade

Qualidade de Serviço (QoS)Qualidade de Serviço (QoS) Evolução das redes convencionaisEvolução das redes convencionais Fibras óticasFibras óticas Protocolos especiaisProtocolos especiais

Page 48: 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

Redes de Computadores

Redes modernasRedes modernas Integração de:Integração de:

DadosDadosVozVozImagensImagens

Page 49: 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

Redes de Computadores

Segurança:Segurança: InternaInterna

Proteção de dados Proteção de dados Acessos indevidosAcessos indevidos

ExternaExternaHackersHackers

Page 50: 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

Redes de Computadores

Base para Sistemas DistribuídosBase para Sistemas Distribuídos

Base para Arquiteturas Paralelas VirtuaisBase para Arquiteturas Paralelas Virtuais

Base para TelecomunicaçõesBase para Telecomunicações Sistemas telefônicos interconectados por redes de Sistemas telefônicos interconectados por redes de

computadorescomputadores

Page 51: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores DisciplinasDisciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação ConcorrenteProgramação Concorrente Comentários FinaisComentários Finais

Page 52: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores DisciplinasDisciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação ConcorrenteProgramação Concorrente Comentários FinaisComentários Finais

Page 53: 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

Disciplinas

ObrigatóriasObrigató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)

OptativasOptativas 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)

Page 54: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação ConcorrenteProgramação Concorrente Comentários FinaisComentários Finais

Page 55: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação ConcorrenteProgramação Concorrente Comentários FinaisComentários Finais

Page 56: 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

Grupo de Sistemas Distribuídos e Programação Concorrente Integrantes:Integrantes:

Marcos José SantanaMarcos José Santana – – PhD Univ. Southampton PhD Univ. Southampton Regina Helena Carlucci SantanaRegina Helena Carlucci Santana – – PhD Univ. SouthamptonPhD Univ. Southampton Edson dos Santos Moreira – Edson dos Santos Moreira – PhD Univ. ManchesterPhD Univ. Manchester Onofre Trindade Jr. – Dr. IFSC-USP Onofre Trindade Jr. – Dr. IFSC-USP Eduardo Marques – Eduardo Marques – Dr. EPUSPDr. EPUSP Sarita Mazzini Bruschi – Sarita Mazzini Bruschi – Dr. ICMC-USPDr. ICMC-USP Francisco José Mônaco – Francisco José Mônaco – Dr. EESC-USPDr. EESC-USP Jorge Luis e Silva – Dr. EPUSPJorge Luis e Silva – Dr. EPUSP Paulo Sérgio Lopes de Souza – Dr. IFSC-USPPaulo Sérgio Lopes de Souza – Dr. IFSC-USP Denis Fernando Wolf - PhD Univ. CaliforniaDenis Fernando Wolf - PhD Univ. California Kalinka Regina L. J. Castelo BrancoKalinka Regina L. J. Castelo BrancoDr. - ICMC-USPDr. - ICMC-USP

Page 57: 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

Grupo de Sistemas Distribuídos e Programação Concorrente Áreas de Pesquisas:Áreas de Pesquisas:

Sistemas DistribuídosSistemas Distribuídos Programação ConcorrenteProgramação Concorrente Redes de ComputadoresRedes de Computadores Avaliação de DesempenhoAvaliação de Desempenho Simulação de SistemasSimulação de Sistemas Hardware ReconfigurávelHardware Reconfigurável

Page 58: 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

Grupo de Sistemas Distribuídos e Programação Concorrente Pesquisas EnvolvendoPesquisas Envolvendo

Iniciação CientíficaIniciação Científica MestradoMestrado DoutoradoDoutorado

Page 59: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação ConcorrenteProgramação Concorrente Comentários FinaisComentários Finais

Page 60: 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

Conteúdo

Sistemas DistribuídosSistemas Distribuídos Programação Concorrente Programação Concorrente Redes de Computadores Redes de Computadores Disciplinas Disciplinas Grupo de Sistemas Distribuídos e Grupo de Sistemas Distribuídos e

Programação ConcorrenteProgramação Concorrente Comentários FinaisComentários Finais

Page 61: 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

Comentários Finais

Sistemas Distribuídos + Programação Sistemas Distribuídos + Programação Concorrente + Redes de ComputadoresConcorrente + Redes de Computadores

Base importante na formação do Engenheiro de Base importante na formação do Engenheiro de ComputaçãoComputação

Aplicação em, basicamente, todas as demais Aplicação em, basicamente, todas as demais disciplinas avançadas;disciplinas avançadas;

Influenciam diretamente a vida do profissional em Influenciam diretamente a vida do profissional em ComputaçãoComputação