Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — ND 2014

ProgramaçãoLinguagens de programação
Código
qq089899
Banca
ND
Órgão
INPE
Ano
2014
Nível
Superior
Cargo
Tecnologista da Carreira de Desenvolvimento Tecnológico - TJ 04
Suponha que você precise implementar um uma estrutura do tipo monitor para controlar uma determinada região crítica de memória. Qual seria a estrutura presente em linguagens de programação mais adequada entre as presentes nas alternativas abaixo?
  1. ABloco estruturado.
  2. BClasse.
  3. CFunção.
  4. DEstrutura de seleção simples (se).
  5. EEstrutura de seleção múltipla (caso).
Revelar gabarito e comentário

GabaritoB — Classe.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Monitor em linguagens de programação

A questão testa o conhecimento sobre o conceito de monitor, uma estrutura de sincronização para controle de concorrência. Um monitor encapsula dados, métodos e a exclusão mútua necessária para acessar uma região crítica. Em linguagens de programação modernas (como Java e C#), a implementação mais adequada de um monitor é por meio de uma classe, que permite agrupar variáveis e métodos com controle de acesso (synchronized, lock).

Estrutura

Adequada para monitor?

Motivo

Bloco estruturado

Conceito genérico, sem sincronização

Classe

Encapsula dados e métodos com controle de concorrência

Função

Sem encapsulamento de estado nem sincronização

Seleção simples (se)

Apenas controle de fluxo condicional

Seleção múltipla (caso)

Apenas controle de fluxo condicional

Alternativa A — ❌ Incorreta

Bloco estruturado é um conceito genérico de programação estruturada (sequência, decisão, iteração), mas não oferece os mecanismos de sincronização (exclusão mútua, variáveis de condição) necessários para implementar um monitor.

Alternativa B — ✅ Correta

Uma classe é a estrutura que melhor se adequa à implementação de um monitor. Em linguagens orientadas a objetos, a classe permite encapsular os dados compartilhados e os métodos que os manipulam, podendo-se adicionar controle de concorrência (ex.: métodos synchronized em Java). O monitor é frequentemente implementado como uma classe cujos métodos são mutuamente exclusivos.

Alternativa C — ❌ Incorreta

Uma função é uma unidade de código que executa uma tarefa específica, mas não possui o encapsulamento de estado nem os mecanismos de sincronização necessários para um monitor. Monitores exigem dados persistentes entre chamadas e controle de acesso, o que uma função isolada não provê.

Alternativa D — ❌ Incorreta

Estrutura de seleção simples (se) é uma estrutura de controle de fluxo condicional, não serve para implementar um monitor, pois não oferece encapsulamento nem sincronização.

Alternativa E — ❌ Incorreta

Estrutura de seleção múltipla (caso) também é apenas uma estrutura de controle de fluxo, sem os recursos necessários para um monitor.

PEGA ESSA DICA!

Em provas de programação concorrente, lembre-se: monitor = classe com métodos sincronizados. Java, C# e outras linguagens OO usam classes para implementar monitores.

Gabarito: letra B

Link permanente: /questoes/qq089899