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
-
A III, apenas.
-
B II e III.
-
C II, apenas.
-
D I e II.
-
E I e III.