Buscar

Resumo para a prova de Sistema Distribuídos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Resumo para a prova de Sistema Distribuídos.
Introdução
A quantidade de melhorias que ocorreu na tecnologia nos últimos 50 anos é verdadeiramente assombrosa e totalmente sem precedentes em outros setores.
Foi mais ou menos a partir de meados da década de 1980, despontou dois avanços tecnológicos:
Desenvolvimento de microprocessadores de grande capacidade;
Invenção de redes de computadores de alta velocidade. Redes locais ou LANs (local-area networks), permitem que centenas de maquinas localizadas dentro de um edifício sejam conectadas de modo tal que pequenas quantidades de informação possam ser transferidas entre maquinas em alguns microssegundos ou algo parecido.
Definição de um sistema distribuído
“Coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente”
Andrew S. Tanenbaum
“Voce sabe que existe um sistema distribuído quando a falha de um computador que você nunca ouviu falar impede que você faça qualquer trabalho”
Leslie Lamport
Consiste em adicionar o poder computacional de diversos computadores interligados por uma rede. A união desses diversos computadores com o objetivo de compartilhar a execução de tarefas, é conhecida como sistema distribuído 
Nenhuma premissa é adotada quanto ao modo como os computadores são interconectados.
Características importantes de sistema distribuídos:
é que as diferenças entre os vários computadores e o modo como eles se comunicam estão, em grande parte, ocultos aos usuários;
usuários e aplicações pode interagir com um sistema distribuído de maneira consistente e uniforme, independentemente de onde a interação ocorra;
em princípio, também deveria se relativamente fácil expandir ou aumentar a escala de sistemas distribuídos. Essa característica é uma consequência direta de ter computadores independentes;
em geral um sistema distribuído estará continuamente disponível, embora algumas partes possam estar temporariamente avariadas;
usuários e aplicações não devem perceber quais são as partes que estão sendo substituídas ou consertadas, ou quais são as novas partes adicionadas para atender a mais usuários e aplicações.
Exemplos:
Aplicações comerciais (reservas de bilhetes, bancos)
Aplicações Internet (WWW)
Aplicações de acesso a informações multimídia
(Áudio (voz) e vídeo conferencia, P2P-TV) Groupware (trabalho cooperativo)
Middleware
Como suportar computadores e redes heterogêneos e, simultaneamente, oferecendo uma visão de sistema único?
SDs são organizados por meio de uma camada de software – que é situada logicamente entre uma camada de nível mais alto, composta de usuários e aplicações e uma camada subjacente, que consiste em sistemas operacionais e facilidades básicas de comunicação, como mostra a figura:
Metas 
Um sistema distribuído deve oferecer fácil acesso a seus recursos: deve ocultar razoavelmente bem o fato de que os recursos são distribuídos por uma rede; deve se aberto e deve poder ser expandido.
Acesso a recursos
A principal meta de um SD é facilitar aos usuários e as aplicações o acesso a recursos remotos e sem compartilhamento de maneira controlada e eficiente. Há muitas razões para querer compartilhar recursos, e uma razão obvia é a economia. Exemplos: Impressoras, computadores, dados, pagina Web; Conectividade → Groupware e comercio eletrônico, isto é, software para edição colaborativa.
Contudo, a medida que a conectividade e o compartilhamento crescem, a segurança se torna mais importante, precisamos nos proteger usando filtros especiais de informações que selecionam mensagens de entrada com base em seu conteúdo.
Transparência
Ocultar o fato de que seus processos e recursos estão fisicamente distribuídos por vários computadores.
Tipos de transparências, vide tabela:
 
