Pular para o conteúdo principal

Questão de Banco de Dados — SQL Server — FGV 2024

Banco de DadosSQL Server
Código
fg091755
Banca
FGV
Órgão
Prefeitura de São José dos Campos - SP
Ano
2024
Nível
Superior
Cargo
Analista em Gestão Municipal (Tecnologia da Informação)
Com relação aos spinlock no MS SQL Server 2019, avalie as afirmativas a seguir.I. Os spinlocks não são uma exclusividade do MS SQL Server. São utilizados pelo sistema operacional quando é necessário obter acesso a uma determinada estrutura de dados somente por um curto intervalo de tempo. Por exemplo, quando uma thread não consegue obter acesso ao tentar adquirir um spinlock, ela é executada de maneira periódica se o recurso está disponível ou não, em vez de fazer uma suspensão imediata. Após algum tempo, a thread que está aguardando o spinlock será suspenso antes de poder adquirir o recurso. A suspensão permite que outras threads em execução na mesma CPU sejam executadas.II. O MS SQL Server usa spinlocks para proteger o acesso a algumas estruturas internas de dados. Os spinlocks são usados no mecanismo para serializar o acesso a determinadas estruturas de dados de maneira semelhante aos locks.III. A principal diferença entre o lock e o spinlock é o fato de que os locks executar um loop por um período verificando a disponibilidade de uma estrutura de dados. Por outro lado, uma thread tentando obter acesso a uma estrutura protegida por spinlock cederá imediatamente se recurso não estiver disponível. A suspensão requer a alternância de contexto de uma thread fora da CPU para que outra thread possa ser executada.Está correto o que se afirma em
  1. AIII, apenas.
  2. BII e III.
  3. CII, apenas.
  4. DI e II.
  5. EI e III.
Revelar gabarito e comentário

GabaritoD — I e II.

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”.

Spinlocks no MS SQL Server 2019

Gabarito: D (I e II). As afirmativas I e II estão corretas, pois descrevem corretamente o comportamento de spinlocks (espera ativa por curto período, com eventual suspensão) e seu uso no SQL Server. A afirmativa III inverte a definição: quem faz loop é o spinlock, enquanto locks suspendem a thread imediatamente.

Afirmativa

Conteúdo

Correta?

Justificativa

I

Spinlocks são usados pelo SO e SQL Server para acesso curto a estruturas; thread faz loop (busy-wait) por um período antes de eventual suspensão.

✅ Sim

Descreve corretamente o comportamento de spinlock: espera ativa seguida de possível suspensão.

II

SQL Server usa spinlocks para serializar acesso a estruturas internas de dados, de forma semelhante a locks.

✅ Sim

Spinlocks são mecanismos leves de sincronização no SQL Server para recursos de curta duração.

III

Afirma que spinlock suspende a thread imediatamente e lock faz loop.

❌ Não

Inverte os papéis: spinlock faz loop (busy-wait); lock suspende a thread imediatamente.

Afirmativa I — ✅ Correta

Descreve corretamente o funcionamento de um spinlock: ao tentar adquirir o recurso, a thread executa um loop (busy-wait) por um curto intervalo, e após um tempo (spin count) pode ser suspensa, permitindo que outras threads executem. Spinlocks são usados pelo sistema operacional e pelo SQL Server para proteger estruturas de dados por breves períodos.

Afirmativa II — ✅ Correta

Afirma que o SQL Server utiliza spinlocks para serializar o acesso a estruturas internas de dados, de forma semelhante aos locks. É correto: spinlocks são um mecanismo de sincronização leve no SQL Server para proteger recursos de curta duração.

Afirmativa III — ❌ Incorreta

A afirmativa troca os papéis: na verdade, o spinlock executa um loop (busy-wait) por um período verificando a disponibilidade, enquanto o lock (como um mutex) suspende a thread imediatamente se o recurso não estiver disponível. A descrição apresentada está invertida.

Gabarito: D (I e II).

Link permanente: /questoes/fg091755