aula 4
DESCRIPTION
Sistemas DistribuídosTRANSCRIPT
API PARA PROTOCOLOS INTERNET
• Comunicação entre processos
• Toda feita com base nas primitivas send e receive
• Características
• Comunicação Sincrona ou Assincrona
• Destinos de mensagem
• Confiabilidade
• Ordenamento
SISTEMAS DISTRIBUÍDOS
Comunicação
• Comunicação Síncrona ou Assíncrona
• Síncrona:
• Remetente e Destino são sincronizados a cada mensagem
• Tanto o Send quanto o Receive são operações
bloqueantes
• Quando é feito um envio o remetente fica bloqueado até
que ele receba a recepção correspondente
• Quando um receive é executado o processo fica
bloqueado até que a mensagem chegue
API PARA PROTOCOLOS INTERNET
SISTEMAS DISTRIBUÍDOS
Comunicação
• Comunicação Síncrona ou Assíncrona
• Síncrona:
• Remetente e Destino são sincronizados a cada mensagem
• Tanto o Send quanto o Receive são operações
bloqueantes
• Quando é feito um envio o remetente fica bloqueado até
que ele receba a recepção correspondente
• Quando um receive é executado o processo fica
bloqueado até que a mensagem chegue
API PARA PROTOCOLOS INTERNET
SISTEMAS DISTRIBUÍDOS
Comunicação
• Comunicação Síncrona ou Assíncrona
• Assíncrona:
• Em ambientes multi-threads não há desvantagens em
utilizar receive bloqueante.
• A programação assíncrona envolve uma série de
complexidades por ter que reagir a informações
recebidas fora do seu fluxo
API PARA PROTOCOLOS INTERNET
SISTEMAS DISTRIBUÍDOS
Comunicação
• Comunicação Síncrona ou Assíncrona
• Assíncrona:
• Send é não bloqueante: Processo é liberado assim que
mensagem é copiada para o buffer
• Receive pode ser ou não bloqueante
• Receive não bloqueante: o processo é liberado logo
após a chamada. O buffer é reservado e o processo
será avisado logo que tiver dados.
API PARA PROTOCOLOS INTERNET
SISTEMAS DISTRIBUÍDOS
Comunicação
Ao trocar mensagens duas ou mais máquinas devemconcordar em, por exemplo:◦ No nível de sinal que será colocado na interface (característicafísica);
◦ Onde começa e onde termina os bits de que compõe a mensagem(característica de enlace de dados);
◦ Onde, quando e como os erros serão detectados;
◦ Como dados primitivos como caracteres, inteiros, números serãorepresentados e com que precisão.
◦ Etc.
Portanto, para torna fácil é necessário que os sistemasobedeçam um padrão de interfaces e regras de comunicação(Sistema Aberto).
SISTEMAS DISTRIBUÍDOS
Comunicação
1. Cenário
2. Depandabilidade
3. Defeito, Erro e Falha
4. Tolerância a Falha
5. Tipos de Falha
6. Técnicas de Dependabilidade
7. Mascaramento
8. Redundância
SISTEMAS DISTRIBUÍDOS
Introdução à tolerância a falha
• Em sistemas críticos a falha de um dos componentes podeimplicar em danos catastróficos: perdas de grandes somasde dinheiro, desastres ambientais, perdas de vidas humanasetc.
SISTEMAS DISTRIBUÍDOS
Introdução à tolerância a falha
Sistemas Críticos
• Sistemas de uma máquina (não-distribuídos) –
uma falha é quase sempre total;
• Sistemas distribuídos – pode ocorrer uma falha
parcial, quando um componente do sistema
falha.
• Objetivo: recuperar automaticamente de falhas
parciais sem afetar seriamente o desempenho global.
SISTEMAS DISTRIBUÍDOS
Introdução à tolerância a falha
• Atribuir confiança no funcionamento do sistema é
fundamental quando se fala em sistemas críticos.
• Dependability (Confiança no Funcionamento)
• Mede a confiança que se pode atribuir ao serviço
entregue pelo sistema.
• O serviço entregue pelo sistema determina o
comportamento do sistema, ou seja, como o
sistema é percebido pelos outros sistemas que
interagem com ele (exemplo, usuários).
SISTEMAS DISTRIBUÍDOS
Introdução à tolerância a falha
Confiança no funcionamento
• Tolerância a falhas está fortemente relacionada a
sistemas confiáveis. Confiabilidade é um termo que
abrange uma série de requisitos:
• Disponibilidade – O sistema está pronto para ser
usado imediatamente?
• Confiabilidade – O sistema funciona continuamente
sem falhas?
SISTEMAS DISTRIBUÍDOS
Dependability
• Tolerância a falhas está fortemente relacionada a
sistemas confiáveis. Confiabilidade é um termo que
abrange uma série de requisitos:
• Segurança – Se o sistema deixar de funcionar
corretamente por um certo tempo acontecerá algo
“catastrófico”?
• Capacidade de Manutenção – Um sistema que
falhou pode ser consertado facilmente?
SISTEMAS DISTRIBUÍDOS
Dependability
• Defeito – se um sistema não pode cumprir suas promessas, apresenta defeito. Ex.: Não consegue garantir as consistências prometidas.
• Erro – parte do estado de um sistema que pode levar a um defeito. Ex.: Pacotes danificados.
• Falha – é a causa de um erro. Ex.: Um meio de transmissão errado ou ruim pode danificar pacotes.
SISTEMAS DISTRIBUÍDOS
Defeito, Erro, Falha
• Tolerância a falhas: um sistema pode prover seus serviços mesmo na presença de falhas.
• Tipos de falhas:
• Falha transiente – ocorre uma vez e desaparece.
• Falha intermitente – ocorre, por um período indeterminado, reaparece, e assim por diante.
• Falha permanente – continua a existir até que o componente faltoso seja substituído.
SISTEMAS DISTRIBUÍDOS
Tolerância a falha
• Para melhor identificar as falhas, foram desenvolvidos diversos
esquemas de classificação, entre eles, o quadro abaixo:
SISTEMAS DISTRIBUÍDOS
Tipos de falha
Poderia ser considerado neste grupo a “segurança”, pois
intrusões maliciosas também podem acarretar em falhas
nos sistemas. (Taíse 2002 p. ).
SISTEMAS DISTRIBUÍDOS
Técnicas de Dependabilidade
Classificação em 4 fases de aplicação: detecção, confinamento, recuperação e tratamento.
SISTEMAS DISTRIBUÍDOS
Fases de Aplicação das Técnicas
O mascaramento pode ser considerado com uma técnica a parte e garante ao sistema respostas corretas mesmo na presença de falhas.
SISTEMAS DISTRIBUÍDOS
Mascaramento
• Para o sistema ser tolerante a falhas, as ocorrências destas devem ser ocultas de outros processos e dos usuários.
• A técnica fundamental para mascarar falhas é usar redundância:
• Redundância de informação – bits extras para recuperação de pacotes (Hamming);
• Redundância de tempo – executar novamente uma ação, se for preciso.
• Redundância física – adicionar equipamentos ou processos extras para possibilitar tolerância a perda ou mal funcionamento de alguns componentes.
SISTEMAS DISTRIBUÍDOS
Mascaramento de falha por redundância
Redundância
NOMEAÇÃO1. Nomes, identificadores e endereços
2. Nomeação simples
3. Nomeação estruturada
4. Nomeação baseada em atributo
SISTEMAS DISTRIBUÍDOS
NOMES, IDENTIFICADORES E ENDEREÇOS
•Nome: cadeia de bits ou caracteres usada para referenciar uma entidade.
• Entidade: “praticamente qualquer coisa”: hospedeiros, impressoras, discos, arquivos.
• Ponto de Acesso: um tipo de entidade especial que possibilita acesso para agir sobre uma entidade.
• Endereço: Nome de um ponto de acesso.
SISTEMAS DISTRIBUÍDOS
NOMES, IDENTIFICADORES E ENDEREÇOS
• Um ponto de acesso é fortemente associado a uma entidade;
• Necessário definir um nome que seja independente dos endereços da entidade.• Transparência de localização
• Necessário definir um nome construído para ser usados por seres humanos, normalmente formados por cadeias de caracteres.• nome amigável a seres humanos
SISTEMAS DISTRIBUÍDOS
NOMES, IDENTIFICADORES E ENDEREÇOS
• Como resolvemos nomes e identificadores para
endereços?
• Mantendo uma vinculação nome-endereço.
• Três classes diferentes de sistemas de nomeação:
1. Identificadores resolvidos para endereços (Nomeação
Simples);
2. Nomes amigáveis a seres humanos (Nomeação
Estruturada);
3. Nomes descritivos (Nomeação Descritiva)
SISTEMAS DISTRIBUÍDOS
NOMES, IDENTIFICADORES E ENDEREÇOS
• Identificador: Um nome que tem as seguintes propriedades:
1. Um identificador referencia, no máximo, uma entidade;
2. Cada entidade é referenciada por, no máximo, um identificador;
3. Um identificador sempre referencia a mesma entidade, isto é, nunca é reutilizado.
• Endereço Ethernet: cadeia aleatória de 48 bits;
• Endereços de memória: cadeias de 32 ou 64 bits.
SISTEMAS DISTRIBUÍDOS
NOMEAÇÃO1. Nomes, identificadores e endereços
2. Nomeação simples
3. Nomeação estruturada
4. Nomeação baseada em atributo
SISTEMAS DISTRIBUÍDOS
NOMEAÇÃO SIMPLES
• Identificadores são, em muitos casos, cadeias
aleatórias de bits (nomes não estruturados ou
simples);
• Como nomes simples podem ser resolvidos?
• Soluções simples aplicáveis somente em redes
locais:
• Broadcasting e multicasting
• Ponteiros repassadores
• Possuem problemas de escalabilidade!
SISTEMAS DISTRIBUÍDOS
NOMEAÇÃO ESTRUTURADAESPAÇOS DE NOMES
• Nomeação estruturada é usada para facilitar a interface com humanos.
• Nomes são organizados em espaços de nomes.
• Uso de grafos direcionados rotulados com dois tipos de nós:
• Nó-folha: (entidade nomeada, não tem ramos de saída)
• Nó de diretório: (possui vários ramos de saída, cada um rotulado com um nome.
• Armazena tabelas de diretório que é um par(rótulo do ramo, identificador do nó).
• Particularidade: Um nó que não tem ramos de entrada, apenas de saída, é denominado raiz.
SISTEMAS DISTRIBUÍDOS
NOMEAÇÃO ESTRUTURADAIMPLEMENTAÇÃO/DISTRIBUIÇÃO DE ESPAÇOS DE NOMES
• Para implementar um espaço de nomes, o mesmo deve ser dividido em camadas lógicas (três sugeridas):
1. Camada Global
– Nós do nível mais alto (raiz e nós próximos)
– Caracterizados por sua estabilidade.
2. Camada Administrativa
– Nós de diretório gerenciados por uma organização única.
– Relativamente estáveis (mudanças Adm. ≥ Global)
3. Camada Gerencial
– Podem representar hospedeiros de rede local.
– Caracterizados por mudança periódica
• Necessário estabelecer requisitos de desempenho e disponibilidade.
SISTEMAS DISTRIBUÍDOS
NOMEAÇÃO BASEADA EM ATRIBUTO
• Independência de localização (nomes simples) e ser
amigável a seres humanos (nomes estruturados) é
insuficiente: entra em questão a busca eficiente.
• Necessário, então, fornecer descrições a entidades:
uma das possíveis abordagens é fornecer
descrições a partir de termos de pares (atributo,
valor), o que é denominado nomeação baseada
em atributos.
SISTEMAS DISTRIBUÍDOS
NOMEAÇÃO BASEADA EM ATRIBUTOSERVIÇOS DE DIRETÓRIO
• Serviços de diretório é a denominação de um sistema baseado em atributos, enquanto sistemas que suportam nomeação estruturada são denominados sistemas de nomeação.
• Para sistemas distribuídos, um contexto relevante é a RDF(resource description framework, ou estrutura de descrição de recurso).• Recursos são descritos como triplas (sujeito,predicado,objeto).
Ex.: (Pessoa,nome,Alice)
• O sujeito, o predicado ou o objeto podem ser os recursos propriamente ditos ou referências para os mesmos (URL).
SISTEMAS DISTRIBUÍDOS