Transparência de Acesso
Trata de ocultar diferenças de dados e o modo como os recursos podem ser acessados por usuários;
Ocultar diferenças entre arquiteturas de máquinas;
Mais importante: Acordo sobre como os dados devem ser representados e como os arquivos devem ser manipulados, devem ficar ocultos das aplicações e dos usuários;
Exemplo: Nomeação de arquivos em Sos diferentes.
Transparência de Localização
Usuários não são capazes de dizer a localização física do recurso;
Nomeação – desempenha um papel importante para conseguir transparência de localização;
Nomes nos quais a localização de um recurso não está secretamente codificada, ex.: www.google.com → nome não da pistas da localização física de um dos servidores google;
( não vale adotar o comando traceroute ! :) )
Transparência de migração 
Recursos podem migrar de uma localidade para outra, por questões de desempenho, segurança, etc;
Podem ser movimentados sem afetar o modo como podem ser acessados;
Deve ser feita de forma automática pelo sistema
Deve manter o nome do objeto;
Deve garantir a continuidade de comunicação.
Transparência de Relocação
Oculta que um recurso possa ser movido para outra localização durante o uso;
Exemplos: 
Celular se movimentando dentro da mesma área de cobertura;
Um automóvel passando por varias redes de acesso sem fio, com conexão ininterrupta.
Transparência de Replicação
Permite que várias instancias de recursos sejam usadas para aumentar a confiabilidade e o desempenho;
Deve mascarar o conhecimento das réplicas por parte dos usuários, ou seja, todas as replicas devem ter o mesmo nome;
Implica na transparência de localização;
Problemas de consistência.
Transparência de Concorrência
Compartilhamento competitivo de recursos;
Deve garantir consistência;
Travas de acesso;
Tratamento mais refinado: transações;
O usuário não perceber que um outro usuário está utilizando o mesmo recurso.
Transparência a Falhas
Usuário não pode perceber que um recurso deixou de funcionar bem
Mascarar falhas e uma das questões mais difíceis
Recurso morto ou incrivelmente lento?
A principal dificuldade para mascarar falhas está na capacidade de distinguir entre um recurso morto e um outro insuportavelmente lento.
Grau de transparência - A Transparência é sempre requerida?
Embora a transparência de distribuição seja geralmente considerada preferível para qualquer sistema distribuído, há situações em que tentar ocultar completamente dos usuários todos os aspectos de distribuição não é uma boa ideia.
A transmissão de sinal não somente está limitada pela velocidade da luz, mas também pelas capacidades de processamento dos comutadores intermediários.
Compromisso entre um alto grau de transparência e o desempenho do sistema;
Exemplo: 
Aplicações de Internet tentam contatar um servidor repetidas vezes antes de desistir. Talvez seja melhor desistir mais cedo ou permitir que o usuário cancele as tentativas.
Sistemas embutidos: laptop e impressora local.
Visar a transparência de distribuição pode ser uma bela meta no projeto e na implementação de um SD, mas deve ser considerada em conjuntos com outras questões, como desempenho e facilidade de compreensão. Nem sempre vale a pena conseguir total transparência, pois, o preço que se paga por isso pode ser surpreendentemente alto.
Abertura 
É um sistema que oferece serviços de acordo com regras padronizadas que descrevem a sintaxe e a semântica desses serviços. Característica que determina se um sistema pode ser estendido de diferentes maneiras:
Hardware
Inclusão de dispositivos de fabricantes distintos
Software
Módulos de SO
Protocolos de Comunicação
Recursos compartilhados
Interoperabilidade
“Define até que ponto duas implementações de sistemas ou componentes de fornecedores diferentes devem coexistir e trabalhar em conjunto, com base na confiança mutua nos serviços de cada um, especificados por um padrão comum”
 “Capacidade de um sistema (informatizado ou não) de se comunicar de forma transparente (ou o mais próximo disso) com outro sistema (semelhante ou não). ”
