Questão de Programação — Linguagens de programação — ND 2014
Programação›Linguagens 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?
ABloco estruturado.
BClasse.
CFunção.
DEstrutura de seleção simples (se).
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.