Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sejam bem-vindos! 2020.2 Prof. Ricardo Barbosa ricardo.barbosa@ibmr.br Doutorado em Engenharia Nuclear (COPPE/UFRJ), com atuação em Inteligência Artificial, Machine Learning, Métodos Probabilísticos combinados com Deep Learning e Decision Making. Mestrado em Tecnologia, com ênfase em Modelagem Computacional (CEFET/RJ). Especialista em Ciência de Dados (IM/UFRJ). Especialista em Física Nuclear (IEN/CNEN). Graduação em Física (UERJ). Na área de educação, 30 anos de experiência como Professor de Cursos Regulares de Graduação, Pós-Graduação, Extensão e Educação a Distância. ricardopbarbosa@gmail.com SISTEMAS DISTRIBUÍDOS EMENTA Aborda questões relacionadas ao projeto e gerenciamento de sistemas distribuídos, discussão de ambientes, modelos de comunicação e arquiteturas existentes, além de implementações de aplicações paralelas e distribuídas, como sistemas de arquivos distribuídos, sistemas de transações distribuídas, clusters, grids, computação em nuvem e web services. Competências que vamos DESENVOLVER ANALISAR E RESOLVER PROBLEMAS TRABALHAR EM EQUIPE ESPÍRITO DE PESQUISA Sistema de Avaliações D I S C I P L I N A S TEÓRICAS e TEÓRICO-PRÁTICAS N1 PESO 4 N2 PESO 6 A2 – AVALIAÇÃO(ÕES) A SER(EM) DEFINIDA(S) DE ACORDO COM OS OBJETIVOS DE APRENDIZAGEM (9,0 pontos) + APS (1,0 ponto) Ou SUB – AVALIAÇÃO SUBSTITUTIVA (APENAS se o aluno não realizar a A2 ou não alcançar a média 6,0 na disciplina. Substitui a nota da A2 quando a nota da SUB for superior) 0 10 CÁLCULO MÉDIA FINAL (MF) (N1*0,4) + (N2*0,6) MODA L I D A D E PRESENCIAL A1 – AVALIAÇÃO(ÕES) A SER(EM) DEFINIDA(S) DE ACORDO COM OS OBJETIVOS DE APRENDIZAGEM 0 10 Nossas avaliações... APS ANEXO APS As atividades práticas supervisionadas (APS) compreendem atividades individuais ou em grupo que prevêem a aplicação prática do que foi lecionado nas disciplinas. São integralizadas à carga horária da disciplina conforme dispositivo legal definido pelo Ministério da Educação (MEC). Atividade Prática Supervisionada tem como objetivos proporcionar a você estudante: • A aplicação dos conhecimentos adquiridos na disciplina; • O desenvolvimento da sua autonomia no cumprimento das tarefas, mediante supervisão; • A corresponsabilidade pelo seu aprendizado; • A contextualização das especificações da área de conhecimento e/ou mercado de trabalho. APS AUTOAVALIAÇÃO As estratégias metacognitivas integram o desenvolvimento de competências que implicam não somente a assimilação de novos conteúdos, mas principalmente a tomada de consciência, da autoanálise e do autojulgamento dos processos cognitivos, por meio dos quais o estudante pode decidir como melhor realizar atividades ou alicerçar novas aprendizagens. Ao assumir o controle e acompanhamento de sua própria aprendizagem, você desenvolverá sua autonomia pedagógica, autoavaliando o processo de aprendizagem na construção da Atividade Prática Supervisionada dessa disciplina. Nossas AVALIAÇÕES Descrição Datas N1 A1 Prova teórica (10,0 pontos) 21/10 N2 APS Atividade Prática Supervisionada (1,0 ponto) 28/10 A2 Prova teórica (9,0 pontos) 02/12 Substitutiva (10 pontos) 16/12 Datas IMPORTANTES N1 21/10 N2 02/12 APS 28/10 SUB. 16/12 Nossa Biblioteca... Nossas BIBLIOTECAS ibmr.br/biblioteca Acervo físico: • Livros – • Multimeios – • TCC – Acervo eletrônico: • Livros – • Periódicos – • Teses e Dissertações – Acesso com login e senha Referência bibliográfica: TANENBAUM, Andrew S., Sistemas Distribuídos Princípios e Paradigmas. São Paulo, Pearson Prentice Hall, 2007. [Biblioteca virtual]. Nossas Aulas Remotas... Aulas REMOTAS Fique atento ao Mural de Avisos. Lá você encontrará todas as principais informações da sua disciplina. Ingresse pontualmente na aula. Atrasos atrapalham a dinâmica da aula e pode comprometer o andamento da disciplina. As avaliações podem ser acessadas em Atividades. Os materiais da disciplina poderão ser acessados em Material de Aulas. Aulas REMOTAS Principais informações da disciplina Material de estudo postado pelo seu professor Aqui você acessa suas avaliações para realizá-las Aqui você verifica suas notas e provas já realizadas Acesso às aulas remotamente Acesso às aulas gravadas pelo seu professor e ao link de registro de presença (frequência mínima para aprovação: 75%) GUIA DO ALUNO https://lp.ibmr.br/guiadoaluno/ https://lp.ibmr.br/guiadoaluno/ Bom semestre! “Educação não transforma o mundo. Educação muda as pessoas. Pessoas transformam o mundo.” Paulo Freire FUNDAMENTOS DE SISTEMAS DISTRIBUÍDOS INTRODUÇÃO Nos primeiros momentos... Computadores: máquinas grandes e caras. Desenvolvimento do Microprocessador Desenvolvimento das Redes de Computadores Essas são as bases para o surgimento e crescimento dos sistemas distribuídos atualmente. SISTEMAS CENTRALIZADOS Primeiros sistemas: - Centralizados - Único computador fazia controle do hardware e software disponível. - Na década de 60 Multiprogramação Tempo compartilhado: quantidade de usuários e trabalhos que podem ser realizados eficientemente Número de usuários reduz a fatia de tempo (time-slice) disponível para cada um Aumento de interrupções e consumo dos recursos do sistema para tarefas de gerenciamento Barramento: eventual gargalo no sistema pela limitação de dados que podem circular nas conexões. Desenvolvimento dos microprocessadores: Mainframes, com múltiplos processadores aumentam a quantidade de trabalhos produzida por unidade de tempo (throughput), porém mantendo suas características de segurança. SISTEMAS PARALELOS (Múltiplos processadores) Década de 70: Desenvolvimento dos microprocessadores Computadores de menor porte e de grande desempenho, definindo uma tendência para o downsizing dos sistemas computacionais. Substituição de sistemas de grande porte por computadores de menor porte interligados e a consequente descentralização. Sistemas Paralelos: sistemas genéricos de processamento distribuído entre vários nós (computadores individuais, não necessariamente homogêneos) de maneira que um processo de grande consumo possa ser executado em um nó disponível ou subdividido por vários nós. Figura 1 - Mainframe IBM 3083 (32 Mb de armazenamento) Sistemas com múltiplos processadores: Tolerante à falhas. Se um processador falhar, outro processador assume a tarefa. Tecnologia multicore (duo-core, quad-core, ...) pode ser considerada como uma arquitetura SMP aplicada aos núcleos que fazem o papel de processadores conectados por barramento e compartilhamento memória e sistema operacional. O ganho óbvio: Possibilidade de uma tarefa ser divisível em várias subtarefas que serão executadas simultaneamente em paralelo. Necessidade de implementação de um Sistema de Controle de Processamento para gerenciar e distribuir as tarefas entre os processadores resultando em um tempo de processamento total maior que a soma das partes. Com a descentralização, ocorre a distribuição dos dados e processos entre vários ambientes computacionais que mantém comunicação, podendo estar dispersos geograficamente. Benefícios: Mais processadores: mais tarefas em menos tempo, aumentando a produção (Throughput); Economia, pois o custo do processador é inferior ao custo do computador; Maior confiabilidade (Sistema Tolerante a Falha): a falha de um processador não paralisa o sistema. Características específicas dos sistemas paralelos: são definidas pela forma de comunicação entre os processadores e o grau de compartilhamento dos recursos: Sistemas Fortemente Acoplados (Tightly Coupled): processadores compartilham memória (único espaço de endereçamento) e são interligados por um barramento Sistemas Fracamente Acoplados (Loosely Coupled): computação distribuída entre vários processadores físicos que trocam mensagens através de linhas de comunicação e possuem sua própria memória local. Sistemas Fortemente Acoplados O mais comum é definido como MultiprocessamentoSimétrico (Symmetric Multiprocessing - SMP) Não há hierarquia entre os processadores Cada processador executa uma cópia idêntica do Sistema Operacional que é responsável pelo gerenciamento dos processos e compartilhamento de recursos. Em sistemas de Multiprocessamento Assimétrico Processador tem controle de todos os recursos do sistema em uma estrutura mestre/escravo que se assemelha aos sistemas centralizados, possuindo mesmos benefícios e problemas. Utilizam processadores específicos para tarefas específicas podendo aumentar a eficiência para tais tarefas, porém aumentando a complexidade do sistema. Figura 2 - Burroughs B5500 (1961) (University of Virginia Computer Museum) Sistemas Fracamente Acoplados Atuam de maneira independente e trocam mensagens através de uma infraestrutura de rede que pode ser local (LANs - Local Area Network) ou de longa distância (WANs - Wide Area Network) É possível trabalhar com arquiteturas do tipo cliente-servidor ou peer-to-peer. Figura 3 - Arquitetura cliente-servidor e ponto-a-ponto Os computadores estão interligados entre si, mas mantém sua “individualidade”, isto é, cada computador tem seus próprios recursos de processador e memória local e utilizam um sistema de comunicação como linha telefônica ou barramento de alta velocidade para trocar mensagens com os demais computadores da rede. Não há necessidade dos computadores envolvidos na rede possuírem configurações similares de hardware ou software podendo, cada computador, ter seu Sistema Operacional particular. Tudo o que é necessário é conhecer o protocolo de comunicação. Estes sistemas são altamente flexíveis, pois são independentes da tecnologia, porém a comunicação através de troca de mensagens reduz o desempenho do processamento global. Sistemas Distribuídos Semelhante aos Sistemas de Rede, são menos autônomos, com seus componentes, interagindo o suficiente para dar a impressão de um único sistema. Vantagens: Eficiente compartilhamento de recursos e da carga de trabalho Distribuição mais eficiente permite computação mais rápida Capacidade de Redundância Sistema de Tolerância a Falhas. Precisam que seus componentes possuam a mesma tecnologia para obter a ilusão de um sistema único. Esta tecnologia única pode ser obtida através de hardware ou de software que implemente a portabilidade dos sistemas. Um Sistema Operacional único para todos os computadores pode permitir o balanceamento da carga de trabalho e dos recursos e controlar a redundância dos dados. Muitas vezes utilizado como sinônimo de Sistemas Distribuídos, o Cluster é o principal exemplo de sistema distribuído e oferece um compartilhamento de armazenamento, sendo uma arquitetura intermediária entre sistemas de multiprocessamento utilizada para computação de alto desempenho com alta confiabilidade. Clustering assimétrico: Um servidor executa a(s) aplicação(ções) enquanto os outros ficam em espera. Clustering simétrico: Todos os hosts estão executando a(s) aplicação(ções) . Figura 4 – Cluster Beowulf Sistemas Distribuídos x Redes Os termos Sistemas em Rede e Sistemas Distribuídos são utilizados para designar sistemas fracamente acoplados que possuem as características de compartilhamento de recursos e confiabilidade (tolerância a falhas), porém possuem características próprias que os diferenciam: Em Sistema de Redes temos computadores interligados em que o usuário (requisitante do serviço) deve explicitamente especificar em qual máquina irá executar seus programas ou obter seus recursos Em sistemas distribuídos temos a Transparência do Sistema: o usuário não “vê” os demais computadores interligados permitindo que o sistema procure os recursos SISTEMAS DISTRIBUÍDOS Os primeiros conceitos sugiram na década de 70 quando as redes de computadores começaram a se tornar viáveis técnica e economicamente. “Um Sistema Distribuído consiste de um conjunto de processos distintos, espacialmente separados que se comunicam por troca de mensagens” Lamport, 1978 Por Lamport, em 1978, qualquer rede de computadores interligada é considerado um sistema distribuído. O conceito de tempo associado à transmissão de uma mensagem é importante em sistemas distribuídos e é derivado do conceito de ordem dos eventos e é de particular interesse na solução de problemas de sincronização. Nesta definição, computadores conectados em rede devem estar espacialmente separados por alguma distância entre si, resultando como consequências: Concorrência Não existência de relógio global Falhas Independentes Concorrência (e seus problemas) existe porque no ambiente de redes, cada computador é independente permitindo o trabalho simultâneo em várias máquinas. Inexistência de relógio global é consequência do fato do tempo necessário para a troca de mensagens não ser desprezível em sistemas geograficamente dispersos. Todos os sistemas computacionais podem falhar de várias maneiras e é possível isolar uma parte do sistema sem acarretar falha global. Algumas destas falhas são associadas a problemas diversos de comunicação e algumas vezes são referidas como falhas Bizantinas. “Sistema no qual os componentes de hardware e software localizados em uma rede de computadores se comunicam e coordenam suas ações somente por troca de mensagens” Coulouris et al, 2001 “Sistema Distribuído é um conjunto de processadores que não compartilham memória nem relógio. Os processadores se comunicam por meio de redes de comunicação” Silberschatz, 2000 Os sistemas distribuídos são mais flexíveis e seus componentes possuem maior autonomia se assemelhando muito a sistemas de rede, porém com o controle de um único Sistema Operacional, Figura 5 - Rede de Comunicação A necessidade de um único sistema operacional se traduz em um ambiente homogêneo. Esta opção pode não ser a mais apreciada, uma vez que o ambiente heterogêneo é um atrativo em sistemas de compartilhamento de recursos dispersos, mas facilitaria a configuração e gerência destes sistemas. “Sistema Distribuído é um conjunto de computadores independentes (autônomos) que se apresenta a seus usuários (pessoas ou programas) como um sistema único e coerente” Tanenbaum, 2007 Sistemas com autonomia reduzida, tipicamente unidos por uma camada de software e comumente chamados de Middleware permitindo que possuam seu sistema operacional local. Para um conjunto de componentes autônomos aparentarem ser um único sistema deve ter componentes que colaboram entre si. Precisarão executar as tarefas de maneira cooperativa, estando sujeitos aos mesmos problemas de sincronização referidos anteriormente. Apesar dos diferentes conceitos apresentados o termo “Distribuído” usualmente é reservado para sistemas formados por processadores dispersos geograficamente compartilhando recursos e cooperando para a realização de alguma tarefa. Finalmente... Sistema Distribuído é um conjunto de sistemas autônomos (independentes em recursos), interligados por uma rede de comunicação que se comporta como um sistema fortemente acoplado. Características de Sistemas Distribuídos Ter um Sistema Distribuído não significa que ele é a melhor solução. Os principais objetivos de um sistema distribuído são: Compartilhamento de Recursos Confiabilidade Desempenho COMPARTILHAMENTO DE RECURSOS Facilitar o acesso a recursos remotos (hardware, dados, páginas Web, etc...) e seu compartilhamento. A razão óbvia para o compartilhamento dos recursos é a economia.
Compartilhar