USU - GRADUAÇÃO SISTEMAS DISTRIBUÍDOS PROVA P1 Prof.: Alex Avellar – Rio de Janeiro, 24 de maio de 2006 Nome: _____________________________________________ 1 - Defina Sistemas Distribuídos. 2- Diferencie Arquitetura Clente/Servidor e Arquitetura Peer-to-peer (P2P). 3- Com relação a exemplos de aplicações Peer-to-Peer, correlacione a tabela abaixo: 1 -Kademlia 2 - Overnet 3 - Gnutella 4 - Gnutella 2 5 - Kad Network 6 - FastTrack 7 - OpenFT 8 - AudioGalaxy 9 - SoulSeek ( 9 ) Pequena rede introduzida para trocas de músicas em 2000. Tem poucos usuários e utiliza software de mesmo nome. ( 8 ) Projeto antigo da empresa de mesmo nome, centralizava todo o seu acervo indexando-o em seu site oficialmente. Foi facilmente fechada por um processo judicial na Inglaterra. Era uma implementação de FTPs sendo mais superficial ao usuário. ( 4 ) Segundo projeto da rede, agora com servidores centrais optimizando buscas e o desempenho geral da rede. É conhecida principalmente no programa Shareaza. Recebeu críticas, quando foi criada pelos criadores do sistema original. ( 5 ) Rede paralela do software eMule introduzida pelo autor do mesmo em 2004, é uma implementação fiel ao conceito Kademlia. Essa rede tem por objetivo inicialmente oferecer mais fontes aos usuários do programa e mais tarde se tornar uma rede P2P completa. ( 6 ) Nome dado a rede do KaZaA introduzida em 2001 e de enorme popularidade. Em 2003 provou ser frágil e sujeita a exploração de muitas falhas. Uma delas, culmina com a inutilização e destruição de muitos arquivos de música e vídeo mediante ao compartilhamento massivo de arquivos falsos por empresas interessadas em acabar com o P2P. A grande falha desse sistema é mesmo não possuir file hashing (ou assinatura de arquivo): isso permite que o dono de um arquivo falso possa comprometer quem queira baixar um arquivo verdadeiro porque o KaZaA ou qualquer programa similar não tem condição de diferenciar os arquivos: só o faz pelo tamanho em bytes do mesmos. O resultado disso é bastante conhecido por seus utilizadores: milhares de músicas estragadas, chiadas e inválidas para a escuta. Porém, ele até hoje é utilizado por milhares de pessoas através do software KaZaA Media Desktop e iMesh. ( 1 ) Conceito de rede altamente descentralizada baseada em "nós" de rede. Os próprios usuários constituem a estrutura da rede dispensando servidores. Várias redes utilizam esse conceito. ( 3 ) Rede open-source surgida no final do ano 2000, utilizada inicialmente por usuários do sistema Linux. Possui uma estrutura altamente descentralizada não havendo mesmo nenhum servidor central sequer. Os usuários constituem a estrutura da propria rede. Entre os programas que a utilizam, estão o BearShare , LimeWire e agora o Shareaza ( 2 ) Espécie de eDonkey "paga" é preciso comprar o software da empresa que a desenvolveu. É uma variante do eDonkey totalmente descentralizada e mais rápida seguindo o conceito Kademlia e foi a primeira implementação da mesma. ( 7 ) Protocolo desenvolvido pelo projeto giFT. Protocolo completamente novo, apenas algumas poucas aplicações vieram do pouco que se sabia sobre a FastTrack no seu desenvolvimento. Assim como a FastTack, ele é uma rede onde nodos enviam listas de arquivos compartilhados para outros nodos. Isso reduz o consumo de banda necessário para a pesquisa, entretanto, consumindo mais recursos do processador e memória nos nodos. 4 – Qual Sistema o texto abaixo está se referindo: “Imagine o número de computadores que ficam ligados e conectados à internet, ociosos. Pensando nisso foi criada uma forma de trabalhar, já que temos a grande rede a nosso dispor e muitos computadores ligados ociosos, porque não colocá-los para trabalhar? Seguindo este conceito os supercomputadores estão deixando de ser produzidos, pois pode-se muito bem usar o recurso de computação paralela para resolver grandes problemas. Funciona de forma simples até... Tem um servidor que recolhe as resposta e distribui tarefas a outros computadores, nos outros computadores fica um software cliente responsável por receber as informações do servidor, processá-las e devolver ao servidor. Dessa forma o processamento é distribuído e compartilhado entre um grupo de computadores clientes, diminuindo muito o tempo necessário para a obtenção do resultado. Criando assim uma grande rede de processamento, é como se os computadores ligados nessa rede fosse um só. É como se fosse um trabalho comunitário.” Resposta:Sistema Processamento Paralelo_________________ 5 – Cite três fatores que justificam a tendência atual para sistemas distribuídos: 6 – Indique (V) para Verdadeiro e (F) para Falso: ( F ) Em geral, existem três aspectos de software que podem estar distribuídos: dados, programas e memória. ( V ) No tocante a distribuição de dados, pode-se ter: sistemas de arquivos distribuídos e sistemas de banco de dados distribuídos ( F ) No que diz respeito a programas, pode-se ter: programas centralizados e programas distribuídos. Um programa centralizado é aquele que se encontra espalhado por várias memórias primárias, sendo que cada uma é acessada por um processador diferente, o qual executa a parte do programa que se encontra na memória primária a ele associada. Já um programa distribuído é aquele que é executado em uma arquitetura na qual cada um dos processadores pode executar qualquer instrução desse programa. ( F ) No tocante ao Hardware, um sistema é distribuído quando existe memória primária compartilhada pelos elementos processadores, e não distribuído quando existe. Quanto ao software, pode-se dizer, de modo geral, que um sistema é distribuído quando seus processos se comunicam (se cooperam) através de mecanismos baseados em troca de mensagens. ( V ) Sistemas distribuídos são potencialmente mais confiáveis, pois desde que os processadores são autônomos, uma falha em um não afeta o funcionamento correto dos demais. Portanto, a confiabilidade do sistema pode ser aumentada ao se replicar funções e/ou dados da aplicação nos vários processadores. Desse modo, se alguns elementos processadores falharem, os demais poderão continuar o serviço. Exemplos clássicos de aplicações tolerantes a faltas (falhas) são o controle de um avião e o controle de uma fábrica automatizada. ( F ) Um sistema operacional distribuído é aquele que torna visível aos usuários a existência dos vários elementos processadores que estão a sua disposição. Desse modo, o conceito chave é a "transparência". 6 – Diferencie Sistema Operacional de Rede e Sistemas Operacionais Distribuídos. os Sistemas Operacionais de Rede diferem dos Sistemas Operacionais Distribuídos nas seguintes características: cada elemento processador tem seu próprio sistema operacional; cada usuário trabalha no seu próprio elemento processador, necessitando quando necessário conexão remota para outro elemento processador, não existindo alocação dinâmica de processos; os usuários tem conhecimento da localização de seus arquivos, não sendo o sistema operacional que gerencia a localização aos mesmos; e os Sistemas Operacionais de Rede tem pouco ou nenhum recurso para tolerância a faltas (falhas). O grau de transparência pode ser analisado com relação a três aspectos: gerenciamento de arquivos, mecanismos de proteção e gerenciamento de processos. 7 – Defina os Modelos de Falhas abaixo e indique em qual Fase eles podem ocorrer: - Prevenção de Falhas – Fase de desenvolvimento - Eliminação de Falhas – Fase de Desenvolvimento - Tolerância a Falhas – Fase de Operação 8 – Descreva as vantagens da Replicação de Dados: Menor atraso no acesso, Melhor desempenho, tolerância a Falhas 9 – Qual operação está sendo realizada nas linhas de comandos abaixo, relacionadas a um Servidor e um Cliente em um Sistema do tipo Distribuído: Resposta: Estabelecimento de conexão______________________________________ 10 – Explique a figura abaixo: 11 – Diferencie Falha, Erro e Defeito. 12 – Defina “Aplicações que exigem Alta Disponibilidade”, e cite dois exemplos. Aplicações bancárias Comerciais – cartões de crédito