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
- III, apenas.
- II e III.
- II, apenas.
- I e II.
- 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