Paradigmas em Sistemas Distribuídos • • • • • • • Paradigmas em Sistemas Distribuídos Nomes e Endereçamento Troca de Mensagens Operações Remota Comunicação em Grupo Time e Clocks Sincronismo Ordenação Paradigmas em SD • • • • Thais Batista Nomes e Endereçamento • Em Sistemas Distribuídos Coordenação Consistência Concorrência Atomicidade Paradigmas em SD Thais Batista Nomes e Endereçamento • Endereços – binding: associação de um nome a um objeto – context: associação de um objeto a um contexto • Nomes – São usados para interagir com uma entidade com a qual o nome refere-se • Resolução de Nomes – Puros: nenhuma informação adicional pode ser extraída do nome – Obter um atributo, em geral o endereço, de um dado nome chama-se resolver o nome • nameserver – Impuros: permite inferir informação adicional sobre o objeto (ex.: localização) • nameserver.dimap.ufrn.br Paradigmas em SD Thais Batista Paradigmas em SD Thais Batista 1 Nomes e Endereçamento • Tipos de Endereços • Serviço de Nomes – Endereço Lógico de Grupo: • permite interagir com o grupo como um todo sem necessidade de conhecer endereços individuais • requer o uso de protocolos de comunicação em grupo – capazes de reconhecer o endereço – Endereços específicos de protocolos • IP: endereço independe da arquitetura ou sistema operacional da máquina • Mobile-IP: endereço “independe” da localização da máquina em dado momento • Multicast-IP: o emissor não precisa se preocupar se os receptores estão ativos Paradigmas em SD Thais Batista Resolução de Nomes – Primitivas: • Lookup: recebe um nome e retorna o endereço correspondente • Bind: associa um endereço a um nome • Unbind: cancela uma associação de nome a endereço – Como obter o endereço do Serviço de Nomes: • Deve ser um endereço bem conhecido (wellknown address) Paradigmas em SD Thais Batista Troca de Mensagens • Serviço de Nomes – Implementação Escalável: • Usar um conjunto de Servidores de Nomes (SN) • Cada SN armazena uma parte dos dados • A divisão do espaço de nomes entre os vários servidores pode ser feita de acordo com vários critérios como localização geográfica, limites administrativos, etc Paradigmas em SD Resolução de Nomes Thais Batista • Forma mais básica de interação em Sistemas Distribuídos • Para trocar mensagens entre dois elementos: – Selecionar um protocolo – Obter o endereço do destino – Primitivas • Send: usada para enviar mensagens • Receive: usada para receber mensagens • Acknowledged-Send: para confiabilidade Paradigmas em SD Thais Batista 2 Troca de Mensagens Operações Remotas • Protocolo Request-Reply USER PROCESS 1 3 send receive 1 send – Usado em comunicação cliente-servidor – Cliente envia solicitação, servidor processo e envia o resultado USER PROCESS USER PROCESS USER PROCESS 2 USER PROCESS USER PROCESS 4 ack 6 ack 3 USER PROCESS USER PROCESS receive 2 1 request 1 2 receive reply 5 2 reply 1 request 2 OPER. SYS SUP. NETWORK OPER. SYS SUP. (a) OPER. SYS SUP. NETWORK OPER. SYS SUP. ack 1a 2 send (b) OPER. SYS SUP. Acknowledge-Send Paradigmas em SD send OPER. SYS SUP. NETWORK OPER. SYS SUP. 2a NETWORK OPER. SYS SUP. Request-Reply com Acknowledgement Paradigmas em SD Thais Batista Comunicação um-para-muitos • Comunicação ponto-a-ponto é um caso particular da comunicação multiponto • Comunicação um-para-muitos Paradigmas em SD 2 ack (b) Request-Reply Thais Batista Comunicação em Grupo – Unicast: ponto-a-ponto – Broadcast: o destino inclui participantes de um sistema – Multicast: o destino é um participantes do sistema 2 reply 1 send (a) Send-Receive 1 receive reply 1 send • Aplicação envia múltiplos Unicast • IP multicast R todos os grupo de Thais Batista S Paradigmas em SD R S R R R R Thais Batista 3 Grupo Time e Clocks • Em Sistemas Distribuídos a noção de grupos é uma forma de referir-se coletivamente a um grupo de componentes que cooperam para realizar uma tarefa ou que são réplicas • Tempo em SD está relacionado com ordenação, sincronização, sequenciamento. • O uso de tempo em SD não é muito simples – exemplo clássico: tolerância a falhas – Diferentes máquinas têm relógios diferentes! Necessidade de Tempo Global!!! Paradigmas em SD Thais Batista Paradigmas em SD Tempo Global Thais Batista Sincronismo • Um tempo global em um SD é construído através da sincronização de todos os relógios locais (um clock virtual) • Uso dos termos Síncrono X Assíncrono em SD Paradigmas em SD Paradigmas em SD Thais Batista – Bloqueio X Não Bloqueio – Ao mesmo tempo X Em tempos diferentes Thais Batista 4 Ordenação Coordenação • A noção de ordem dos eventos aparece naturalmente quando descrevendo-se computações distribuídas • É comum resolver um problema distribuído usando uma estratégia centralizada onde há um elemento que coordena tarefas – O importante é qual evento aconteceu primeiro Paradigmas em SD Thais Batista Paradigmas em SD Consistência Concorrência • Um sistema é dito consistente se ele não viola restrições de integridade impostas na sua especificação • Alguns mecanismos usados para forçar consistência: • Controle de Concorrência – Competição para uso de recurso comum Exclusão Mútua – Consenso Distribuído – Broadcast atômico – Determinismo de Réplica Paradigmas em SD Thais Batista Thais Batista Paradigmas em SD Thais Batista 5 Atomicidade • • 1. 2. 3. 4. 5. 6. Atomicidade Operação atômica = operação indivisível Exemplo: reserva de uma sequência de vôos para um passageiro • Mecanismos em SD – Transações Atômicas – Protocolo de Duas-Fases NATAL – PORTO – NATAL NAT – SP SP – LISBOA LISBOA – PORTO PORTO – LISBOA LISBOA – SP SP - NAT Paradigmas em SD Thais Batista Paradigmas em SD Thais Batista 6