Nota: Todas as questões foram extraídas de provas do ENADE, e podem ter sofrido alterações.
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:
É correto apenas o que se afirma em:
Justifique as afirmações consideradas falsas.
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.
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.
Em um sentido abstrato, o comportamento que queremos é mostrado na figura a seguir:
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.
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.
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.