Módulo 16: Estruturas de Sistemas Distribuídos Capítulo 16: Estruturas de Sistemas Distribuídos Motivação Tipos de Sistemas Operacionais Distribuídos Estrutura de Rede Topologia de Rede Estrutura de Comunicação Protocolos de Comunicação Robustez Questões de Design Um exemplo: Networking (Rede) 2 Objetivos do Capítulo Prover uma visão geral de sistemas distribuídos e das redes que interconectam eles Discutir a estrutura geral de sistemas operacionais distribuídos 3 Motivação Sistema Distribuído é uma coleção de processadores fracamente acoplados interconectados por uma rede de comunicação Processadores são chamados de nós (nodes), computadores (computers), máquinas (machines), hospedeiro (hosts) Site é a localização do processador Razões (Vantagens) para sistemas distribuídos Compartilhamento de Recursos Compartilhar e imprimir arquivos em sites remotos Processar informações em bases de dados distribuídas Usar dispositivos de hardware especializados remotamente Aceleramento da Computação – load sharing (compartilhamento da carga) Confiabilidade – detectar e recuperar de uma falha num site, transferência de função e reintegração do site em falha Comunicação – message passing 4 Um sistema distribuído 5 Tipos de Sistemas Operacionais Distribuídos Sistemas Operacionais de Rede (Network Operating Systems) Sistemas Operacionais Distribuídos (Distributed Operating Systems) 6 Sistemas operacionais de rede Usuários estão cientes da multiplicidades de máquinas. O acesso aos recursos de várias máquinas é feito explicitamente por: Login remoto na máquina remota apropriada usando protocolos telnet e ssh, por exemplo. Remote Desktop (Microsoft Windows) Transferência de dados de máquinas remotas para máquinas locais através de mecanismo de FTP / SFTP (ou FTP Securo). 7 Sistemas Operacionais Distribuídos Usuários não estão conscientes da multiplicidade de máquinas. Acesso a recursos remotos são similares ao acesso a recursos locais Migração de Dados – transferência de dados através da transferência de um arquivo todo ou transferindo apenas aquelas porções do arquivo para a tarefa imediata Migração da Computação – transferência de computação, ao invés dos dados, através do sistema 8 Sistemas Operacionais Distribuídos (Cont.) Migração de Processos – executa um processo inteiro, ou partes disso, em diferentes sites Balanceamento de carga (Load balancing) – distribui processos pela rede para igualar o carregamento da rede Aceleramento (aumento da velocidade) da computação (Computation speedup) – sub-processos podem executar concorrentemente em sites diferente Preferência de Hardware – a execução de processo pode requerer um processador especializado. Preferência de Software – o software requerido pode estar disponível em apenas um site particular Acesso a dados – executar um processo local ao invés de transferir todos os dados localmente 9 Estrutura de Rede (Network Structure) Local-Area Network (LAN) – projetada para cobrir uma pequena área geográfica. Redes de barramento multiacesso, anel, ou estrela Velocidade 10 – 1.000 megabits/segundo Broadcast é rápido e barato Nós: Usualmente Poucos workstations e/ou computadores pessoais (geralmente um ou dois) mainframes 10 Representação de uma LAN típica 11 Tipos de Redes (Cont.) Redes de Longa Distância (Wide-Area Network (WAN)) – liga sites separados geograficamente Conexões ponto-a-ponto através de linhas long-haul (longa distância) , freqüentemente alugadas de companhias telefônicas) Velocidade 1,544 a 45 Mbps Broadcast geralmente requer várias mensagens Nós: Geralmente uma alta porcentagem de mainframes 12 Processadores de Comunicação em uma Wide-Area Network 13 Topologia de Rede Os sites no sistema podem ser conectados fisicamente em uma variedade de formas; eles são comparados com respeito aos seguintes critérios: Custo básico (Basic cost) - quão caro é ligar os vários sites no sistema? Custo de Comunicação - quanto tempo leva para enviar uma mensagem do site A até o site B? Confiabilidade (Reliability) - Se o link ou um site no sistema falha, os demais site continuam a comunicação com cada um outro? As várias topologias são exibidas como grafos cujos nós corresponde a sites Uma aresta do nó A ao nó B corresponde a uma conexão direta entre dois sites. Os próximos seis itens exibem varias topologias de rede 14 Topologia de Rede 15 Estrutura de Comunicação O projeto de uma rede de comunicação (communication network) deve endereçar quatro questões básicas: Nomeação e Resolução de Nomes - como dois processos localizam uns aos outros para comunicação? Estratégia de Roteamento (Routing strategies) -- Como as mensagens são enviadas pela rede? Estratégias de Conexão (Connection strategies) – Como dois processos enviam uma seqüência de mensagens? Contenção – A rede é um recurso compartilhado, então como resolver os conflitos exigidos por seu uso? 16 Nomeação e Resolução de Nomes Sistemas de nome na rede Endereçar de mensagens com o identificador do processo (Address messages with the process-id) Identificar processos em sistemas remotos através do par <host-name, identificador> Serviço de Nomes de Domínio (Domain name service (DNS)) – especifica a estrutura de nomes dos hosts, tão bem quanto resolução de nomes para endereços (Internet) 17 Estratégias de Roteamento Roteamento Fixo – Um caminho entre de A a B é especificado previamente; o caminho se altera apenas se uma falha de hardware desabilitar o caminho (path changes only if a hardware failure disables it) Como o menor caminho é geralmente escolhido, o custo de comunicação é minimizado. Roteamento fixo não se adapta a mudanças de carregamento Garantem que as mensagens serão enviadas na ordem que foram enviadas Circuito Virtual - O caminho de A a B é fixo pela duração de uma sessão. Diferentes sessões envolvendo mensagens de A para B podem ter caminhos diferentes Remédio parcial para se adaptar a mudanças de carregamento Garante que as mensagens serão entregues na ordem que foram enviadas 18 Estratégias de Roteamento (Cont.) Roteamento Dinâmico (Dynamic routing) - O caminho usado para enviar uma mensagem de A para B é escolhido apenas quando a mensagem é enviada Usualmente um site envia uma mensagem a outro site usando o link menos usado naquele momento particular Adapta-se a mudanças de carga evitando mensagens roteadas em caminhos muito usados Mensagens podem chegar fora de ordem Este problema pode ser remediado acrescentando-se um número seqüencial a cada mensagem 19 Estratégias de Conexão Comutação de Circuitos (Circuit switching) - um link físico permanente é estabelecido pela duração da comunicação (ex: sistema telefônico) Comutação de Mensagens (Message switching) – Um link temporário é estabelecido durante a transferência de uma mensagem (ex: o sistema de correios) Comutação de Pacotes (Packet switching) - Mensagens de tamanho variável são divididos em pacotes de tamanhos fixos e são enviados ao destinatário Cada pacote pode tomar um caminho diferente através da rede Os pacotes devem ser remontados em mensagens a medida que eles chegam Comutação de Circuitos requer mais tempo de setup mas causa menos overhead no envio de cada mensagem, e pode gastar a largura de banda da rede Comutação de Mensagens e Pacotes requerem menos tempo de setup mas causa um maior overhead por mensagem Obs: O maior overhead é porque as mensagens deverão sempre carregar o endereço de destino 20 Contenção (Disputa) Vários sites podem querer transmitir informações em um link simultaneamente. Técnicas para evitar colisões repetidas incluem: CSMA/CD - Carrier sense with multiple access (CSMA); collision detection (CD) Um site determina se outra mensagem está correntemente sendo transmitida sobre o link. Se dois ou mais estações começam a transmissão exatamente no mesmo momento, então eles registrarão uma colisão (CD) e a transmissão será interrompidada. Quando o sistema está muito ocupado, muitas colisões podem ocorrer e portanto a performance pode ser degradada CSMA/CD é usado com sucesso no sistema Ethernet, o mais comum sistema de rede 21 Contenção (Cont.) Passagem de Fichas (Token passing) - Um único tipo de mensagem, conhecida como token (ficha) circula continuamente no sistema (geralmente uma estrutura em anel) Uma estação que deseja transmitir uma informação deve aguardar até o token chegar Quando a estação completa sua volya ela retransmite o token (ficha) Um esquema de passagem de fichas é usado por alguns sistema IBM e HP/Apollo Slots de Mensagens (Message slots) – Um número fixo de mensagens de tamanho fixo circulam continuamente no sistema (geralmente uma estrutura de anel) Como cada slot pode conter apenas mensagens de tamanhos fixos uma única mensagem lógica tem de ser quebrada em um número pequeno de pacotes pequenos, cada qual enviado em um slot separado Esse esquema foi adotado no experimental Anel de Comunicação Digital de Cambridge (Cambridge Digital Communication Ring) 22 Protocolos de Comunicação A rede de comunicação é particionada nas seguintes múltiplas camadas: Camada Física (1) Camada de Enlace (2) Camada de Rede (3) Camada de Transporte (4) Camada de Sessão (5) Camada de Apresentação (6) Camada de Aplicação (7) 23 Comunicação Via Modelo de Rede ISO 24 Camadas do Protocolo ISO 25 Mensagens de Rede padrão ISO 26 Camadas do Protocolos TCP/IP 27 Robustez Um sistema distribuído pode sofrer de vários tipos de falha de hardware. A falha de um link, a falha de site e perda de mensagens. Detecção de Falhas Reconfiguração 28 Detecção de Falhas A detecção de falhas de hardware (falha de um link, a falha de um site e a perda de uma mensagem) é difícil Detectar uma falha de um link, um protocolo de handshaking pode ser usado Assuma que o Site A e Site B tenham estabelecido um link Cada site envia uma mensagem do tipo “Eu estou funcionando” em intervalos fixos indicando que o site esta up and running (está em pé e em execução) Se o Site A não receber a mensagem dentro de um intervalo fixo ele assume que (a) o outro site não está em pé ou (b) a mensagem foi perdida O Site A pode enviar uma mensagem “Você está up?” para o Site B Se o Site A não receber uma resposta, ele poderá repetir a mensagem ou tentar uma rota alternativa para o site B 29 Detecção de Falhas (cont) Se o Site A não recebe ultimamente resposta do site B, concluí-se que algum tipo de falha tenha ocorrido Tipos de falhas: - O Site B está down (inativo) - O link direto (se houver) entre A e B está down (inativo) - O link (caminho) alternativo de A a B está down (inativo) - A mensagem foi perdida Contudo, o Site A não pode determinar exatamente porque a falha ocorreu 30 Reconfiguração Quando o Site A determina que uma falha ocorreu ele deve reconfigurar o sistema: 1. Se o link de A para B falhou essa mensagem deve ser distribuída (broadcast) a todo site no sistema 2. Se um site falhou, todo outro site deve ser notificado indicando que o serviço oferecido pelo site não está mais disponível Quando um link ou um site torna-se disponível novamente, essa informação deve ser enviada (broadcast) a todos os outros sites. 31 Questões de Design (Projeto) Transparência (Transparency) – o sistema distribuído deve aparecer como um sistema centralizado convencional para o usuário Tolerância a Falhas (Fault tolerance) – o sistema distribuído deve continuar funcionando diante da ocorrência de uma falha Escalabilidade (Scalability) – a medida que a demanda aumenta o sistema deve facilmente aceitar a adição de novos recursos para acomodar o aumento da demanda Clusters – uma coleção de máquinas semi-autônomas que age um sistema único 32 Exemplo: Networking A transmissão de pacotes de rede entre hosts em uma rede Ethernet Cada host possui um único endereço IP e um endereço Ethernet (MAC) correspondente A comunicação requer os dois endereços O protocolo DNS pode ser usado para obter o endereço IP O protocolo ARP (Address Resolution Protocol) é usado para mapear o endereçamento MAC ao endereço IP Se os hosts estiverem na mesma rede então o protocolo ARP poderá ser usado Se os hosts estiverem em redes diferentes o host remetente (sending) irá enviar um pacote a um roteador que roteia o pacote ao endereço destino 33 Um pacote Ethernet 34 Referência Operating System Concepts – 7th Edition, Apr 4, 2005 Silberschatz, Galvin and Gagne ©2005 35