Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Distribuídos - SAGAH Questão 1 : Para que um sistema seja tolerante a falhas, a possibilidade de continuar funcionando, e de forma transparente, deve ser possível. Uma ideia amplamente utilizada e que funciona muito bem para que essa funcionalidade seja atingida é a replicação de recursos computacionais; ou seja, existem cópias exatas (e constantemente atualizadas) que podem assumir o papel a qualquer momento que as máquinas de produção falharem. Diversos tipos de problemas podem ser mascarados por replicação de recursos computacionais, exceto: A resposta correta é a opção A Justificativa: Falhas de comunicação ou de troca de processos entre servidores não ficam evidentes ao cliente, pois toda essa movimentação acontece em uma camada a que o próprio cliente não tem acesso. O cliente apenas consome serviços, recursos ou o que o sistema distribuído está oferecendo a ele. Erros de comunicação entre servidores podem ser contornados com novas requisições. Troca de processos entre servidores também acontecem de forma transparente. O cliente apenas terá demora para ter sua requisição respondida, mas sem visualizar claramente que houve um erro, mantendo, assim, a funcionalidade de transparência. Quando se fala de transporte orientado à conexão, também se está falando do uso de algoritmo TCP; ou seja, depois que a conexão foi estabelecida com um servidor concluindo o processo completo (three way handshake), e este de repente falha, não é possível simplesmente mover a conexão já estabelecida para outro recurso computacional, deixando evidente a falha ocorrida para o cliente, quebrando a premissa de transparência que deve ser inerente ao sistema distribuído. O que pode ser feito é uma nova requisição para o sistema, fazendo com que a conexão com o cliente seja restabelecida. A falhas de comunicação entre cliente e servidor em uma ideia peer-to-peer, visto que utilizam transporte orientado a conexão, e, depois de estabelecido com determinado recurso computacional que falha, esta não pode ser simplesmente movida pela própria tecnologia da conexão. B falhas de comunicação entre cliente e servidor em uma ideia peer-to-peer, visto que utilizam transporte orientado a conexão, e, depois de estabelecido com determinado recurso computacional que falha, esta não pode ser simplesmente movida pela própria tecnologia da conexão. C falhas de comunicação entre servidores agrupados em grupo simples, visto que utilizam conexões dedicadas entre os nós, e, dessa forma, toda a transparência inerente ao contexto de sistemas distribuídos é quebrada pela necessidade de a conexão entre servidores ser restabelecida. D falhas de comunicação entre servidores agrupados em grupo hierárquico, já que o nó coordenador é o ponto inicial da comunicação, e toda a transparência inerente ao contexto de sistemas distribuídos é quebrada pela necessidade de o nó coordenador emitir exceções, tanto para o servidor quanto para o cliente. E falhas de processos entre servidores agrupados em grupo hierárquico, visto que o nó coordenador necessita realocar o processo criado para outro nó operário, e a transparência é quebrada, pois fica evidente ao usuário o processo de realocação de recursos entre servidores. Questão 2 : Computação em nuvem é um exemplo real de sistemas distribuídos. Qual das seguintes alternativas contempla os modelos de implantação de nuvens computacionais? A resposta correta é a opção A Justificativa: Os modelos de implantação de nuvem definem como os recursos são compartilhados nesse ambiente. Os modelos de implantação propostos são nuvem privada, nuvem pública, nuvem híbrida e nuvem comunitária. Nuvem heterogênea é uma característica desse sistema distribuído. A Nuvem privada, nuvem pública, nuvem híbrida e nuvem comunitária. B Nuvem heterogênea e nuvem pública. C Nuvem heterogênea, nuvem pública, nuvem híbrida e nuvem comunitária. D Nuvem heterogênea e nuvem híbrida. E Nuvem comunitária, nuvem heterogênea e nuvem privada. Questão 3 : A comunicação em sistemas distribuídos é realizada por meio de troca de mensagens devido à carência diretamente relacionada a uma das principais dificuldades enfrentadas por todo e qualquer projetista de um modelo arquitetural de um sistema distribuído. Qual é o nome dessa carência? A resposta correta é a opção E Justificativa: A comunicação em um sistema distribuído é realizada através de troca de mensagens devido à ausência de memória global compartilhada entre os componentes. A ausência de relógio global não interfere na comunicação entre os componentes em um sistema distribuído. Protocolos devem ser considerados para estabelecimento de conexões entre os componentes. A existência de padrões (ou não) não está dentre as principais dificuldade enfrentadas pelos projetistas, bem como o papel de um middleware. A Ausência de relógio global. B Ausência de protocolos estabelecidos entre os componentes. C Ausência de padrões nas definições dos modelos arquiteturais. D Ausência de um middleware responsável por prover a comunicação entre os componentes. E Ausência de memória global compartilhada entre os componentes. Questão 4 : A taxonomia de Flynn é amplamente utilizada para classificar sistemas computacionais e arquiteturas baseando-se no fluxo de instruções e no fluxo de dados. Em qual das seguintes classificações se encontram os supercomputadores? A resposta correta é a opção E Justificativa: Nesse sistema distribuído, um mesmo programa é executado em múltiplas máquinas, em que também são executadas diferentes instruções sob diferentes dados. Como as quatro classes propostas por Flynn (SISD, MISD, SIMD e MIMD) não preveem o nível de execução de um programa, os supercomputadores são classificados como SPMD (Single Program Multiple Data). A SISD (Single Instruction Single Data). B MISD (Multiple Instructions Single Data). C SIMD (Single Instruction Multiple Data). D MIMD (Multiple Instructions Multiple Data). E SPMD (Single Program Multiple Data). Questão 5 : Quando se fala em sistemas distribuídos, fala-se de agrupamento de recursos computacionais para determinado fim. Nesse contexto, há basicamente dois tipos: grupo simples e grupo hierárquico. Para grupos simples, existe redundância de links de acesso entre os nós participantes, mas, para o agrupamento hierárquico, existe um nó coordenador que define para qual nó operário determinada comunicação deve ser direcionada. Mas quando esse nó falha e não existe uma replicação direta para ele, o que acontece? A resposta correta é a opção C Justificativa: Como é comum em sistemas distribuídos agrupados de forma hierárquica, os nós participantes conhecem seus vizinhos, e métricas são trocadas para que haja uma eleição entre os nós. Aquele com as melhores métricas assume o papel de coordenador daquele grupo hierárquico.É importante sempre lembrar que o objetivo de um sistema distribuído, sendo ou não tolerante a falhas, é manter a transparência ao usuário. Assim, permitir que o usuário compreenda que houve um erro nunca é o objetivo. Lançar exceções ao usuário só pode ser um contexto aceitável se o cliente conectado estiver utilizando um software que possa tratar essa exceção sem deixar claro para o usuário. Não é concebível a ideia de que um sistema distribuído, tolerante ou não tolerante a falhas, tenha como parte de seu algoritmo tempo de espera e downtime. A Assim que os computadores participantes do grupo de nós percebem que não há um coordenador, o sistema como um todo para, sem enviar sinais de exceção aos clientes, e aguarda que um novo nó com a função de coordenador seja substituído. B Assim que os computadores participantes do grupo de nós percebem que não há um coordenador, é lançada uma exceção entre os servidores operários para que eles aguardem novas instruções de um novo servidor coordenador. Os servidores terminam seu processamento atual, respondem para seus clientes e, por fim, aguardam. C Assim que os computadoresparticipantes do grupo de nós percebem que não há um coordenador, é feita uma eleição de forma específica e com métricas bem determinadas entre os nós operários para que um deles assuma o papel de coordenador. D Assim que os computadores participantes do grupo de nós percebem que não há um coordenador, todas as conexões com os clientes são encerradas por meio de exceção, e um temporizador aleatório para cada nó é acionado até que haja um novo coordenador. Esse processo se repete até que possa haver um nó coordenador. E Assim que os computadores participantes do grupo de nós percebem que não há um coordenador, assumem por tempo indeterminado sua própria gestão até que seja possível a substituição por um novo coordenador, que, ao participar do grupo, avisa para todos os nós de seu papel, assumindo novamente o controle. Questão 6 : A comunicação em sistemas distribuídos ocorre por troca de mensagens, em que há alguns mecanismos para que essas mensagens possam ser trocadas. Existem alguns métodos de comunicação entre processos que realizam a troca de mensagens. Sobre esses métodos, marque V para verdadeiro e F para falso. ( ) Na comunicação síncrona bloqueante, o seu destino (send) aguarda até que a mensagem chegue ao seu receptor, e a origem (receive) aguarda até que a mensagem fique disponível. ( ) Na comunicação assíncrona não bloqueante, as mensagens podem ser enviadas uma após a outra. ( ) A comunicação por portas não ocorre por meio de regras padronizadas do modelo OSI e não utiliza protocolos. ( ) A comunicação por grupo multicast é um paradigma de comunicação indireta. Todos os processos pertencentes a um determinado grupo recebem mensagens, mas não reconhecem a identidade do destinatário. Feito isso, assinale a alternativa que apresenta a sequência correta. A resposta correta é a opção C Justificativa: A primeira afirmativa é verdadeira, por abordar o conceito correto de comunicação síncrona, na qual há o destino (send), que espera até a mensagem chegar ao seu receptor, e a origem (receive), que aguarda até a mensagem ficar disponível, ou seja, uma mensagem só chega quando a mensagem anterior foi processada e entregue ao seu destino. Caso contrário, o envio é bloqueado até que a comunicação anterior seja finalizada. Nesse caso, send e receive atuam como operações de bloqueio. A segunda afirmativa é verdadeira, por abordar o conceito correto de comunicação assíncrona, na qual há mensagens sendo enviadas quantas vezes forem necessárias pelo receptor/transmissor, desde que elas sejam entregues. Não existe a necessidade de uma resposta. Sendo assim, as operações send e receive não atuam como operações bloqueantes. A terceira afirmativa é falsa, porque aborda o conceito de comunicação por portas de maneira errada. Esse tipo de comunicação utiliza, sim, protocolos e regras padronizadas do modelo OSI. A quarta afirmativa é verdadeira, por abordar o conceito correto de comunicação por grupo multicast. A F, F, V, V. B F, V, F, V. C V, V, F, V. D V, F, V, F. E F, F, F, V. Questão 7 : Uma equipe de engenheiros de software está criando um aplicativo para monitorar os sinais vitais de uma pessoa, usando uma rede de sensores. Qual das seguintes opções são preocupações que fazem parte desse projeto de sistema distribuído? A resposta correta é a opção C Justificativa: Um sistema distribuído pervasivo que deseja monitorar os sinais vitais de uma pessoa deve se preocupar primordialmente em lidar com os desafios de perda dos dados, segurança, privacidade, envio de alertas, robustez no monitoramento e diagnóstico online. O médico precisa saber a localização do paciente e dos dispositivos, a fim de não comprometer uma vida com o diagnóstico para uma pessoa errada. A Perda de dados e transparência. B Segurança, transparência e privacidade. C Privacidade, perda de dados, segurança e envio de alertas. D Envio de alertas, transparência e perda de dados. E Transparência, envio de alertas e privacidade. Questão 8 : A comunicação entre processos pode ser realizada por meio de alguns métodos. Um deles é mecanismo de serviço de transporte utilizado para a comunicação entre processos em um sistema distribuído, sendo gerenciados pela camada de protocolos de transporte, e utilizam as funcionalidades de comunicação TCP/IP. Essa comunicação é a: A resposta correta é a opção B Justificativa: Na comunicação cliente-servidor, os clientes são os processos que solicitam serviços, e o servidor são os processos que recebem esses requisitos. Por padrão, o cliente envia uma mensagem para o servidor solicitando um serviço e aguarda a resposta. Comunicação por sockete é a alternativa correta, porque o conceito abordado no enunciado da questão trata exclusivamente do método de comunicação de troca de mensagens entre processos por sockete. Para que um processo receba mensagens, seu sockete deve estar vinculado a uma porta local e a um dos endereços IP do computador em que é executado. As mensagens enviadas para um endereço IP e um número de porta em particular só podem ser recebidas por um processo, cujo sockete esteja associado a esse endereço IP e a esse número de porta. Memória compartilhada é um método de comunicação entre processos de sistemas não distribuídos. Middleware é um programa mediador, e não um método de comunicação entre processos de um sistema distribuído. A sincronização reordena os processos para que não ocorram acessos excessivos e desorganizados em uma determinada comunicação. Sendo assim, a sincronização auxilia na comunicação, mas não é um exemplo de comunicação entre processos. A cliente-servidor. B por sockete. C por memória compartilhada. D por middleware. E por sincronização. Questão 9 : A heterogeneidade está presente nas redes, hardwares, sistemas operacionais, linguagens de programação e códigos dos desenvolvedores. Qual das seguintes tecnologias é usada para abstrair a heterogeneidade no hardware em sistemas distribuídos? A resposta correta é a opção B Justificativa: RMI, CORBA e RPC são middlewares que simplificam a comunicação entre processos em diferentes plataformas. SOAP é um protocolo de comunicação entre diferentes sistemas na Web. JVM é uma máquina virtual que permite interpretar bytecode e executar em diferentes hardwares (ex.: celulares e computadores). Programas escritos em linguagens que geram bytecode podem ser executados na JVM (ex.: Java, Scala e Groovy). A RMI (Remote Method Invocation). B JVM (Java Virtual Machine). C CORBA (Common Object Request Broker Architecture). D RPC (Remote Procedure Call). E SOAP (Simple Object Access Protocol). v Questão 10 : Em um sistema distribuído, é necessário desenvolver técnicas eficientes para a distribuição de todos os processos que envolvem os elementos de processamento. Entende-se por distribuição a atividade de escalonamento de processos. A figura a seguir demonstra um método de algoritmo de escalanamento conhecido como prioridade: Além do método por prioridade, no algoritmo de escalonamento de sistemas em lote há quais exemplos? A resposta correta é a opção E Justificativa: Chaveamento circular (round-robin), prioridades, múltiplas filas, shortest process next, garantido e lottery são exemplos de algoritmos de escalonamento de sistemas interativos. Interativo e tempo real são exemplos de sistemas em que há algoritmos de escalonamento, já garantido é um exemplo de algoritmo de escalonamento de sistemas interativos. Os sistemas em lote têm três exemplos de algoritmo de escalonamento: First-come First-served (FIFO), Shortest job first (SJF) e Shortest remaining time next (SRTN). Cada um deles tem suas particularidades, sendo que o FIFO é o mais utilizado. A Chaveamento circular (round-robin), prioridade e múltiplas filas. B Shortest process next, garantido e lottery. C Interativo, tempo real e garantido. D Chaveamento circular (round-robin), prioridade e garantido. E First-come First-served, Shortest job first e Shortestremaining time next.
Compartilhar