1 Sistema Distribuído Sistema Distribuído

Propaganda
Sistema Distribuído
„
Sistema Distribuído
Conjunto de máquinas (CPU + memória)
interligadas em rede.
„
Sistema operacional distribuído trata este
conjunto como um único sistema
computacional.
Processador 1
Memória 1
Processador 1
Memória 1
Processador 2
Memória 2
Processador 3
Memória 3
Processador 2
Memória 2
Disco
Disco
Estação 1
Estação 2
Rede
Aplicações Distribuídas
„
Aplicações que “se espalham” por várias
máquinas.
„
„
„
aplicações concorrentes onde cada processo que
compõe a aplicação pode ser executado em uma
máquina arbitrária
Em sistemas distribuídos: qualquer aplicação
pode ser executada de forma distribuída.
Em sistemas operacionais convencionais:
aplicação deve ser programada de forma
explicitamente distribuída.
Processador 3
Memória 3
Disco
Estação 3
rede
Conceitos Básicos
„
Paralelismo:
„
„
„
vários processos executando simultaneamente em vários
computadores compartilhando ou não memória
Só é possível em Sistemas multiprocessadores.
Pseudo-Paralelismo (Paralelismo Abstrato):
„
„
vários processos compartilhando um mesmo processador
ou outros recursos de um computador.
Ilusão de que vários programas estão rodando ao mesmo
tempo
1
Sistema Distribuído X Sistema
Paralelo
Sistemas Paralelos
Sistema Distribuído:
Sistema todo age como um sistema clássico de processador único
Memória
Processador 1
Memória 1
E (pronto)
D (pronto)
C (executando)
Processador 2
Memória 2
Processador 3
Memória 3
B (executando)
A (executando)
Processo A
Cache
Processo B
Cache
Processo C
Cache
Fila Execução: D, E
Red
Disco
Sistema Paralelo ou Memória Compartilhada:
Sistema Operacional
Processador 1
Processador 2
Processador 3
Barramento
Memória
Paralelização de Problemas
„
„
„
„
Diminuição do tempo necessário para obter
o resultado de uma computação;
Um programa paralelo poderia igualmente
ser executado em um sistema distribuído ou
em uma máquina paralela;
Execução em sistema distribuído permite
que o recurso de processamento tenha
várias funções;
Viabilidade depende da quantidade de
comunicação necessária.
Sistemas Operacionais de Rede
„
„
Conjunto de máquinas interligadas em rede.
Sistema operacional
comunicação remota
inclui
funções
para
Executar processo X na estação 2
Processador 1
Memória 1
Processador 3
Memória 3
Processador 2
Memória 2
Disco
Disco
Estação 1
Estação 2
Disco
Estação 3
rede
2
Sistemas Operacionais de Rede
„
Login Remoto
„
„
SO de Rede X SO Distribuído
„
TELNET
„
„
Transferência de Arquivos
„
Sistema Distribuído
FTP
„
Sistema em Rede
„
Concorrência
„
Coleção de computadores independentes
Exemplos de Concorrência
Programa Concorrente:
„
„
„
Conjunto de Computadores que age como uma
única máquina (Sistema Coeso)
Requisito Fundamental: Transparência
Concorrência = várias tarefas em progresso ao mesmo
tempo
programas executados em paralelismo ou pseudoparalelismo
Tipicamente, em pseudo-paralelismo o processo não
tem controle sobre o instante em que perderá o
controle da CPU
Sistema
Operacional
gerenciamento de
arquivos
gerenciamento de
memória
suporte a
comunicação
aplicação: acesso a base de dados
usuário interativo
consultando base
administrador
consultando log
programa batch
atualizando dados
3
Sistemas Distribuídos
Conceitos Básicos
Finalidade
„
Compartilhamento de Dados
Sistema Distribuído:
Processador 1
Memória 1
Processador 2
Memória 2
Processador 3
Memória 3
Sistema Paralelo ou Memória Compartilhada:
Processador 1
Processador 2
„
Compartilhamento de Recursos (Periféricos,
CPU)
„
Comunicação entre Pessoas
„
Flexibilidade
Processador 3
Memória
Sistemas Distribuídos
Características
„
„
„
Mecanismo de Comunicação entre Processos
Kernels idênticos em cada máquina do
Sistema
Sistemas Distribuídos
Problemas
„
Pouco Software
„
Dependência da Rede
Mesmo Gerenciamento de Processos em
todas as máquinas
„
„
„
Saturação e Falhas na rede afetam o sistema
Segurança
Mesmo Sistema de Arquivos
„
O fácil acesso aos dados também se aplica aos dados
secretos
4
Sistemas Distribuídos
Transparência
Requisitos de Software
„
Transparência
„
Flexibilidade
„
Confiabilidade
„
Desempenho
„
Escalabilidade
Transparência
„
Localização
„
Migração
„
Replicação
„
A Nível de Usuário
„
A Nível do Programador
Transparência de Localização
„
„
Usuário não precisa saber onde se encontra o
recurso
Nome do Recurso não incorpora a sua
localização
arq1.c
arq1.c
arq1.c
„
Concorrência
„
Paralelismo
oxum
oxalá
obaluaê
logum-ede
5
Transparência de Migração
„
Transparência de Replicação
Liberdade de Migração
„
„
„
Usuário não precisa saber da replicação
Sem mudança de nome
Sem conhecimento do usuário
arq1.c
arq1.c
arq1.c
arq1.c
arq1.c
arq1.c
arq1.c
oxum
oxum
oxalá
obaluaê
Transparência de Concorrência
„
oxalá
obaluaê
logum-ede
logum-ede
Sistema se encarrega da Exclusão Mútua ao
recurso compartilhado
Transparência de Paralelismo
„
Sistema Operacional + Compilador efetivem
o paralelismo
6
Flexibilidade
Kernel Monolítico x Microkernel
„
Kernel Monolítico
Vantagens do MicroKernel
„
Usuário
kernel
Monolítico
„
Inclui Arquivos,
Diretórios e
Gerenciamento de Processos
„
Micro Kernel
„
Usuário
Servidor de
Arquivos
Servidor de
Diretório
Servidor de
Processos
Microkernel
Microkernel
Microkernel
Microkernel
Interface modular para cada serviço
simplicidade no adicionamento ou mudança de
um serviço
Flexibilidade
Vantagem do Kernel Monolítico
„
Desempenho
Rede
Confiabilidade
„
Disponibilidade
„
Segurança
„
Tolerância a Falhas
Classes de Aplicações
Distribuídas
„
Aplicações Inerentemente Distribuídas
„
Aumento de Desempenho
„
Aplicações Tolerantes a Falha
„
Aplicações usando especialização funcional
7
Aplicações de Natureza
Distribuída
„
„
„
„
„
sistemas para comunicação: correio
eletrônico, teleconferência, www, etc;
programas para manutenção da própria
rede: algoritmos de roteamento,
gerenciamento da rede, etc;
sistemas operacionais distribuídos;
ambientes de trabalho em grupo:
desenvolvimento de software e de
documentos;
jogos...
Requisitos para Suporte a
Programação Distribuída
„
controle do uso de múltiplos processadores
Distribuição Funcional
„
„
cooperação entre os processadores
(comunicação e sincronização)
potencial para detectar e recuperar uma
falha parcial do Sistema
„
sistemas de arquivos
„
processamento numérico
„
capacidade de memória
Processo
„
„
„
Determinadas
máquinas
podem
ter
configurações de hardware ou software mais
apropriadas para execução de dadas tarefas:
„
Programa em execução
Conceito central de Sistemas Operacionais
Possui todas as informações necessárias
para executar um programa:
„
„
„
„
„
„
um programa executável
seus dados
seu contador de programa
sua pilha de execução
registradores
etc.
8
Processo
„
„
Processo
Em um Sistema de Tempo Comparilhado
(Timesharing) periodimente o SO pára de executar
um processo e começa a executar outro processo
(realiza preempção)
Todas as informações sobre cada processo são
armazenadas na Tabela de Processos
„
Processos Daemon: (UNIX)
„
„
é um processo que executa em “background”
esperando que algum evento ocorra para que ele
possa realizar alguma tarefa
Exemplo:
Daemon de Impressão
Processos
D
C
B
A
Tempo
9
Download