SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Sistemas Distribuídos e Paralelos
        Prof. Adriano Teixeira de Souza
   Poder de processamento das máquinas vem
    crescendo rapidamente
   Grande parte das máquinas interligada por
    redes de computadores
   Sistemas e aplicações estão cada vez mais
    complexos
    ◦ Funcionalidade, Interfaceamento gráfico,
      Comunicação, ...
    ◦ Maior carga, Maior número de usuários, ...
    ◦ Exigências de otimizar tempo de resposta,
      incrementar a confiabilidade ...


                          Prof. Adriano Teixeira de Souza
?
    Consiste em executar simultaneamente
    várias partes de uma mesma aplicação
   Tornou-se possível a partir do
    desenvolvimento de sistemas operacionais
    multi-tarefa, multi-thread e paralelos
   Aplicações são executadas paralelamente:
    ◦   Em um mesmo processador
    ◦   Em uma máquina multiprocessada
    ◦   Em um grupo de máquinas interligadas que se
    ◦   comporta como uma só máquina



                           Prof. Adriano Teixeira de Souza
   O que é?

    ◦ Consiste em executar aplicações cooperantes
       em máquinas diferentes

    ◦ Tornou-se possível a partir da popularização
       das redes de computadores




                           Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   A Computação Distribuída fornece toda a
    infra-estrutura necessária para a construção
    e operação efetiva de aplicações distribuídas

   Engloba todos os produtos necessários para
    permitir que essas aplicações sejam
    construídas e possam ser executadas em
    um ambiente de rede heterogêneo, ou em
    um ambiente centralizado



                        Prof. Adriano Teixeira de Souza
   Acoplamento
    ◦ Sistemas paralelos são fortemente acoplados:
      compartilham hardware ou se comunicam através
      de um barramento de alta velocidade
    ◦ Sistemas distribuídos são fracamente acoplados


   Previsibilidade
    ◦ O comportamento de sistemas paralelos é mais
      previsível
    ◦ sistemas distribuídos são mais imprevisíveis
      devido ao uso da rede e a falhas

                         Prof. Adriano Teixeira de Souza
   Influência do Tempo
    ◦ Sistemas distribuídos são bastante influenciados
      pelo tempo de comunicação pela rede
    ◦ não há uma referência de tempo global geral
    ◦ Em sistemas paralelos o tempo de troca de
      mensagens pode ser desconsiderado

   Controle
    ◦ em sistemas paralelos se tem o controle de todos
      os recursos computacionais
    ◦ os sistemas distribuídos tendem a empregar
      também recursos de terceiros

                          Prof. Adriano Teixeira de Souza
   Um SD deve prover:
    ◦ sincronização de processos

    ◦ gerenciamento da comunicação interprocessos

    ◦ tratamento de deadlocks

    ◦ tratamento de outras situações não encontradas em
      sistemas centralizados



                           Prof. Adriano Teixeira de Souza
   Usam melhor o poder de processamento
   Apresentam um melhor desempenho
   Permitem compartilhar dados e recursos
   Podem apresentar maior confiabilidade
   Permitem reutilizar serviços já disponíveis
   Atendem um maior número de usuários
   Balanceamento de carga
   Escalabilidade


                         Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   Desenvolver, gerenciar e manter o sistema.
   Controlar o acesso concorrente a dados e a
      recursos compartilhados.
   Evitar que falhas de máquinas ou da rede
      comprometam o funcionamento do sistema.
   Garantir a segurança do sistema e o sigilo
      dos dados trocados entre máquinas
   Lidar com a heterogeneidade do ambiente
   ...


                       Prof. Adriano Teixeira de Souza
   SO de Rede
    ◦ Provê ambiente no qual os usuários estão cientes
      da multiplicidade das máquinas, acessando-as
      remotamente
    ◦ Login remoto
      SSH
    ◦ Transferência remota de arquivos
      FTP
    ◦ Obriga que usuário mude de paradigma
      Conjunto de comandos específico no FTP
      Conjunto de comandos adequado do comando remoto no
       SSH

                          Prof. Adriano Teixeira de Souza
   SO Distribuído
    ◦ Provê ambiente transparente, gerenciado pelo SO
    ◦ Migração de Dados
      Duas abordagens
        „FTP automático, com processamento local de uma cópia
         completa
          Andrew File System
        Distribuir, manipulando pequenas porções
          NFS da Sun
          SMB da Microsoft




                                Prof. Adriano Teixeira de Souza
   SO Distribuído
    ◦ Migração de Computação
      RPC
      Troca de Mensagens
    ◦ Migração de Processos
      Balanceamento de Carga
      Aumento na velocidade de execução -> minimizar turnaround
       time
      Preferência de hardware
      Preferência de software
      Acesso a dados




                              Prof. Adriano Teixeira de Souza
   Aplicações que são funcionalmente separadas
    em processos distintos rodando em
    computadores diferentes sobre uma rede

   Os processos interoperam para resolver um
    problema computacional comum

   Consistem de interface de usuário, dados do
    usuário e os processos em diferentes
    computadores


                        Prof. Adriano Teixeira de Souza
Máquina 1                                     Máquina
                Aplicação                                    Aplicação
                                              N

   Apliacação               Serviço                Serviço               Aplicação




         Middleware para Programação Distribuída

  Sistema Operacional                              Sistema Operacional


          Hardware                                       Hardware


                                      Prof. Adriano Teixeira de Souza
   Middleware é um software que permite
    elementos de aplicações interoperarem
    através de redes

   Mesmo com as diferenças nos protocolos
    de comunicação, arquiteturas de sistemas,
    sistemas operacionais, bases de dados e
    outro serviços de aplicação



                     Prof. Adriano Teixeira de Souza
   provê um modo para obter dados de um
    lugar (..) para outro lugar (..)

   deve mascarar as diferenças existentes
    entre SOs, plataformas de Hardware e
    protocolos de rede

   deve ocultar a complexidade do processo
    de transporte da rede, do desenvolvedor
    da aplicação

                      Prof. Adriano Teixeira de Souza
   Fornecedores estão oferecendo serviços de
    sistemas distribuídos que têm interfaces
    de programação padronizadas e
    protocolos

   tais serviços são chamados serviços de
    middleware, porque se situam “no meio”,
    num nível acima ao SO e ao software de
    rede e abaixo das aplicações específicas

                      Prof. Adriano Teixeira de Souza
   Estratégias diferentes que permitem a
    comunicação entre aplicações distribuídas
    ◦ Sockets

    ◦ RPC - Remote Procedure Call

    ◦ RMI (Remote Method Invocation)

    ◦ CORBA (Commom Object Request Broker Architecture)

    ◦ Web Services


                            Prof. Adriano Teixeira de Souza
   Client-Server Model
    ◦ Modelo tradicional e dominante a partir dos
      anos 80
    ◦ Enfoque na LAN


   Web-Based Distributed Computing Model
    ◦   Enfoque na Internet
    ◦   Processos
    ◦   Threads
    ◦   Objetos Distribuídos
    ◦   Agentes

                          Prof. Adriano Teixeira de Souza
   Web-based Client-Server Computing
    ◦ proxy computing
      Dados e programa são mandados do cliente para o
       servidor processar
    ◦ code shipping
      O cliente faz uma requisição ao servidor que envia o
       programa para ser executado com dados locais do cliente
      Ex: Applets rodando no browser
    ◦ remote computing
      O cliente envia os dados para serem processados no
       servidor
    ◦ agent-based computing
      three-tier model
                            Prof. Adriano Teixeira de Souza
   Um SO multitarefa permite simular o
    paralelismo em um único processador,
    alternando a execução de processos
   Um processador com núcleo múltiplo permite
    paralelismo real entre processos, executando
    múltiplas instruções por ciclo




                         Prof. Adriano Teixeira de Souza
   Uma Placa-Mãe Multiprocessador permite que
    cada processador execute um processo




                      Prof. Adriano Teixeira de Souza
   Tyan S2696




Prof. Adriano Teixeira de Souza
   Cluster é o nome dado a um sistema montado com
    mais de um computador, cujo objetivo é fazer com
    que todo o processamento da aplicação seja
    distribuído aos computadores, mas de forma que
    pareça com que eles sejam um computador só.

   Com isso, é possível realizar processamentos que
    até então somente computadores de alta
    performance seriam capazes de fazer.





                          Prof. Adriano Teixeira de Souza
   Um Cluster é uma solução de baixo custo
    para processamento de alto desempenho




                     Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   COULOURIS, George; DOLLIMORE, Jean,
    KINDBERG, Tim. “Distributed Systems:
    Concepts and Design”. 3 ed. Addison
    Wesley, 2001.
   JIA, Weijia; ZHOU, Wanlei. “Distributed
    Network Systems – from concepts to
    implementations”. Boston: Springer, 2005.
   SILBERSCHATZ, Abraham; GALVIN, Peter;
    GAGNE, Greg. “Sistemas Operacionais:
    Conceitos e Aplicações”. Rio de Janeiro:
    Campus, 2000.
                       Prof. Adriano Teixeira de Souza

Contenu connexe

Tendances

Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosMessias Batista
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareAdriano Teixeira de Souza
 
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)Luis Ferreira
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Arthur Emanuel
 
Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosVictor Hazin da Rocha
 
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresDalton Martins
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processosComputação Depressão
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 

Tendances (20)

Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas Distribuídos
 
Topologias de rede
Topologias de redeTopologias de rede
Topologias de rede
 
Comunicação de dados!
Comunicação de dados!Comunicação de dados!
Comunicação de dados!
 
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Firewall
FirewallFirewall
Firewall
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Aula sobre Linux.
Aula sobre Linux. Aula sobre Linux.
Aula sobre Linux.
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 

Similaire à Sistemas Distribuídos e Paralelos

Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisDuFelix02
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 
Cloud Computing - Conceitos e Aplicações Práticas
Cloud Computing - Conceitos e Aplicações PráticasCloud Computing - Conceitos e Aplicações Práticas
Cloud Computing - Conceitos e Aplicações PráticasRafael Bandeira
 
Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Renato William
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosPortal_do_Estudante_SD
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
Cloud computing, Grid Computing, Virtualization
Cloud computing, Grid Computing, VirtualizationCloud computing, Grid Computing, Virtualization
Cloud computing, Grid Computing, VirtualizationAdário Muatelembe
 
Apresentação HyperCloud GT8
Apresentação HyperCloud GT8Apresentação HyperCloud GT8
Apresentação HyperCloud GT8HyperCloud UFS
 
Utilização de sistemas distribuidos
Utilização de sistemas distribuidosUtilização de sistemas distribuidos
Utilização de sistemas distribuidosDeroci Nonato Júnior
 
ADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesSilvano Oliveira
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisAdriano Teixeira de Souza
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03thomasdacosta
 

Similaire à Sistemas Distribuídos e Paralelos (20)

Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Cloud Computing - Conceitos e Aplicações Práticas
Cloud Computing - Conceitos e Aplicações PráticasCloud Computing - Conceitos e Aplicações Práticas
Cloud Computing - Conceitos e Aplicações Práticas
 
Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Sistemas distribuídos aula 1
Sistemas distribuídos aula 1
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidos
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
World Wide Web
World Wide WebWorld Wide Web
World Wide Web
 
Cloud computing, Grid Computing, Virtualization
Cloud computing, Grid Computing, VirtualizationCloud computing, Grid Computing, Virtualization
Cloud computing, Grid Computing, Virtualization
 
Redes
RedesRedes
Redes
 
Apresentação HyperCloud GT8
Apresentação HyperCloud GT8Apresentação HyperCloud GT8
Apresentação HyperCloud GT8
 
Joaopinheiro
JoaopinheiroJoaopinheiro
Joaopinheiro
 
Sistema
SistemaSistema
Sistema
 
Utilização de sistemas distribuidos
Utilização de sistemas distribuidosUtilização de sistemas distribuidos
Utilização de sistemas distribuidos
 
ADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de RedesADR00 - Conceitos de Sistemas Operacionais de Redes
ADR00 - Conceitos de Sistemas Operacionais de Redes
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Introducao.2s
Introducao.2sIntroducao.2s
Introducao.2s
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
Servidores de Aplicações
Servidores de AplicaçõesServidores de Aplicações
Servidores de Aplicações
 

Plus de Adriano Teixeira de Souza

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Adriano Teixeira de Souza
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasAdriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)Adriano Teixeira de Souza
 

Plus de Adriano Teixeira de Souza (20)

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
 
Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 

Sistemas Distribuídos e Paralelos

  • 1. Sistemas Distribuídos e Paralelos Prof. Adriano Teixeira de Souza
  • 2. Poder de processamento das máquinas vem crescendo rapidamente  Grande parte das máquinas interligada por redes de computadores  Sistemas e aplicações estão cada vez mais complexos ◦ Funcionalidade, Interfaceamento gráfico, Comunicação, ... ◦ Maior carga, Maior número de usuários, ... ◦ Exigências de otimizar tempo de resposta, incrementar a confiabilidade ... Prof. Adriano Teixeira de Souza
  • 3. ?
  • 4. Consiste em executar simultaneamente várias partes de uma mesma aplicação  Tornou-se possível a partir do desenvolvimento de sistemas operacionais multi-tarefa, multi-thread e paralelos  Aplicações são executadas paralelamente: ◦ Em um mesmo processador ◦ Em uma máquina multiprocessada ◦ Em um grupo de máquinas interligadas que se ◦ comporta como uma só máquina Prof. Adriano Teixeira de Souza
  • 5. O que é? ◦ Consiste em executar aplicações cooperantes em máquinas diferentes ◦ Tornou-se possível a partir da popularização das redes de computadores Prof. Adriano Teixeira de Souza
  • 7. A Computação Distribuída fornece toda a infra-estrutura necessária para a construção e operação efetiva de aplicações distribuídas  Engloba todos os produtos necessários para permitir que essas aplicações sejam construídas e possam ser executadas em um ambiente de rede heterogêneo, ou em um ambiente centralizado Prof. Adriano Teixeira de Souza
  • 8. Acoplamento ◦ Sistemas paralelos são fortemente acoplados: compartilham hardware ou se comunicam através de um barramento de alta velocidade ◦ Sistemas distribuídos são fracamente acoplados  Previsibilidade ◦ O comportamento de sistemas paralelos é mais previsível ◦ sistemas distribuídos são mais imprevisíveis devido ao uso da rede e a falhas Prof. Adriano Teixeira de Souza
  • 9. Influência do Tempo ◦ Sistemas distribuídos são bastante influenciados pelo tempo de comunicação pela rede ◦ não há uma referência de tempo global geral ◦ Em sistemas paralelos o tempo de troca de mensagens pode ser desconsiderado  Controle ◦ em sistemas paralelos se tem o controle de todos os recursos computacionais ◦ os sistemas distribuídos tendem a empregar também recursos de terceiros Prof. Adriano Teixeira de Souza
  • 10. Um SD deve prover: ◦ sincronização de processos ◦ gerenciamento da comunicação interprocessos ◦ tratamento de deadlocks ◦ tratamento de outras situações não encontradas em sistemas centralizados Prof. Adriano Teixeira de Souza
  • 11. Usam melhor o poder de processamento  Apresentam um melhor desempenho  Permitem compartilhar dados e recursos  Podem apresentar maior confiabilidade  Permitem reutilizar serviços já disponíveis  Atendem um maior número de usuários  Balanceamento de carga  Escalabilidade Prof. Adriano Teixeira de Souza
  • 13. Desenvolver, gerenciar e manter o sistema.  Controlar o acesso concorrente a dados e a recursos compartilhados.  Evitar que falhas de máquinas ou da rede comprometam o funcionamento do sistema.  Garantir a segurança do sistema e o sigilo dos dados trocados entre máquinas  Lidar com a heterogeneidade do ambiente  ... Prof. Adriano Teixeira de Souza
  • 14. SO de Rede ◦ Provê ambiente no qual os usuários estão cientes da multiplicidade das máquinas, acessando-as remotamente ◦ Login remoto  SSH ◦ Transferência remota de arquivos  FTP ◦ Obriga que usuário mude de paradigma  Conjunto de comandos específico no FTP  Conjunto de comandos adequado do comando remoto no SSH Prof. Adriano Teixeira de Souza
  • 15. SO Distribuído ◦ Provê ambiente transparente, gerenciado pelo SO ◦ Migração de Dados  Duas abordagens  „FTP automático, com processamento local de uma cópia completa  Andrew File System  Distribuir, manipulando pequenas porções  NFS da Sun  SMB da Microsoft Prof. Adriano Teixeira de Souza
  • 16. SO Distribuído ◦ Migração de Computação  RPC  Troca de Mensagens ◦ Migração de Processos  Balanceamento de Carga  Aumento na velocidade de execução -> minimizar turnaround time  Preferência de hardware  Preferência de software  Acesso a dados Prof. Adriano Teixeira de Souza
  • 17. Aplicações que são funcionalmente separadas em processos distintos rodando em computadores diferentes sobre uma rede  Os processos interoperam para resolver um problema computacional comum  Consistem de interface de usuário, dados do usuário e os processos em diferentes computadores Prof. Adriano Teixeira de Souza
  • 18. Máquina 1 Máquina Aplicação Aplicação N Apliacação Serviço Serviço Aplicação Middleware para Programação Distribuída Sistema Operacional Sistema Operacional Hardware Hardware Prof. Adriano Teixeira de Souza
  • 19. Middleware é um software que permite elementos de aplicações interoperarem através de redes  Mesmo com as diferenças nos protocolos de comunicação, arquiteturas de sistemas, sistemas operacionais, bases de dados e outro serviços de aplicação Prof. Adriano Teixeira de Souza
  • 20. provê um modo para obter dados de um lugar (..) para outro lugar (..)  deve mascarar as diferenças existentes entre SOs, plataformas de Hardware e protocolos de rede  deve ocultar a complexidade do processo de transporte da rede, do desenvolvedor da aplicação Prof. Adriano Teixeira de Souza
  • 21. Fornecedores estão oferecendo serviços de sistemas distribuídos que têm interfaces de programação padronizadas e protocolos  tais serviços são chamados serviços de middleware, porque se situam “no meio”, num nível acima ao SO e ao software de rede e abaixo das aplicações específicas Prof. Adriano Teixeira de Souza
  • 22. Estratégias diferentes que permitem a comunicação entre aplicações distribuídas ◦ Sockets ◦ RPC - Remote Procedure Call ◦ RMI (Remote Method Invocation) ◦ CORBA (Commom Object Request Broker Architecture) ◦ Web Services Prof. Adriano Teixeira de Souza
  • 23. Client-Server Model ◦ Modelo tradicional e dominante a partir dos anos 80 ◦ Enfoque na LAN  Web-Based Distributed Computing Model ◦ Enfoque na Internet ◦ Processos ◦ Threads ◦ Objetos Distribuídos ◦ Agentes Prof. Adriano Teixeira de Souza
  • 24. Web-based Client-Server Computing ◦ proxy computing  Dados e programa são mandados do cliente para o servidor processar ◦ code shipping  O cliente faz uma requisição ao servidor que envia o programa para ser executado com dados locais do cliente  Ex: Applets rodando no browser ◦ remote computing  O cliente envia os dados para serem processados no servidor ◦ agent-based computing  three-tier model Prof. Adriano Teixeira de Souza
  • 25. Um SO multitarefa permite simular o paralelismo em um único processador, alternando a execução de processos  Um processador com núcleo múltiplo permite paralelismo real entre processos, executando múltiplas instruções por ciclo Prof. Adriano Teixeira de Souza
  • 26. Uma Placa-Mãe Multiprocessador permite que cada processador execute um processo Prof. Adriano Teixeira de Souza
  • 27. Tyan S2696 Prof. Adriano Teixeira de Souza
  • 28. Cluster é o nome dado a um sistema montado com mais de um computador, cujo objetivo é fazer com que todo o processamento da aplicação seja distribuído aos computadores, mas de forma que pareça com que eles sejam um computador só.  Com isso, é possível realizar processamentos que até então somente computadores de alta performance seriam capazes de fazer.  Prof. Adriano Teixeira de Souza
  • 29. Um Cluster é uma solução de baixo custo para processamento de alto desempenho Prof. Adriano Teixeira de Souza
  • 32. COULOURIS, George; DOLLIMORE, Jean, KINDBERG, Tim. “Distributed Systems: Concepts and Design”. 3 ed. Addison Wesley, 2001.  JIA, Weijia; ZHOU, Wanlei. “Distributed Network Systems – from concepts to implementations”. Boston: Springer, 2005.  SILBERSCHATZ, Abraham; GALVIN, Peter; GAGNE, Greg. “Sistemas Operacionais: Conceitos e Aplicações”. Rio de Janeiro: Campus, 2000. Prof. Adriano Teixeira de Souza