Introdução - DIMAp/UFRN

Propaganda
Introdução
Definição de um Sistema Distribuído (1)
Um sistema distribuído é:
Uma coleção de computadores
independentes que se
apresenta para os usuários
como um único sistema
coerente.
Definição de um Sistema Distribuído (2)
Transparência em um sistema distribuído
Problemas de escalabilidade
Problemas de escalabilidade
Características de problemas descentralizados:
• Nenhuma máquina tem a informação
completa do estado do sistema
• Máquinas tomam decisões baseadas nas
informações locais
• Falha em uma máquina não deve “afetar” o
algoritmo
• Não existe um relógio global
Técnicas / Escala(1)
1.4
Técnicas / Escala(2)
Conceitos de Hardware
1.6
Diferentes organizações para memórias em sistemas de computadores
distribuídos
Multiprocessadores (1)
1.7
Uma estrutura baseada em barramento.
Multiprocessadores (2)
1.8
a) Switch barras cruzadas
b) Rede de Switches
Sistemas de multicomputadores
homogêneos
1-9
a) Grade
b) Hipercubo
Conceitos de Software
Sistema
Descrição
Objetivos
DOS
Fortemente acoplado / SO para
multiprocessadores e multicomputadores
homogêneos
Abstração /
gerência de
recursos de HW
NOS
Fracamente acoplados / SO para
multicoomputadores heterogêneos (LAN e
WAN)
Serviços locais
para clientes
remotos
Middleware
Camada adicional aos NOS implementando
serviços de propósitos gerais
Transparência de
distribuição
• DOS (Distributed Operating Systems)
• NOS (Network Operating Systems)
Sistemas Operacionais para um único
processador
1.11
Separação do código de Aplicações / SO através do
microkernel.
Sistemas Operacionais /
Multiprocessadores (1)
monitor Counter {
private:
int count = 0;
public:
int value() { return count;}
void incr () { count = count + 1;}
void decr() { count = count – 1;}
}
Um monitor para proteger acessos concorrentes a variáveis inteiras
Sistemas Operacionais /
Multiprocessadores (2)
monitor Counter {
private:
int count = 0;
void decr() {
if (count ==0) {
int blocked_procs = 0;
blocked_procs = blocked_procs + 1;
condition unblocked;
wait (unblocked);
public:
blocked_procs = blocked_procs – 1;
int value () { return count;}
}
void incr () {
else
if (blocked_procs == 0)
count = count + 1;
else
count = count – 1;
}
}
signal (unblocked);
}
A Um monitor para proteger acessos concorrentes a
variáveis inteiras com primitivas bloqueio/desbloqueio
SO / multicomputadores-1
1.14
Estrutura Geral de um Sistema Operacional para um ambiente
com multicomputadores
SO / multicomputadores-2
1.15
Pontos possíveis para armazenamento/bloqueios na troca de mensagens.
Ponto de sincronização
Buffer Sender
Comunicação confiável
garantida?
Block sender until buffer not full
Sim
Não necessariamente
Block sender until message sent
Não
Não necessariamente
Block sender until message received
Não
Necessário
Block sender until message delivered
Não
Necessário
Problemas com a concorrência
Tipicamente, em programas concorrentes os processos
não têm controle sobre o instante em que perderão o
processador.
Portanto, é preciso ter controle no uso de múltiplos
processadores e recursos.
Requisitos para dar suporte a:
• cooperação entre os processos
(comunicação e sincronização)
• potencial para detectar e recuperar uma
falha parcial do Sistema
Conceito básico de processo
Um processo é um programa em execução
Abstração de Sistemas Operacionais
Mantém as informações necessárias para o controle
da execução de um programa:
• código executável
• dados
• contador de programa
• pilha de execução
• registradores
• etc.
Sistema de Memória Compartilhada
Distribuída (1)
a)
Páginas do espaço de
endereçamento
distribuídas entre
quatro máquinas
b)
Situação após a
CPU 1 referenciar a
página 10
c)
Situação com uso de
réplicas caso a
página 10 seja read
only
Sistema de Memória Compartilhada
Distribuída (2)
1.18
Compartilhamento falso de uma página entre dois processos
independentes
Sistema Operacional de Rede(1)
1-19
Estrutura geral de um sistema operacional de rede.
Sistema Operacional de Rede(2)
1-20
Dois clientes e um servidor em um sistema operacional de rede.
Sistema Operacional de Rede(3)
1.21
Diferentes clientes podem montar servidores em diferentes locais.
Papel do Middleware
1-22
Estrutura geral do papel da camada middleware em um sistema
distribuído
Middleware / Sistemas Abertos
1.23
Em sistemas distribuidos abertos baseados em tecnologias de
middleware, os protocolos usados por cada camada do
middleware devem ser os mesmos, assim como as interfaces
oferecidas para as aplicações.
Comparação entre as abordagens
DOS
Item
Grau de transparência
Mesmo SO nos nós
Número de cópias do SO
Base p/ comunicação
Gerenciamento de
Recursos
Escalabilidade
Nível de abertura
SO redes
SO baseados
em
Middleware
Multiproc.
Multicomp.
Muito alto
Alto
Baixo
Alto
Sim
Sim
Não
Não
1
N
N
N
Shared
memory
Messages
Files
Específicas do
modelo
Global,
Centralizado
Global,
distribuido
Por nó
Por nó
Não
Moderada
Sim
Variável
Fechado
Fechado
Aberto
Aberto
Download