SlideShare a Scribd company logo
1 of 37
Download to read offline
Introdução a
Sistemas Distribuídos
Disciplina: Sistemas Operacionais
Prof. Esp. Rodrigo Ronner
rodrigoronner@gmail.com
Referência Básica
• Sistemas Distribuídos: Conceitos e Projetos 4ª edição. G.
Coulouris, J. Dollimore, T. Kindberg. Addison-Wesley, Editora
Bookman. 2007.
• Sistemas Distribuídos: Princípios e Paradigmas - 2ª edição, A.
S. Tanenbaum. Prentice-Hall, 2007.
Definição de SD
a) "Um sistema distribuído é uma coleção de
computadores autônomos conectados por uma
rede e equipados com um sistema de software
distribuído." [C]
b) "Um sistema distribuído é uma coleção de
computadores independentes que aparenta ao
usuário ser um computador único." [T]
Outra definição de SD
a) "Você sabe que tem um sistema distribuído quando a falha
de um computador do qual você nunca ouviu falar faz com
que você pare completamente de trabalhar." [Leslie Lamport]
Avanços tecnológicos
a) Invenção de redes de computadores de alta velocidade
(anos 70):
– Rede local (Local Area Network - LAN)
– Rede global (Wide Area Network - WAN)
b) Desenvolvimento de microprocessadores potentes (anos 80).
Estado da arte
a) É relativamente fácil agrupar um grande número de CPUs,
conectando-as por uma rede de alta velocidade (Relativo)
b) O software para sistemas distribuídos é completamente
diferente do software para sistemas centralizados e está
apenas começando a se desenvolver.
Exemplos de SD
a) Uma rede de estações de trabalho em uma universidade ou
companhia
b) Uma rede de computadores em uma fábrica
c) Um grande banco com muitas agências, cada qual com um
computadores e caixas automáticas
Exemplos de SD (continuação)
a) Sistema de reserva de passagens aéreas
b) Sistema de controle de estoque, vendas e entregas numa
cadeia de lojas
c) Serviços da Internet: Netnews, WWW
d) Sistemas de acesso a recursos de multimídia e de
conferência
Vantagens de SD sobre SC
a) Melhor relação custo/benefício
b) Capacidade de processamento além dos limites práticos de
SC (velocidade da luz, aquecimento)
c) Maior domínio de aplicações
d) Maior confiabilidade e disponibilidade
e) Crescimento gradativo da capacidade de processamento
Vantagens de SD sobre PCs
independentes
a) Compartilhamento de dados comuns entre usuários
b) Compartilhamento de recursos de hardware e software
c) Comunicação entre pessoas
d) Flexibilidade na distribuição de tarefas de acordo com as
aplicações
Desvantagens de SD
a) Falta de software adequado
b) Falhas e saturação da rede de comunicação podem eliminar
as vantagens de SD
c) Segurança pode ser comprometida: fácil acesso a dados e
recursos reservados
Hardware em SD
F ra ca m e n te
A c o p la d o
F o rte m e n te
A c o p la d o
S e q u e n t,
E n c o re
B a rra m e n to
U ltra c o m p u te r,
R P 3
C h a v e a m e n to
M u ltip ro c e s sa d o re s
(m e m ó ria c o m p a rtilh a d a )
E s ta ç õ e s
e m u m a L A N
B a rra m e n to
H yp e rc u b e ,
T ra n sp u te r
C h a v e a m e n to
M u ltic o m p u ta d o re s
(m e m ó ria s s e p a ra d a s)
C o m p u ta d o re s
d is trib u íd o s e p a ra le lo s
Software básico em SD
Acoplamento
de hardware
Acoplamento
de software
Sistemas operacionais de
rede
Fraco Fraco
Sistemas distribuídos
«autênticos»
Fraco Forte
Sistemas timesharing
para multiprocessadores
Forte Forte
Sistemas operacionais de rede
a) Estações de trabalho conectadas por uma LAN
b) Cada estação tem seu próprio sistema operacional
c) Ferramentas para login remoto e cópia de arquivos entre
estações
d) Servidores de arquivos e ferramentas para causar aparência
de arquivo local
Sistemas distribuídos autênticos
a) A rede toda tem aparência de ser um único sistema
timesharing: virtual uniprocessor, single-system image
b) Mecanismo global para comunicação entre processos
c) Gerenciamento de processos homogêneo
d) Sistema de arquivos homogêneo: NFS
Sistemas timesharing para
multiprocessadores
a) Fila única de processos prontos para execução: melhor
distribuição de carga
b) CPUs especializadas em: executar processos, controlar
periféricos, executar sistema operacional (gerenciar a
memória global)
c) Sistema de arquivos comporta-se de maneira semelhante a
um SC
Comparação de SW para SD
SO de rede SO
distribuído
SO para
multiproc.
Parece um SC Não Sim Sim
Mesmo SO Não Sim Sim
Cópias de SO N N 1
Comunicação Arquivos
compartilhados
Mensagens Memória
compartilhada
Protocolos
comuns
Sim Sim Não
Fila única de
execução
Não Não Sim
Características básicas de SD
a) Compartilhamento de recursos
b) Extensibilidade (openness)
c) Concorrência
d) Escalabilidade (crescimento gradativo suave)
e) Tolerância a falhas
f) Transparência
Compartilhamento de recursos
a) Componentes de hardware: discos, impressoras, ...
b) Componentes de software: arquivos, bancos de dados, ...
c) Modelos básicos:
– Modelo cliente-servidor
– Modelo baseado em objetos
Extensibilidade
a) Extensões de hardware: periféricos, memória, interfaces de
comunicação, ...
b) Extensões de software: funções de SO, protocolos de
comunicação, ...
c) Interfaces chaves são públicas (system calls)
d) Mecanismo uniforme de comunicação entre processos
Concorrência
a) Mais de um processo em execução a cada instante:
– Atividades separadas de usuários
– Independência de recursos
– Localização de processos servidores em computadores distintos
b) Acesso concorrente a recursos compartilhados requer
sincronização
Escalabilidade
a) Quantidade de trabalho envolvido no processamento de
qualquer requisição de acesso a um recurso compartilhado
independe do tamanho da rede
b) Técnicas: replicação, caching, servidores múltiplos
Tolerância a falhas
a) Falhas de hardware e software (em CPUs e redes):
programas param ou produzem resultados errados
b) Abordagens:
– Redundância de hardware (Ex: banco de dados replicado em diversos
servidores)
– Recuperação por software: manter dados permanentes sempre consistentes
Transparência
a) Esconder do usuário e do programador de aplicações a
separação de componenentes em um sistema distribuído, tal
que este seja visto como um sistema centralizado
b) Formas de transparência: acesso, localização, concorrência,
replicação, falha, migração, desempenho e escala
Transparência de acesso
Operações de acesso a objetos de
informação são idênticas para objetos
locais e remotos
Exemplo:
Operação de envio de uma mensagem
eletrônica especificando o destinatário
através de seu endereço Internet
Transparência de localização
Acesso a um objeto ocorre sem que seja
necessário o conhecimento de sua
localização
Exemplo:
Operação de envio de uma mensagem
eletrônica especificando o destinatário
através de seu endereço Internet
Outras formas de transparência
a) Concorrência: processos operam concorrentemente usando objetos de
informação comuns sem interferência entre eles.
b) Replicação: várias instâncias de um objeto de informação são usadas
sem requerer o conhecimento das réplicas pelos usuários e aplicações.
c) Falha: mascaramento de falhas de hardware e software.
d) Migração: movimento de objetos de informação dentro do sistema não
afeta a operação de usuários e aplicações.
e) Desempenho: reconfiguração do sistema para melhorar desempenho
conforme a carga varia.
f) Escala: o sistema e as aplicações podem expandir em escala sem
requerer modificações na estrutura do sistema ou nos algoritmos das
aplicações.
Chamada de Procedimento Remoto
a) Decorrente da necessidade de obter transparência
de acesso em sistemas distribuídos (o que não
ocorre com o uso dos procedimentos send e
receive);
– Criação do RPC (Chamada de Procedimento Remoto) para que
um processo da máquina A chame um procedimento da máquina
B, sendo então o processo de A suspenso e o procedimento
executado em B, sendo que nenhum aspecto da troca de
mensagens é visível para o programador!
Objetivo: Tornar mais fácil a implementação de Aplicações Distribuídas
•
Chamada de Procedimento Remoto
a) Principais problemas:
– Chamador e procedimento executam em máquinas diferentes, executando em
espaços de endereço diferentes;
– Necessário passar parâmetros e resultados;
– Em caso de falhas, cada uma das possíveis falhas causa problemas diferentes.
Chamada de Procedimento Remoto
Chamada Remota de Procedimento (RPC) ou Chamada de
Função ou Chamada de Subrotina
• Método de transferência de controle de parte de um
processo para outra parte
• Procedimentos => permite a divisão do programas em
vários pedaços
O Conceito de Procedimentos
- Um programa convencional consiste de um ou mais
procedimentos, geralmente organizados em uma hierarquia
de chamadas.
- Uma seta de um procedimento n para um procedimento m
significa uma chamada de n para m
RPC: Programa Distribuído
- A divisão ocorre entre o programa principal e o
procedimento 4.
- Um protocolo de comunicação é necessário para
implementar a chamada remota.
RPC: Modelo de Execução
a) O processo cliente fica bloqueado durante a
b) execução do procedimento remoto!
RPC
a) Objetivo: Tornar mais fácil a implementação de Aplicações Distribuídas
• Esconde o código de chamadas a rede em procedimentos chamados stubs
– Stubs -> procedimentos que contêm o código de chamadas a rede.
– Com stubs o RPC protege os programas de aplicação (cliente e
a) servidor) de preocupações com detalhes como sockets.
– O RPC inclui uma especificação para formato padrão dos dados (visando
interoperabilidade), e nos stubs acontece a conversão dos dados
• No RPC da Sun o padrão para a representação dos dados é o XDR (eXternal Data
Representation Standard)
– Os stubs são gerados automaticamente por algum compilador.
Exemplo: O RPCGen da Sun
Passos de uma Chamada Remota
de Procedimentos
Java RMI
• RMI consiste em chamada remota de procedimentos em
Java (onde as operações são representadas por métodos)
• Chamada Remota de Procedimento (RPC) ou Invocação
Remota de Método (RMI) ou Chamada Remota de Função
• Método de transferência de controle de parte de um processo
para outra parte
• Modelo de RPC é derivado da Chamada de Procedimentos
Convencionais
• Nome da API em Java para chamar métodos remotamente..
então RMI é o nome de uma API que faz RPC
• RMI é uma forma de fazer RPC
Java RMI
• Java Remote Method Invocation (RMI) é um protocolo
Java para comunicação entre processos
• Permite objetos Java invocar transparentemente métodos
de outros objetos (que podem estar em máquinas
diferentes – objetos remotos)
• Java RMI libera o programador de tratar de detalhes
como endereçamento e codificação/ decodificação de
mensagens

