Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Engenharia de computação Atividade prática supervisionada Prof. Dr. Alexandre Rómulo Moreira Feitosa Lista Exercícios - Sistemas Distribuídos Realizado por: Rodrigo Mansueli Nunes 1166174 Cornélio Procópio, 29 de novembro de 2013 1) Defina o que é um Sistema Distribuído. Um conjunto e computadores independentes que se apresenta a seus usuários como um Sistema único e coerente. 2) Explique quais seriam as principais metas de um Sistema Distribuído. Recursos acessíveis Transparência de Distribuição Grau de transparência Abertura Política de separação de componentes Escalabilidade 3) Cite quais são as principais “ciladas” ou falsos conceitos que atrapalham o desenvolvimento de Sistemas Distribuídos. Acreditar que: A rede é confiável A rede é estável A rede é homogênea A topologia é inalterável Que não há latência Que a largura de banda é infinita Que os custos de transporte é zero Só há um administrador 4) Explique o que seria um sistema de computação de cluster. Uma rede de computadores “comuns” ligados para aumentar o poder de processamento. 5) Explique o que seria um sistema de computação em grade. Computadores em grade em geral são em sistemas mais heterogêneos, geralmente não compartilham do mesmo sistema operacional, nem são parecidos. Geralmente ocorre em parceria de empresas distintas. 6) Explique as quatro características fundamentais de uma transação. Transações são eventos que requerem que uma série de etapas seja cumprida para que a mesma possa considerar concluída, caso haja problema em uma das etapas, deverá realizar tal transação novamente. Atômica: cada transação é única Consistente: a transação precisa de obedecer as variáveis do sistema Isolada: cada transação deve ser auto-contida e independente de outras transações Durável: Uma vez que a transação ocorra, as modificações são permanentes. 7) O que seria um Sistema Distribuído Pervasivo? Sistema Distribuido pervasivo é um sistema que se adapta as mudanças contextuais, se adapta de acordo com as necessidades do usuário e compartilha as informações por padrão. 8) Qual seria a diferença entre uma arquitetura de sistema e um estilo arquitetônico? Um estilo de arquitetura é formulado em termos de como seus componentes estão conectados, dos dados trocados e da maneira como os componentes estão configurados enquanto a arquitetura se refere a como realmente foi implementado e não uma forma genérica para expressar o tipo de distribuição. 9) Defina como funciona uma arquitetura Cliente-Servidor. Faça também um diagrama para auxiliar a explicação. Na arquitetura cliente servidor, o cliente faz a requisição e espera uma resposta do servidor. Cliente Servidor 10) Defina como é organizado um sistema em três camadas (MVC). Faça um diagrama relacionando as camadas existentes. Um sistema em três camadas é divido em camada de aplicação (interface), camada de processamento e camada de dados. interface dados 11) Explique quais seriam as diferenças entre um fatclient (clientegordo) e um thinclient (clientemagro). Cite um caso em que cada um é recomendável. Thinclient, não há processamento nele, só recebe os dados do servidor ideal em casos onde se deseja verificar os dados e alguma interferência do usuário pode alterar resultados e prejudicar a aplicação. Por exemplo um jogo de xadrez, se a validação de jogadas for no servidor não haverá casos de um jogador jogar duas vezes em sequência. Fatclient, o cliente faz o processamento de dados e isso evita a necessidade de processar tudo no servidor. Exemplos: javascript, SETI@home, einstein@home 12) Dentro de arquiteturas descentralizadas o que seria uma distribuição vertical? Faça também um diagrama para auxiliar a explicação. Componentes lógicos diferentes em máquinas diferentes. Cliente Servidor PC 1 PC2 PC1 faz IO, PC2 faz o processamento. 13) Dentro de arquiteturas descentralizadas o que seria uma distribuição horizontal? Faça também um diagrama para auxiliar a explicação. Cada cliente ou servidor pode ser dividido em partes logicamente equivalentes Cada parte opera sobre sua porção do conjunto de dados, o que leva a uma carga equilibrada Um exemplo de arquitetura que suporta distribuição horizontal é a peer-to-peer. 14) O que seria uma rede peer-to-peer (P2P)? Como o próprio nome diz, a rede é par a par ou seja descentralizada e os dados são trocados diretamente entre os clientes, as principais funções dos "servidores" é indicar a um cliente quais os outros clientes que estão próximos e podem responder as requisições. 15) O que seria uma rede de sobreposição? Uma rede em que os nós são formados pelos processos e as ligações representam os possíveis canais de comunicação. 16) Defina o conceito de visual parcial em uma rede peer-to-peer. O conceito de visual parcial se refere ao fato de que cada um dos pares na rede não possui uma visão geral de toda a rede. Cada par só consegue ver os pares que estão conectados a ele. 17) O que seriam os superpares (superpeers) em uma rede peer-to-peer? Os superpares são os pares que são responsáveis por distribuir a carga em uma rede peer to peer, por exemplo nas redes de bittorrent os superpares são os trackers que são os computadores que os pares convencionais se conectam para receber informações de outros pares e ao ser um superpar, este não necessariamente só é responsável em distribuir a carga, mas também pode assumir alguns papéis de par convencional. 18) Explique o que seria um sistema de servidor de borda. É uma arquitetura hibrida Este sistema é utilizado na internet onde servidores são colocados “na borda” da rede. Usuários conectados a internet normalmente o fazem a partir de um servidor de borda, um servidor ISP (Internet Service Provider). 19) Defina o que seria o middleware de um Sistema Distribuído. É uma camada entre a aplicação distribuida e a plataforma. 20) Explique o que seria computação autonômica. Que os componentes são autonomos que precisam de colaborar uns com os outros, é o coração de todos os sistemas distribuidos. 21) Quais são as vantagens do uso de threads em vez de Processos em Sistemas Distribuídos? As threads podem compartilhar memória; São iniciadas de forma mais rápida; Podem ser encerradas assim que tiverem concluído sua função. 22) O que seria um thread despachante e um thread operário em servidores multithread? A thread despachante, seria a responsável pelas operações de I/O enquanto o operário ficaria responsável por realizar as operações de validação e análise dos dados pegos pelo despachante. 23) Explique o que seria uma máquina virtual de processo e qual a vantagem e desvantagem do seu uso. Uma Máquina virtual de processo nativo é executável em uma plataforma específica capaz de interpretar e executar instruções expressadas em um código binário especial, o qual é gerado pelo compilador da linguagem eg: .Net Java. 24) Explique o que seria um monitorde máquina virtual (VMM-VirtualMachineMonitor). É um programa que informa a plataforma onde a máquina está instalada qual o estado da máquina virtual para poder gerenciá-la e tratar problemas que possam vir a aparecer. 25) Defina o que seria um servidor iterativo e um servidor concorrente. Um servidor iterativo, funciona com base em iterações sequenciais, já o servidor concorrente pode atender a mais de uma requisição ao mesmo tempo por meio de threads. 26) Explique as características e diferenças entre um servidor com estado, sem estado e de estado flexível (softstate). Servidores sem estados são aqueles que simplesmente respondem as conexões de forma simples e direta, servidores com estado mantêm dados persistentes as respeito de seus usuários, geralmente mantêm inclusive tabelas sobre seus clientes. Estado flexível é quando são armazenados alguns dados sobre o cliente temporariamente, mas depois de certo tempo tais dados irão desaparecer. 27) Como funciona e qual o objetivo da técnica cookie adotada em aplicações web? Os cookies são itens que são armazenados localmente no browser somente no lado do servidor e podem ser usados para indicar coisas ao site como o carrinho de compras, ou até mesmo o número de sessão do usuário. 28) O que seria migração de código? Migração de código é o processo de migrar o código de algum lugar para outro, o que pode significar desde migração entre plataformas diferentes, linguagens de programação diferentes e até mesmo arquiteturas distintas. 29) Qual a diferença entre migração fraca e forte de código? Na migração fraca o código é movido e interrompido durante o processo (applets java) enquanto na migração forte o código é movido e pode continuar rodando do ponto em que estava, sem ter que reiniciá- lo. 30) Explique os tipos de vinculação existentes entre processos e recursos. São eles: Por Identificador; Por Valor; e Por Tipo. Em vinculação por identificador, é necessário criar uma nova referência global para o recurso enquanto nos recursos vinculados por valor, basta copiar o valor para outro lugar. No caso de vinculação por tipo, pode ser feita a alocação daquele recurso usando os recursos disponíveis locais ao religar os recursos antigos aos novos locais que contenham o mesmo tipo. 31) Defina o que é comunicação persistente, transiente, assíncrona e síncrona. Em uma comunicação persistente, uma mensagem que foi apresentada para transmissão é armazenada pelo middleware de comunicação (protocolo) durante o tempo que for necessário para entrega-la ao receptor;’ Na comunicação transiente uma mensagem é armazenada pelo sistema de comunicação somente durante o tempo em que a aplicação remetente e a aplicação receptora estiverem executando; Em uma comunicação assíncrona os dados são enviados e quem enviou continua sua execução logo após terminar de enviar. Em uma comunicação síncrona o remetente fica bloqueado esperando ter a confirmação que a mensagem foi enviada e recebida. 32) O que seria uma chamada remota de procedimento (RPC) e qual a vantagem do seu uso em Sistemas Distribuídos? A idéia fundamental do RPC é fazer com que uma chamada de procedimento remoto pareça com uma chamada local a um procedimento ou função. As principais vantagens são a escalabilidade porque pode se trocar o servidor de RPC por outro igual sem problemas e também para balancear a carga do sistema entre várias chamadas em lugares distintos. 33) Defina qual o papel do apêndice do cliente e do apêndice do servidor em uma chamada remota de procedimento. Faça também um diagrama para auxiliar na explicação. A função da apêndice do cliente é especificar que existe aquela função em algum lugar remoto, empacotar e enviar os dados para tal lugar e posteriormente receber os dados de resposta. A função da apêndice do servidor é receber os dados, passar para uma função local que os executará e retornará a resposta que será posteriormente devolvida para a apêndice do cliente. Chama a RPC Recebe os dados Executa funções e procedimentos locais 34) Qual a utilidade de uma linguagem de definição de interface (IDL – Interface Definition Language)? Ao usar uma interface linguagem de descrição de interface, o processo de comunicação cliente servidor com RPC fica mais simples porque é mais fácil de gerar nós clientes e servidores, em alguns casos o uso disto é obrigatório (depende do sistema) /middleware. 35) O que seria um procedimento remoto idempotente? Um RPC é considerado idempotente se o resultado de uma requisição realizada com sucesso é independente do número de vezes que é executada. 36) Explique como funciona um Sistema Distribuído em que a comunicação é realizada através do enfileiramento de mensagens. Quando as mensagens chegam ao buffer estas são armazenas e processadas em um sistema first in first out, e de acordo com o processamento do sistema o mesmo vai atendendo a todas as requisições e enfilerandos as que não pode atender imediatamente, para após retirá-las da fila e continuar o processamento. Existem diversas bibliotecas para isso como é o caso da ØMQ (Zero Message Queue). 37) O que faz um broker e um gerenciador de fila em um sistema de enfileiramento de mensagens? O broker é o middleware que armazena os destinos das mensagens, muito usado por causa das mensagens assíncronas. Também é conhecido como gerenciador de mensagens. O gerenciador de fila avalia a quanto tempo que um determinado cliente está na fila aguardando por sua resposta, sua principal função é tentar garantir que as mensagens sejam entregues a todos que fizerem requisição. 38) O que seria a comunicação orientada a fluxo? A comunicação orientada a fluxo ocorre quando há a necessidade de uma determinada ordem cronológica para a entrega de dados que pode ser simples como um fluxo de voz, ou complexo ou composto como um vídeo (voz mais imagens). 39) Qual a diferença entre mídia discreta e contínua? A mídia discreta é aquela que não exige sincronização como textos, imagens estáticas; já a mídia contínua precisa de uma sincronização por exemplo: a ordem dos quadros em um vídeo. 40) O que seria o modo de transmissão isócrono em comunicação orientada a fluxo? É quando mais de um fluxo precisa de estar sincronizado exemplo o áudio e a imagem de um stream de vídeo. 41) O que seriam protocolos epidêmicos? Protocolos de distribuição epidêmicos são muito bons para passar informações, assim que recebem atualizações eles se atualização e passam as atualizações a diante o nome é justamente por essa forma de se espalhar que assemelha-se a como as epidemias ocorrem em seres humanos. 42) Como funciona a abordagem de gossiping na disseminação de dados multicasting? A abordagem gossip ou por fococa funciona da seguinte maneira, quando um nó P recebe uma atualização de um item de dado x, este avisa um outro no Q e tenta atualizá-lo com essa nova informação, no entanto Q já poderia ter sido atualizado com essas informações por outro nó, o que vai diminuir o interesse de P em disseminar a informação.
Compartilhar