Portabilidade
“Caracteriza até que ponto uma aplicação desenvolvida para um sistema distribuído A pode ser executada, SEM MODIFICAÇÃO, em um sistema distribuídoB que implementa as mesmas interfaces que A ”;
“Habilidade de reusar um código existente ao invés de refazê-lo quando este é movido de um ambiente para outro”- extensível.
IMPORTANTE: PADRONIZAÇÃO!!!!!
Escalabilidade 
É uma das mais importantes metas de projeto para desenvolvedores de SD, esta, pode ser medida segundo, no mínimo, três Dimensões diferentes [Neuman, 1994]:
Tamanho 
Aumento do número de usuários e/ou processos
PROBLEMAS
Serviços Centralizados
Serviços que são implementados por meio de apenas um único servidor que executa em uma máquina especifica no sistema distribuído
Possível Gargalo no sistema
Dados Centralizados
Números telefônicos estivessem em um único banco de dados → saturação de todas as linhas de comunicação que o acessam
DNS – mantem informações de milhões de computadores no mundo inteiro e forma um serviço essencial para localizar servidores web. Se cada requisição para resolver um URL, tivesse que passar por aquele único servidor DNS, é claro q ninguém etária usando a web.
Algoritmos Centralizados
Para evitar troca de mensagens → colher informações de todas as maquinas e linhas e executar um algoritmo para computar todas as rotas ótimas → propagar as informações por todo o sistema;
Na verdade, qualquer algoritmo que colha informações de todos os sites, envia-as a uma única maquina para processamento e então distribua os resultados para todos os sites, deve ser de maneira geral, evitado. Somente algoritmos descentralizados devem ser utilizados.
Péssima ideia!!
Termos Geográficos
Usuários e/ou recursos podem estar longe um dos outros PROBLEMAS;
A escalabilidade geográfica está fortemente relacionada com problemas de soluções centralizadas que atrapalham a escalabilidade de tamanho. Se tivermos um sistema com muitos componentes centralizados, é claro que a escalabilidade geográfica estará limitada pelos problemas de desempenho e confiabilidade resultantes da comunicação a longa distância.
Dificuldade de ampliar sistemas distribuídos existentes que foram originalmente projetados para redes locais: COMUNICAÇÃO SINCRONA.
Nessa forma de comunicação, uma parte que requisita o serviço, geralmente denominada cliente, fica bloqueada até que uma mensagem seja enviada de volta. Construir aplicações interativas usando comunicação síncrona em sistemas de longa distância requer muito cuidado, além de muita paciência. 
Comunicação em redes de longa distância e inerentemente não confiável, ponto-a-ponto (escalabilidade de tamanho);
Localização de serviços.
Termos Administrativos (segundo o prof. Não vai cair na prova)
Sistema pode ser fácil de gerenciar, mesmo que abranja muitas organizações diferentes
PROBLEMAS
Políticas conflitantes em relação a utilização – e pagamento – de recursos, gerencialmente e segurança.
Os usuários de um único domínio podem confiar em componentes de um sistema distribuído que residam dentro desse mesmo domínio
Confiança não ultrapassa as fronteiras do domínio: a administração do sistema deve testar e certificar aplicações e tomar providencias especiais para garantir que os componentes não sofram nenhuma ação indevida
Técnicas de Escalabilidade
Há basicamente três técnicas para ampliar sistemas [Neuman 1994]:
Ocultar latências de comunicação
Escalabilidade Geográfica tentar evitar, o quanto possível, esperar por respostas a aquisição remotas – e potencialmente distantes – de serviços. 
Comunicação Assíncrona (essa comunicação muitas vezes pode ser usada em sistemas de processamento de lotes e em aplicações paralelas.) Executar outro trabalho útil no lado do requisitante. Quando chegar uma resposta, a aplicação é interrompida e um manipulador especial é chamado para concluir a requisição emitida.
Aplicações Interativas devem esperar por uma resposta não podem fazer uso efetivo de comunicação assíncrona.
Solução: Reduzir comunicação global, passando parte da computação do servidor para o cliente que está requerendo o serviço. 
Exemplo Acesso a banco de dados por meio de formulários:
Obs.: exemplo do formulário, q o professor usou em sala, preenche o formulário completo para enviar, e não letra por letra, como era antes, pag. 8 do livro.
Distribuição consiste em tomar um componente, subdividi-lo em partes menores e na sequencia espalhar essas partes pelo sistema.
Exemplo: 
DNS: O espaço de nomes do DNS é organizado por hierarquia em arvore de domínios, dividida em zonas sem sobreposição, conforme figura 1.3:
Esse exemplo ilustra como o servidor de nomeação fornecido pelo DNS é distribuído por várias maquinas evitando, desse modo, que um único servidor tenha de lidar com todas as requisições de resolução de nomes.
Replicação 
Aumenta a disponibilidade dos recursos
Equilibra a carga entre os componentes, resulta em melhor desempenho;
Sistemas com ampla dispersão geográfica ocultar grande parte dos problemas de latência;
Cache é uma forma especial de replicar, embora muitas vezes a distribuição entre as duas seja difícil de compreender ou até mesmo artificial. Como no caso da replicação, a cache resulta em fazer uma cópia de um recurso, em geral na proximidade do acesso do cliente àquele recurso. Entretanto, ao contrário da replicação, a cache é uma decisão tomada pelo cliente de um recurso, e não por seu proprietário. Além disso, a cache acontece sob demanda, ao passo q a replicação costuma ser planejada antecipadamente.
Desvantagens da replicação e cache: 
Tanto uma como outra tem uma serie de desvantagens que pode causar efeitos adversos na escalabilidade. Como nessa circunstância temos várias copias de um recurso, se uma delas for modificada, ficará diferente das outras. Por consequência, cache e replicação resulta em problemas de consistência.
Administrativa 
Problemas políticos estão envolvidos
Progresso na área: ignorar domínios administrativos
P2P – usuários finais tomam o controle – Vários problemas de direitos autorais, sobrecarga de informação nos Sistemas Autônomos
Ciladas 
Premissas falsas adotadas ao se desenvolver pela primeira vez uma aplicação distribuída
Rede e confiável – (simplesmente não existe);
Rede e segura – (inerentemente insegura);
Rede e homogênea – (heterogeneidade);
Topologia constante;
Latência zero – (não existe);
Largura de banda e infinita – (impossível);
Custo de Transporte e zero; 
Existe somente um administrador.
Tipos de Sistemas Distribuídos
Sistemas de Computação Distribuídos – SCD.
Uma classe importante de SD é a utilizada para tarefas de computação de alto desempenho. Em termos estritos, podemos fazer uma distinção entre dois subgrupos:
Sistemas de Computação de Cluster – SCC.
Homogeneidade;
Hardware consiste em um conjunto de estações de trabalho ou Pcs semelhantes;
Conexão feita através de uma rede local;
Em quase todos os casos, a computação de cluster e usada para programação paralela na qual um único programa e executado em paralelo;
Cada nó executa o mesmo SO;
Exemplo de Clusters Beowulf baseados em Linux na figura 1.4:
SCC tornaram –se populares quando a razão preço/desempenho de computadores pessoais e estaçoes de trabalho melhorou. A certa altura ficou atraente, em termos financeiros e técnicos, construir um supercomputador que usasse tecnologia de prateleira simplesmente conectando uma serie de computadores relativamente simples a uma rede de alta velocidade. 
Computação em Grade
Heterogeneidade
Recursos de diferentes organizações são reunidos para permitir a colaboração de um grupo de pessoas ou instituições
PlanetLab: http://www.planet-lab.org
 
Sistemas de Informação
Sistemas Pervasivos

Outros materiais