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