More Related Content

What's hot

Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Arthur Emanuel
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01thomasdacosta
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
01- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.001- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.0César Augusto Pessôa
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
Redes de Computadores
Redes de Computadores Redes de Computadores
Redes de Computadores claudioatx
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemasFelipe Oliveira
 
Arquitetura de projetos IoT
Arquitetura de projetos IoTArquitetura de projetos IoT
Arquitetura de projetos IoTFernando Veiga
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02thomasdacosta
 

What's hot (20)

Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
01- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.001- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.0
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Aula 03
Aula 03Aula 03
Aula 03
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
Protocolo TCP/IP
Protocolo TCP/IPProtocolo TCP/IP
Protocolo TCP/IP
 
Redes de Computadores
Redes de Computadores Redes de Computadores
Redes de Computadores
 
Planejamento rede
Planejamento rede Planejamento rede
Planejamento rede
 
SI - Comunicação
SI - ComunicaçãoSI - Comunicação
SI - Comunicação
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemas
 
Arquitetura de projetos IoT
Arquitetura de projetos IoTArquitetura de projetos IoT
Arquitetura de projetos IoT
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Computação em nuvem
Computação em nuvemComputação em nuvem
Computação em nuvem
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02
 

Viewers also liked

Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 
Capítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - CoulourisCapítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - CoulourisWindson Viana
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Arthur Emanuel
 
Capítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisCapítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisWindson Viana
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
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
 
Chamada remota de procedimentos .net
Chamada remota de procedimentos   .netChamada remota de procedimentos   .net
Chamada remota de procedimentos .netGabii Fonseca
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosPortal_do_Estudante_SD
 
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...Ramon Mayor Martins
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAASSistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAASAdriano Teixeira de Souza
 
O motivo no ato administrativo mestrado irene
O motivo no ato administrativo   mestrado ireneO motivo no ato administrativo   mestrado irene
O motivo no ato administrativo mestrado ireneIrene Patrícia Nohara
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosArthur Emanuel
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Arthur Emanuel
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebArthur Emanuel
 

Viewers also liked (20)

Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Capítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - CoulourisCapítulo1 - Introdução a Sistemas Distribuídos - Coulouris
Capítulo1 - Introdução a Sistemas Distribuídos - Coulouris
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 
Capítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisCapítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - Coulouris
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Chamada remota de procedimentos .net
Chamada remota de procedimentos   .netChamada remota de procedimentos   .net
Chamada remota de procedimentos .net
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidos
 
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
IES - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - Part...
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
 
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAASSistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
 
O motivo no ato administrativo mestrado irene
O motivo no ato administrativo   mestrado ireneO motivo no ato administrativo   mestrado irene
O motivo no ato administrativo mestrado irene
 
Matérias Concurso Auditor Fiscal do Trabalho
Matérias Concurso Auditor Fiscal do TrabalhoMatérias Concurso Auditor Fiscal do Trabalho
Matérias Concurso Auditor Fiscal do Trabalho
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 

Similar to Introdução à sistemas distribuídos

Aula 1 - Introducao.pdf
Aula 1 - Introducao.pdfAula 1 - Introducao.pdf
Aula 1 - Introducao.pdfRoberto Aragy
 
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
 
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
 
57933300-TI-Arquitetura-de-Rede-Concursos.pdf
57933300-TI-Arquitetura-de-Rede-Concursos.pdf57933300-TI-Arquitetura-de-Rede-Concursos.pdf
57933300-TI-Arquitetura-de-Rede-Concursos.pdfRicardoZorekDaniel1
 
Aula 2 arquitecturas de sgbd, utilizadores, perfis
Aula 2   arquitecturas de sgbd, utilizadores, perfisAula 2   arquitecturas de sgbd, utilizadores, perfis
Aula 2 arquitecturas de sgbd, utilizadores, perfisHélio Martins
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosCharles Fortes
 
Tecnologia da informacao
Tecnologia da informacaoTecnologia da informacao
Tecnologia da informacaoLuiz
 
Iades 2010 2014_37_questões_imprimir
Iades 2010 2014_37_questões_imprimirIades 2010 2014_37_questões_imprimir
Iades 2010 2014_37_questões_imprimirFlavio Rodrigues
 

Similar to Introdução à sistemas distribuídos (20)

Aula 1 - Introducao.pdf
Aula 1 - Introducao.pdfAula 1 - Introducao.pdf
Aula 1 - Introducao.pdf
 
Introducao.2s
Introducao.2sIntroducao.2s
Introducao.2s
 
EXERCÍCIOS 01.pdf
EXERCÍCIOS 01.pdfEXERCÍCIOS 01.pdf
EXERCÍCIOS 01.pdf
 
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
 
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
 
folha N1.ppt
folha N1.pptfolha N1.ppt
folha N1.ppt
 
57933300-TI-Arquitetura-de-Rede-Concursos.pdf
57933300-TI-Arquitetura-de-Rede-Concursos.pdf57933300-TI-Arquitetura-de-Rede-Concursos.pdf
57933300-TI-Arquitetura-de-Rede-Concursos.pdf
 
Aula 2 arquitecturas de sgbd, utilizadores, perfis
Aula 2   arquitecturas de sgbd, utilizadores, perfisAula 2   arquitecturas de sgbd, utilizadores, perfis
Aula 2 arquitecturas de sgbd, utilizadores, perfis
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 
Artigo Redes Jonnes
Artigo Redes JonnesArtigo Redes Jonnes
Artigo Redes Jonnes
 
Artigo Redes Jonnes
Artigo Redes JonnesArtigo Redes Jonnes
Artigo Redes Jonnes
 
Aula01 so
Aula01 soAula01 so
Aula01 so
 
Redes A
Redes ARedes A
Redes A
 
So cap01
So cap01So cap01
So cap01
 
Seminario - Versão Final
Seminario - Versão FinalSeminario - Versão Final
Seminario - Versão Final
 
Tecnologia da informacao
Tecnologia da informacaoTecnologia da informacao
Tecnologia da informacao
 
Iades 2010 2014_37_questões_imprimir
Iades 2010 2014_37_questões_imprimirIades 2010 2014_37_questões_imprimir
Iades 2010 2014_37_questões_imprimir
 
Sistema
SistemaSistema
Sistema
 
So cap01
So cap01So cap01
So cap01
 

More from Faculdade Mater Christi

Capítulo 6 e 8 comutação e multiplexação (3º unidade)
Capítulo 6 e 8   comutação e multiplexação (3º unidade)Capítulo 6 e 8   comutação e multiplexação (3º unidade)
Capítulo 6 e 8 comutação e multiplexação (3º unidade)Faculdade Mater Christi
 
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
Capítulo 5 e 4   transmissão analógica e digital (2º unidade)Capítulo 5 e 4   transmissão analógica e digital (2º unidade)
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)Faculdade Mater Christi
 
Capítulo 3 dados e sinais (1º unidade)
Capítulo 3   dados e sinais (1º unidade)Capítulo 3   dados e sinais (1º unidade)
Capítulo 3 dados e sinais (1º unidade)Faculdade Mater Christi
 
Capítulo 1 introdução a comunicação de dados(1º unidade)
Capítulo 1   introdução a comunicação de dados(1º unidade)Capítulo 1   introdução a comunicação de dados(1º unidade)
Capítulo 1 introdução a comunicação de dados(1º unidade)Faculdade Mater Christi
 
Capítulo 10 detecção e correção de erros
Capítulo 10   detecção e correção de errosCapítulo 10   detecção e correção de erros
Capítulo 10 detecção e correção de errosFaculdade Mater Christi
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processosFaculdade Mater Christi
 
Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógicoFaculdade Mater Christi
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuaisFaculdade Mater Christi
 
Capítulo 20 camada de rede - internet protocol
Capítulo 20   camada de rede - internet protocolCapítulo 20   camada de rede - internet protocol
Capítulo 20 camada de rede - internet protocolFaculdade Mater Christi
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Faculdade Mater Christi
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Faculdade Mater Christi
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Faculdade Mater Christi
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Faculdade Mater Christi
 

More from Faculdade Mater Christi (17)

Capítulo 6 e 8 comutação e multiplexação (3º unidade)
Capítulo 6 e 8   comutação e multiplexação (3º unidade)Capítulo 6 e 8   comutação e multiplexação (3º unidade)
Capítulo 6 e 8 comutação e multiplexação (3º unidade)
 
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
Capítulo 5 e 4   transmissão analógica e digital (2º unidade)Capítulo 5 e 4   transmissão analógica e digital (2º unidade)
Capítulo 5 e 4 transmissão analógica e digital (2º unidade)
 
Capítulo 3 dados e sinais (1º unidade)
Capítulo 3   dados e sinais (1º unidade)Capítulo 3   dados e sinais (1º unidade)
Capítulo 3 dados e sinais (1º unidade)
 
Capítulo 1 introdução a comunicação de dados(1º unidade)
Capítulo 1   introdução a comunicação de dados(1º unidade)Capítulo 1   introdução a comunicação de dados(1º unidade)
Capítulo 1 introdução a comunicação de dados(1º unidade)
 
Capítulo 10 detecção e correção de erros
Capítulo 10   detecção e correção de errosCapítulo 10   detecção e correção de erros
Capítulo 10 detecção e correção de erros
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processos
 
Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógico
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuais
 
Capítulo 2 modelos de redes
Capítulo 2   modelos de redesCapítulo 2   modelos de redes
Capítulo 2 modelos de redes
 
Capítulo 20 camada de rede - internet protocol
Capítulo 20   camada de rede - internet protocolCapítulo 20   camada de rede - internet protocol
Capítulo 20 camada de rede - internet protocol
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
 
Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)Conceitos de hardware e software cap 02 (i unidade)
Conceitos de hardware e software cap 02 (i unidade)
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 

Introdução à sistemas distribuídos

  • 1. Introdução a Sistemas Distribuídos Disciplina: Sistemas Operacionais Prof. Esp. Rodrigo Ronner rodrigoronner@gmail.com
  • 2. Referência Básica • Sistemas Distribuídos: Conceitos e Projetos 4ª edição. G. Coulouris, J. Dollimore, T. Kindberg. Addison-Wesley, Editora Bookman. 2007. • Sistemas Distribuídos: Princípios e Paradigmas - 2ª edição, A. S. Tanenbaum. Prentice-Hall, 2007.
  • 3. Definição de SD a) "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." [C] b) "Um sistema distribuído é uma coleção de computadores independentes que aparenta ao usuário ser um computador único." [T]
  • 4. Outra definição de SD a) "Você sabe que tem um sistema distribuído quando a falha de um computador do qual você nunca ouviu falar faz com que você pare completamente de trabalhar." [Leslie Lamport]
  • 5. Avanços tecnológicos a) Invenção de redes de computadores de alta velocidade (anos 70): – Rede local (Local Area Network - LAN) – Rede global (Wide Area Network - WAN) b) Desenvolvimento de microprocessadores potentes (anos 80).
  • 6. Estado da arte a) É relativamente fácil agrupar um grande número de CPUs, conectando-as por uma rede de alta velocidade (Relativo) b) O software para sistemas distribuídos é completamente diferente do software para sistemas centralizados e está apenas começando a se desenvolver.
  • 7. Exemplos de SD a) Uma rede de estações de trabalho em uma universidade ou companhia b) Uma rede de computadores em uma fábrica c) Um grande banco com muitas agências, cada qual com um computadores e caixas automáticas
  • 8. Exemplos de SD (continuação) a) Sistema de reserva de passagens aéreas b) Sistema de controle de estoque, vendas e entregas numa cadeia de lojas c) Serviços da Internet: Netnews, WWW d) Sistemas de acesso a recursos de multimídia e de conferência
  • 9. Vantagens de SD sobre SC a) Melhor relação custo/benefício b) Capacidade de processamento além dos limites práticos de SC (velocidade da luz, aquecimento) c) Maior domínio de aplicações d) Maior confiabilidade e disponibilidade e) Crescimento gradativo da capacidade de processamento
  • 10. Vantagens de SD sobre PCs independentes a) Compartilhamento de dados comuns entre usuários b) Compartilhamento de recursos de hardware e software c) Comunicação entre pessoas d) Flexibilidade na distribuição de tarefas de acordo com as aplicações
  • 11. Desvantagens de SD a) Falta de software adequado b) Falhas e saturação da rede de comunicação podem eliminar as vantagens de SD c) Segurança pode ser comprometida: fácil acesso a dados e recursos reservados
  • 12. Hardware em SD F ra ca m e n te A c o p la d o F o rte m e n te A c o p la d o S e q u e n t, E n c o re B a rra m e n to U ltra c o m p u te r, R P 3 C h a v e a m e n to M u ltip ro c e s sa d o re s (m e m ó ria c o m p a rtilh a d a ) E s ta ç õ e s e m u m a L A N B a rra m e n to H yp e rc u b e , T ra n sp u te r C h a v e a m e n to M u ltic o m p u ta d o re s (m e m ó ria s s e p a ra d a s) C o m p u ta d o re s d is trib u íd o s e p a ra le lo s
  • 13. Software básico em SD Acoplamento de hardware Acoplamento de software Sistemas operacionais de rede Fraco Fraco Sistemas distribuídos «autênticos» Fraco Forte Sistemas timesharing para multiprocessadores Forte Forte
  • 14. Sistemas operacionais de rede a) Estações de trabalho conectadas por uma LAN b) Cada estação tem seu próprio sistema operacional c) Ferramentas para login remoto e cópia de arquivos entre estações d) Servidores de arquivos e ferramentas para causar aparência de arquivo local
  • 15. Sistemas distribuídos autênticos a) A rede toda tem aparência de ser um único sistema timesharing: virtual uniprocessor, single-system image b) Mecanismo global para comunicação entre processos c) Gerenciamento de processos homogêneo d) Sistema de arquivos homogêneo: NFS
  • 16. Sistemas timesharing para multiprocessadores a) Fila única de processos prontos para execução: melhor distribuição de carga b) CPUs especializadas em: executar processos, controlar periféricos, executar sistema operacional (gerenciar a memória global) c) Sistema de arquivos comporta-se de maneira semelhante a um SC
  • 17. Comparação de SW para SD SO de rede SO distribuído SO para multiproc. Parece um SC Não Sim Sim Mesmo SO Não Sim Sim Cópias de SO N N 1 Comunicação Arquivos compartilhados Mensagens Memória compartilhada Protocolos comuns Sim Sim Não Fila única de execução Não Não Sim
  • 18. Características básicas de SD a) Compartilhamento de recursos b) Extensibilidade (openness) c) Concorrência d) Escalabilidade (crescimento gradativo suave) e) Tolerância a falhas f) Transparência
  • 19. Compartilhamento de recursos a) Componentes de hardware: discos, impressoras, ... b) Componentes de software: arquivos, bancos de dados, ... c) Modelos básicos: – Modelo cliente-servidor – Modelo baseado em objetos
  • 20. Extensibilidade a) Extensões de hardware: periféricos, memória, interfaces de comunicação, ... b) Extensões de software: funções de SO, protocolos de comunicação, ... c) Interfaces chaves são públicas (system calls) d) Mecanismo uniforme de comunicação entre processos
  • 21. Concorrência a) Mais de um processo em execução a cada instante: – Atividades separadas de usuários – Independência de recursos – Localização de processos servidores em computadores distintos b) Acesso concorrente a recursos compartilhados requer sincronização
  • 22. Escalabilidade a) Quantidade de trabalho envolvido no processamento de qualquer requisição de acesso a um recurso compartilhado independe do tamanho da rede b) Técnicas: replicação, caching, servidores múltiplos
  • 23. Tolerância a falhas a) Falhas de hardware e software (em CPUs e redes): programas param ou produzem resultados errados b) Abordagens: – Redundância de hardware (Ex: banco de dados replicado em diversos servidores) – Recuperação por software: manter dados permanentes sempre consistentes
  • 24. Transparência a) Esconder do usuário e do programador de aplicações a separação de componenentes em um sistema distribuído, tal que este seja visto como um sistema centralizado b) Formas de transparência: acesso, localização, concorrência, replicação, falha, migração, desempenho e escala
  • 25. Transparência de acesso Operações de acesso a objetos de informação são idênticas para objetos locais e remotos Exemplo: Operação de envio de uma mensagem eletrônica especificando o destinatário através de seu endereço Internet
  • 26. Transparência de localização Acesso a um objeto ocorre sem que seja necessário o conhecimento de sua localização Exemplo: Operação de envio de uma mensagem eletrônica especificando o destinatário através de seu endereço Internet
  • 27. Outras formas de transparência a) Concorrência: processos operam concorrentemente usando objetos de informação comuns sem interferência entre eles. b) Replicação: várias instâncias de um objeto de informação são usadas sem requerer o conhecimento das réplicas pelos usuários e aplicações. c) Falha: mascaramento de falhas de hardware e software. d) Migração: movimento de objetos de informação dentro do sistema não afeta a operação de usuários e aplicações. e) Desempenho: reconfiguração do sistema para melhorar desempenho conforme a carga varia. f) Escala: o sistema e as aplicações podem expandir em escala sem requerer modificações na estrutura do sistema ou nos algoritmos das aplicações.
  • 28. Chamada de Procedimento Remoto a) Decorrente da necessidade de obter transparência de acesso em sistemas distribuídos (o que não ocorre com o uso dos procedimentos send e receive); – Criação do RPC (Chamada de Procedimento Remoto) para que um processo da máquina A chame um procedimento da máquina B, sendo então o processo de A suspenso e o procedimento executado em B, sendo que nenhum aspecto da troca de mensagens é visível para o programador! Objetivo: Tornar mais fácil a implementação de Aplicações Distribuídas •
  • 29. Chamada de Procedimento Remoto a) Principais problemas: – Chamador e procedimento executam em máquinas diferentes, executando em espaços de endereço diferentes; – Necessário passar parâmetros e resultados; – Em caso de falhas, cada uma das possíveis falhas causa problemas diferentes.
  • 30. Chamada de Procedimento Remoto Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina • Método de transferência de controle de parte de um processo para outra parte • Procedimentos => permite a divisão do programas em vários pedaços
  • 31. O Conceito de Procedimentos - Um programa convencional consiste de um ou mais procedimentos, geralmente organizados em uma hierarquia de chamadas. - Uma seta de um procedimento n para um procedimento m significa uma chamada de n para m
  • 32. RPC: Programa Distribuído - A divisão ocorre entre o programa principal e o procedimento 4. - Um protocolo de comunicação é necessário para implementar a chamada remota.
  • 33. RPC: Modelo de Execução a) O processo cliente fica bloqueado durante a b) execução do procedimento remoto!
  • 34. RPC a) Objetivo: Tornar mais fácil a implementação de Aplicações Distribuídas • Esconde o código de chamadas a rede em procedimentos chamados stubs – Stubs -> procedimentos que contêm o código de chamadas a rede. – Com stubs o RPC protege os programas de aplicação (cliente e a) servidor) de preocupações com detalhes como sockets. – O RPC inclui uma especificação para formato padrão dos dados (visando interoperabilidade), e nos stubs acontece a conversão dos dados • No RPC da Sun o padrão para a representação dos dados é o XDR (eXternal Data Representation Standard) – Os stubs são gerados automaticamente por algum compilador. Exemplo: O RPCGen da Sun
  • 35. Passos de uma Chamada Remota de Procedimentos
  • 36. Java RMI • RMI consiste em chamada remota de procedimentos em Java (onde as operações são representadas por métodos) • Chamada Remota de Procedimento (RPC) ou Invocação Remota de Método (RMI) ou Chamada Remota de Função • Método de transferência de controle de parte de um processo para outra parte • Modelo de RPC é derivado da Chamada de Procedimentos Convencionais • Nome da API em Java para chamar métodos remotamente.. então RMI é o nome de uma API que faz RPC • RMI é uma forma de fazer RPC
  • 37. Java RMI • Java Remote Method Invocation (RMI) é um protocolo Java para comunicação entre processos • Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar em máquinas diferentes – objetos remotos) • Java RMI libera o programador de tratar de detalhes como endereçamento e codificação/ decodificação de mensagens