Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação Sistemas Distribuídos Conceitos básicos Sistemas distribuídos Necessidade de realizar tarefas com maior intensidade. Opções: Trabalhar mais Trabalhar de uma maneira mais eficiente Pedir ajuda Sistemas distribuídos Sistemas distribuídos se diferenciam dos demais computadores pelo acoplamento fraco entre os processadores, ou seja, os computadores não tem acesso a uma memória comum. Toda a interação deve ser realizada por troca de mensagens através de canais de comunicação Sistemas distribuídos sem memória compartilhada sem relógio global modelos modelo físico processador relógio local memória local volátil armazenamento não volátil interface de rede software nodos e rede modelo lógico Processos e canais Sistemas distribuídos: modelos Sistemas distribuídos: modelos Modelo físico Comunicação: topologias ponto a ponto Topologia barramento bus, barra ou via Modelo lógico... cada processo pode estar em um nodo diferente aplicação distribuída conjunto de processos concorrentes processos cooperam para realizar uma computação cada processo é seqüencial todos os processos avançam na execução progresso finito nada pode ser dito sobre velocidades relativas entre os processos Modelo lógico... Rede completamente conectada topologia não é considerada Processos e canais existe um canal entre quaisquer dois processos que interagem canais com buffer infinito e livres de erros canais entregam mensagens na ordem que foram enviadas (ordem preservada no canal) carac. não necessariamente válidas para o meio físico Modelo lógico... ordenação de mensagens ordem das mensagens é preservada em um canal nada é estabelecido sobre mensagens que chegam a um nodo vindos de diferentes canais não existe ordenação total de mensagens, apenas ordenação parcial razão: retardos nos canais (delay) Canal Canais entre múltiplos processos Sistemas síncronos e assíncronos definidos pela existência de limites de tempo sistema síncrono bounded-time model existe um limite de tempo finito e conhecido sistema correto opera dentro desse limite sistema assíncrono time-free model não existe um limite de tempo impossível determinar se o sistema está simplesmente atrasado por sobrecarga ou se está com defeito Vantagem do modelo síncrono detecção de falha falha de um componente do sistema pode ser deduzida pela ausência de resposta time-out usado para detectar defeitos em nodos e perda de mensagens se um nodo não responde após certo intervalo de tempo sistema síncrono - nodo com defeito sistema assíncrono - nada se pode afirmar Vantagem do modelo assíncrono algoritmos desenvolvidos para esse modelo são mais “genéricos” e portáveis independem de sistema operacional independem de rede na prática os sistemas são geralmente assíncronos mas assume-se que são síncronos time-outs superdimensionados aplicações não são críticas e colapsos podem ser ignorados Modelo de falhas Comunicação entre processos troca de mensagens SEND e RECEIVE vamos usar apenas troca de mensagens primitivas de comunicação e sincronização RPC (remote procedure call) mais alto nível que SEND e RECEIVE interação cliente / servidor invocação remota de métodos orientação a objetos Comunicação entre processos troca de mensagens assíncrona síncrona (sem buffer - CSP) troca de mensagens assíncrona buffer infinito transmissor nunca bloqueia buffered message passing buffer finito opera assincronamente até buffer ficar cheio Comunicação entre processos RPC call service (value_args, result_args) comunicação síncrona Orientação a objetos modelo orientado a objetos outro paradigma de comunicação de alto nível atualmente muito popular um processo executa um método em um objeto particular objeto pode residir em qualquer nodo processo envia mensagem ao objeto objeto executa uma ação e retorna resultado Ordenação de eventos dificuldade de determinar relações temporais RAZÃO: inexistência de clock global problema determinar ordenação temporal de eventos que ocorrem em nodos diferentes, medidos por relógios diferentes global time físico (sincronização de relógios) ou lógico Clocks lógicos relógios lógicos Lamport (78) meio de assinalar um número a um evento nenhuma relação com o tempo físico sistema de clock lógico Ci - clock local ao proc Pi, C - sistema de clock um sistema de clock lógico é correto se é consistente com a relação → para quaisquer eventos a e b, se a → b então C(a) < C(b) Clocks lógicos clock lógico a maior parte dos problemas de ordenação podem ser resolvidos com clocks lógicos, sem necessidade de relógios físicos sincronizados carimba um evento de forma que a relação de ordem parcial é mantida pode ser facilmente implementado usando contadores numerando mensagens com numeração crescente exemplo de implementação: timestamp T