Sistemas Distribuídos

Exercícios

Última ocorrência: 2023-21-09 em Universidade LaSalle Canoas

Posts Relacionados

Nota: Todas as questões foram extraídas de provas do ENADE, e podem ter sofrido alterações.

Questão 1

Um sistema monitora o deslocamento de um carro por maio do registro em um banco de dado, de segundo em segundo, das medidas de dois acelerômetros: um na direção langitudinal do movimento do carro, um na direção transversal.

O projeto desse sistema é decomposto em três subprojetos. O primeiro, denominado MÓDULO_1, formado por hardware e software, é embarcado no carro e dotado de sistema de comunicação com a Internet por GPRS. O segundo, MÓDULO_2, é um projeto de software aplicativo executado em plataforma Android para tablet ou smartphone, para exibição de relatórios para usuários. O terceiro subprojeto, MÓDULO_3, é formado por hardware e software instalado em um servidor em nuvem com conexão dedicada permanente com a internet.

O projeto tem as seguintes especificações:

A partir dessas informações, avalie as afirmações a seguir:

  1. O MÓDULO_1 deve ter capacidade de armazenamento de dados suficiente para um dia de leituras, a serem enviadas para o MÓDULO_3.
  2. Todos os subprojetos têm interface de comunicação pela internet e a interface com o usuário é feita no MÓDULO_2.
  3. O melhor local para se executar o processamento dos dados para o relatório é o MÓDULO_1, que está sempre conectado e tem maior capacidade de processamento.
  4. O melhor local para se instalar o banco de dados para as leituras é o MÓDULO_3, que dispõe de maior capacidade de armazenamento e conexão permanente com a internet.

É correto apenas o que se afirma em:

Justifique as afirmações consideradas falsas.

Questão 2

Quando um computador é multiprogramado, ele geralmente tem múltiplos processos ou threads que competem pela CPU ao mesmo tempo. Essa situação ocorre sempre que dois ou mais processos estão simultaneamente no estado pronto. Se somente uma CPU se encontrar disponível, deverá ser feita uma escolha de qual processo executar em seguida. A parte do sistema operacional que faz a escolha é chamada de escalonador, e o algoritmo que ele usa é o algoritmo de escalonamento. TANENBAUM, A. S. Sistemas Operacionais Modernos.
3. ed., São Paulo: Pearson, 2010 (adaptado)

Considerando que em ambientes diferentes são necessários algoritmos diferentes de escalonamento, garantindo assim que seja maximizado o uso de seus recursos, assinale a opção que apresenta um algoritmo de escalonamento seguido do tipo de ambiente no qual deva ser implementado.

Questão 3

Durante parte do tempo, um processo está ocupado realizando computações internas e outras coisas que não levam a condições de corrida. No entanto, às vezes, um processo tem de acessar uma memória compartilhada ou arquivos, ou realizar outras tarefas críticas que podem levar a corridas. Essa parte do programa onde a memória compartilhada é acessada é chamada de região crítica ou seção crítica. Se conseguíssemos arranjar as coisas de maneira que dois processos jamais estivessem em suas regiões críticas ao mesmo tempo, poderíamos evitar as corridas. Embora essa exigência evite as condições de corrida, ela não é suficiente para garantir que processos em paralelo cooperem de modo correto e eficiente usando dados compartilhados. Precisamos que quatro condições se mantenham para chegar a uma boa solução.

  1. Dois processos jamais podem simultaneamente estar dentro de suas regiões críticas.
  2. Nenhuma suposição pode ser feita a respeito de velocidades ou de número de CPUs.
  3. Nenhum processo executando fora de sua região crítica pode bloquear qualquer processo.
  4. Nenhum processo deve ser obrigado a esperar eternamente para entrar em sua região crítica.

Em um sentido abstrato, o comportamento que queremos é mostrado na figura a seguir:

Exclusão mútua usando regiões críticas TANENBAUM, A. S. Sistemas Operacionais Modernos.
4. ed. Versão para Biblioteca Virtual Pearson.
São Paulo: Pearson Education do Brasil, p. 83, 2016 (adaptado)

Considerando o texto e a figura apresentados, avalie as asserções a seguir e a relação proposta entre elas.

  1. Em algumas situações, a exclusão mútua pode ser obtida por meio da desabilitação da interrupção controlada pelo Sistema Operacional, não sendo permitido que o seu controle seja feito pelo usuário. PORQUE
  2. A desabilitação da interrupção é uma técnica que pode impedir que o processador que está executando um processo em sua região crítica seja interrompido para executar outro código, sendo mais eficiente em sistemas de multiprocessadores devido a quantidade de processos concorrentes.

A respeito dessas asserções, assinale a opção correta:

Justifique as afirmações consideradas falsas, ou por que a afirmação são 2 não justifica a afirmação 1.

Questão 4

Um programador inexperiente está desenvolvendo um sistema multithread que possui duas estruturas de dados diferentes, E1 e E2, as quais armazenam valores inteiros. O acesso concorrente a essas estruturas é controlado por semáforos. Durante a sua execução o sistema dispara as threads T1 e T2 simultaneamente. A tabela a seguir possibilita uma visão em linhas rerais dos algolritmos dessas threads:

T1 T2
Aloca E1 Aloca E2
Calcula a média M1 Calcula a soma S1 de todos os valores de E2
Aloca E2 Aloca E1
Calcua a média M2 dos valores de E2 Calcula a soma S2 de todos os valores de E1
Calcula M3 = M1 + M2 Calcula S3 = |S1 - S2|
Soma M3 em todos os valores de E2 Subtrai S2 de todos os valores de E1
Libera E1 Libera E2
Libera E2 Libera E1

Durate a execução do referido programa, é possível que:

Justifique as respostas consideradas incorretas.