FC ConcursosFC Concursos

Questão FC369559

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

Sistema de Gerenciamento de Banco de Dados (SGBD)

FGV · 2024

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. III, apenas.
  2. II e III.
  3. II, apenas.
  4. I e II.
  5. I e III.
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

Spinlocks são primitivas de sincronização leves usadas tanto pelo sistema operacional quanto por aplicações como o SQL Server. Elas são indicadas quando o tempo de espera pelo recurso deve ser muito curto, evitando o custo de uma troca de contexto imediata.

Quando uma thread não consegue adquirir um spinlock, ela executa um loop ativo (spinning), verificando periodicamente se o recurso ficou disponível. Se a espera se estender além de um limite razoável, a thread pode ser suspensa para liberar CPU a outras atividades.

No SQL Server, spinlocks são empregados para proteger o acesso a determinadas estruturas internas de dados. Eles servem para serializar acesso concorrente de forma eficiente em cenários de espera curta, reduzindo overhead comparado à espera bloqueante.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo