Baixe o app para aproveitar ainda mais
Prévia do material em texto
05/06/2020 Revisar envio do teste: A3 – Sistemas Distribuídos - ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33777556_1&course_id=_570114_1&content_id=_1352358… 1/7 Revisar envio do teste: A3Sistemas Distribuídos - SI019 - CC-NR01 - 20201 - APOIO Atividades Revisar envio do teste: A3 Usuário IZADORA DE OLIVEIRA MACHADO PAIM Curso Sistemas Distribuídos - SI019 - CC-NR01 - 20201 - APOIO Teste A3 Iniciado 22/05/20 19:08 Enviado 22/05/20 19:08 Status Completada Resultado da tentativa 8,6 em 10 pontos Tempo decorrido 1 hora, 32 minutos de 1 hora e 30 minutos TEMPO EXTRA Instruções Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários Esta é a atividade avaliativa A3, durante a prova estarei na sala de webconferência para esclarecimentos de dúvidas sobre a prova. Seguem as instruções da avaliação: No blackboard - Atividades - A3 - às 19hs apenas. ATENÇÃO: Não feche o navegador depois de ter iniciado a avaliação, mesmo em caso de perda de conexão, pois irá encerrar a prova. O tempo de duração será de 90 minutos. Esta avaliação é individual e sem consulta. Durante a avaliação não é permitido uso de qualquer objeto tipo: Celular, Smartphone, Calculadoras, ... Observe a organização lógica do pensamento e preocupe-se com as categorias discutidas e demonstre apreensão delas em suas respostas. A avaliação vale 10(dez) pontos distribuídos em tem 10(dez) questões objetivas com valor 0,7 pontos e 2(duas) discursivas com valor 1,5 ponto cada. Boa sorte, Pergunta 1 Resposta Selecionada: A. Respostas: A. B. Na API Java fornece comunicação por datagrama UDP por meio de duas classes, DatagramSocket e DatagramPacket, sobre estas classes podemos afirmar que: i. Na classe “DatagramSocket” o argumento do método “send” é uma instância de DatagramPacket vazio. ii. Na classe “DatagramSocket” o método “setSoTimeout” permite o estabelecimento de um timeout para o método “receive”. São verdadeiras, apenas, as proposições Apenas II. Apenas II. Apenas I. Minha Área 0,7 em 0,7 pontos IZADORA DE OLIVEIRA MACHADO PAIM http://unifacs.blackboard.com/ https://unifacs.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_570114_1 https://unifacs.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_570114_1&content_id=_12093906_1&mode=reset https://unifacs.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_373_1 https://unifacs.blackboard.com/webapps/login/?action=logout 05/06/2020 Revisar envio do teste: A3 – Sistemas Distribuídos - ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33777556_1&course_id=_570114_1&content_id=_1352358… 2/7 C. D. Nenhuma. Ambas I e II. Pergunta 2 Resposta Selecionada: C. Respostas: A. B. C. D. E. A sincronização é um problema recorrente aos sistemas distribuídos, alvo de diversas pesquisas em todo o mundo. Dado esse problema da não sincronização nos sistemas distribuídos, é necessário que haja ações para que se garanta a possibilidade de comunicação entre os computadores da rede mesmo em situações adversas. Para que o servidor possa receber uma requisição de um cliente, é necessário que: Implemente um loop infinito para poder receber cada requisição que vai chegar do cliente. Use a API sockets para Windows. Use threads masters em cada requisição. Implemente um loop infinito para poder receber cada requisição que vai chegar do cliente. Utilize o modelo cliente-servidor. Use a arquitetura peer-to-peer para possibilitar o uso da API sockets. Pergunta 3 Resposta Selecionada: E. Respostas: A. B. C. D. E. Os sockets possibilitam um canal de comunicação entre computadores, permitindo que um processo associado a uma máquina localizada em uma rede possa se comunicar com outro processo localizado em outra máquina em uma rede diferente. De acordo com os conceitos sobre a classe Socket da API Java, qual a principal responsabilidade da exceção IOException? Indica que outro processo está usando a porta local. Escreve dados em um buffer associado ao socket. Indica ao sistema operacional para colocar o socket em modo de espera (passivo) para aguardar conexões de clientes. Associa o número da porta a um socket. Cria um novo socket a partir do estabelecimento de uma conexão para iniciar a comunicação (leitura e escrita). Indica que outro processo está usando a porta local. Pergunta 4 Suponha um cenário de um sistema distribuído onde um programa servidor escrito em uma linguagem (por exemplo, C++) fornece implementação de um objeto BLOB destinado a ser acessado por clientes que podem estar escritos em outra linguagem (por exemplo, Java), considere os aspectos de heterogeneidade do cenário e analise as asserções abaixo: i. Os computadores cliente e servidor podem ter hardware diferentes, desde que 0,7 em 0,7 pontos 0,7 em 0,7 pontos 0,7 em 0,7 pontos 05/06/2020 Revisar envio do teste: A3 – Sistemas Distribuídos - ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33777556_1&course_id=_570114_1&content_id=_1352358… 3/7 Resposta Selecionada: B. Respostas: A. B. C. D. eles estejam ligados em rede. ii. Embora os sistemas operacionais de todos os computadores na Internet precisem incluir uma implementação dos protocolos Internet, nem todos fornecem, necessariamente, a mesma interface de programação de aplicativos para esses protocolos. Desta forma o cliente e o servidor deste cenário precisam ser do mesmo sistema operacional. iii. Diferentes linguagens de programação usam diferentes representações para caracteres e estruturas de dados, como vetores e registros. Essas diferenças impedem os programas deste cenário de se comunicar. São verdadeiras, apenas, as proposições Apenas I. Apenas I e II. Apenas I. Apenas I e III. Apenas II. Pergunta 5 Resposta Selecionada: B. Respostas: A. B. C. D. As informações armazenadas nos programas em execução são representadas como estruturas de dados, enquanto que as informações presentes nas mensagens são sequências puras de bytes. Independente da forma de comunicação usada, as estruturas de dados devem ser simplificadas (convertidas em uma sequência de bytes) antes da transmissão e reconstruídas na sua chegada. A cerca de representação externa de dados e empacotamento, analise as asserções a seguir: i. A XML ou Extensible Markup Language, que define que os tipos de dados primitivos são empacotados em uma forma binária. ii. Na serialização de objetos da linguagem Java assim como na representação comum de dados do CORBA as atividades de empacotamento e desempacotamento se destinam a serem executadas por uma camada de middleware, sem nenhum envolvimento por parte do programador de aplicativo iii. JSON (JavaScript Object Notation) já é adotado como uma estratégia de representação de dados externos. São verdadeiras, apenas, as proposições Apenas a II e III são verdadeiras. Apenas a I e II são verdadeiras. Apenas a II e III são verdadeiras. Apenas a II é verdadeira. Apenas a I é verdadeira. Pergunta 6 Numa implementação usando Sockets, com as classes Java corretas importadas, considere a classe do lado do servidor definida como o exemplo a seguir. Analise as asserções sobre o código e responda a alternativa correta: public class Servidor { public static void main(String[] args) throws IOException { try (ServerSocket ouvinte = new ServerSocket(60000)) { System.out.println("O servidor Java está em execução."); while (true) { try (var socket = ouvinte.accept()) { var saida = new PrintWriter(socket.getOutputStream(), true); saida.println(“Mensagem a ser transmitida.”); } } } } 0,7 em 0,7 pontos 0 em 0,7 pontos 05/06/2020 Revisar envio do teste: A3 – Sistemas Distribuídos - ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33777556_1&course_id=_570114_1&content_id=_1352358…4/7 Resposta Selecionada: D. Respostas: A. B. C. D. E. } i. “throws IOException” pode gerar uma exceção no caso de a porta informada para o socket estiver sendo usada por outro processo. ii. O método getOutputStream() tem a função de gravar o fluxo que será enviado ao socket criado. iii. O método accept() irá gerar uma exceção no caso de não encontrar nenhum pedido de connect no socket. São verdadeiras, apenas, as proposições I. II e III. I e III. I e II. I. II. Pergunta 7 Resposta Selecionada: B. Respostas: A. B. C. D. E. Numa implementação usando Sockets, com as classes Java corretas importadas, considere a classe do lado do servidor definida como o exemplo a seguir. Analise as asserções sobre o código e responda a alternativa correta: public class Servidor { public static void main(String[] args) throws IOException { try (ServerSocket ouvinte = new ServerSocket(60000)) { System.out.println("O servidor Java está em execução."); while (true) { try (var socket = ouvinte.accept()) { var saida = new PrintWriter(socket.getOutputStream(), true); saida.println(“Mensagem a ser transmitida.”); } } } } } i. O método getOutputStream() tem função de ler o fluxo associado ao socket criado. ii. O método accept() é o responsável por colocar a instância do socket criado em escuta (listen) na porta 60000. iii. “ouvinte” é um objeto do tipo Socket instanciado com a porta de comunicação que será usada pelo sistema operacional. São verdadeiras, apenas, as proposições II e III. I e III. II e III. I. I e II. II. Pergunta 8 A escolha da arquitetura que será utilizada para projetar um sistema distribuído é essencial para o seu funcionamento e, dentre tantas opções, deve-se escolher a mais adequada para cada tipo de problema a ser resolvido. Dito isso, assinale a alternativa que apresenta qual estilo arquitetural possui uma arquitetura distribuída e não 0,7 em 0,7 pontos 0,7 em 0,7 pontos 05/06/2020 Revisar envio do teste: A3 – Sistemas Distribuídos - ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33777556_1&course_id=_570114_1&content_id=_1352358… 5/7 Resposta Selecionada: B. Respostas: A. B. C. D. apresenta ponto único de falha, além disso, permite que os nós da rede se comportem como emissor e receptor de dados Peer-to-peer. SOAP Peer-to-peer. Cliente-servidor. Orientada a serviços. Pergunta 9 Resposta Selecionada: E. Respostas: A. B. C. D. E. Os sockets possibilitam um canal de comunicação entre computadores, permitindo que um processo associado a uma máquina localizada em uma rede possa se comunicar com outro processo localizado em outra máquina em uma rede diferente. De acordo com os conceitos sobre a classe Socket da API Java, qual a principal responsabilidade do método getInputStream()? Associa o número da porta a um socket. Cria um novo socket a partir do estabelecimento de uma conexão para iniciar a comunicação (leitura e escrita). Indica ao sistema operacional para colocar o socket em modo de espera (passivo) para aguardar conexões de clientes. Escreve dados em um buffer associado ao socket. Lê o conteúdo do buffer associado ao socket. Associa o número da porta a um socket. Pergunta 10 Resposta Selecionada: B. Numa implementação usando Sockets, com as classes Java corretas importadas, considere a classe do lado do servidor definida como o exemplo a seguir. Analise as asserções sobre o código e responda a alternativa correta: public class Servidor { public static void main(String[] args) throws IOException { try (ServerSocket ouvinte = new ServerSocket(60000)) { System.out.println("O servidor Java está em execução."); while (true) { try (var socket = ouvinte.accept()) { var saida = new PrintWriter(socket.getOutputStream(), true); saida.println(“Mensagem a ser transmitida.”); } } } } } i. Será criado um objeto do tipo ServerSocket especificando a porta de comunicação que será usada pelo sistema operacional. ii. Será exibido uma mensagem no console da IDE de programação para avisar que o servidor está em execução. iii. Utiliza um laço para possibilitar o servidor estar disponível para o recebimento de até 60000 novas requisições dos clientes. São verdadeiras, apenas, as proposições Apenas a I e II são verdadeiras 0 em 0,7 pontos 0,7 em 0,7 pontos 05/06/2020 Revisar envio do teste: A3 – Sistemas Distribuídos - ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33777556_1&course_id=_570114_1&content_id=_1352358… 6/7 Respostas: A. B. C. D. E. Apenas a I é verdadeira Apenas a I e II são verdadeiras Apenas a II e III são verdadeiras Apenas a I e III são verdadeiras Apenas a II é verdadeira Pergunta 11 Resposta Selecionada: Resposta Correta: Feedback da resposta: [Sem Resposta] Na chamada de procedimento remoto (RPC), os procedimentos em máquinas remotas podem ser chamados como se fossem procedimentos no espaço de endereçamento local. Então, o sistema RPC oculta os aspectos importantes da distribuição, incluindo a codificação e a decodificação de parâmetros e resultados, a passagem de mensagens e a preservação da semântica exigida para a chamada de procedimento. Neste contexto uma interface Election fornece dois métodos remotos: i. vote: este método possui dois parâmetros por meio dos quais o cliente fornece o nome de um candidato (uma string) e o “número do votante” (um valor inteiro usado para garantir que cada usuário vote apenas uma vez). ii. result: este método possui dois parâmetros com os quais o servidor fornece para o cliente o nome de um candidato e o número de votos desse candidato. O serviço Election deve garantir que um voto seja registrado quando o usuário depositar o seu voto. Então responda: a. Explique o efeito do uso da semântica talvez no serviço Election. b. Explique se a semântica pelo menos uma vez seria aceitável para o serviço Election ou você usaria a semântica no máximo uma vez? a semântica talvez não garante que o método foi executado a semântica pelo menos uma vez gararante a execução do método, pois há retransmissão da mensagem a) Provavelmente a semântica talvez seja obviamente a mais inadequada para votação, pois o efeito que não garante que o voto foi registrado ou se foi registrado mais de uma vez. b) Sim seria aceitável, pois o texto especifica que o número do eleitor é usado para garantir que o usuário vote apenas uma vez. Isso significa que o servidor mantém um registro de quem votou. Portanto, a semântica pelo menos uma vez é a mais indicada, porque qualquer tentativa repetida de voto é frustrada pelo servidor. Pergunta 12 Segundo Coulouris, 2013, o sistema RPC oculta os aspectos importantes da distribuição, incluindo a codificação e a decodificação de parâmetros e resultados, a passagem de mensagens e a preservação da semântica exigida para a chamada de procedimento. Esse conceito foi apresentado pela primeira vez por Birrell e Nelson [1984]. Neste conceito onde é necessário preservar a semântica, explique se e o porquê as seguintes operações são idempotentes: i) pressionar o botão “subir” (elevador); ii) salvar um arquivo; 1,5 em 1,5 pontos Exibir rubrica 1,5 em 1,5 pontos 05/06/2020 Revisar envio do teste: A3 – Sistemas Distribuídos - ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_33777556_1&course_id=_570114_1&content_id=_1352358… 7/7 Sexta-feira, 5 de Junho de 2020 15h15min30s BRT Resposta Selecionada: Resposta Correta: Feedback da resposta: [Sem Resposta] iii) anexar dados em um arquivo. i) indempotente, para garatinr que o elevador irá continuar subindo até o últimoandar solicitado, sem que haja uma mudança de sentido caso o botão do elevador seja apertao em algum andar abaixo do que ele está no momento. ii) indempotente, para garantir que o arquivo seja gravado e não corra o risco de uma nova ação subscrever a ação de gravar, ocasioando a perda do arquivo. ii) não é indempotente, pois precisa permitir que o anexo seja removido . Caso fosse indempotente , isso não aconteceria. A operação para pressionar o botão subir definida em (i), é um caso em que a operação é idempotente porque pode ser repetida várias vezes com o mesmo efeito. (ii) a operação de gravação é aplicada a uma sequência especificada de dados e local; nesse caso, a operação é idempotente porque pode ser repetida várias vezes com o mesmo efeito. (iii) A operação para anexar dados a um arquivo não é idempotente, porque o arquivo é estendido toda vez que essa operação é executada. ← OK javascript:launch('/webapps/gradebook/do/student/viewAttempts?course_id=_570114_1&method=list&nolaunch_after_review=true');
Compartilhar