Spinlock

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En ingeniería de software, un spinlock es cuando un hilo (o thread) simplemente espera en un bucle ("spins") repetidamente hasta que se cumple una condición, como por ejemplo la llegada de un paquete por la red o un semáforo que se haga disponible.

Este tipo de bloqueos son muy eficientes sólo si lo más probable es que los hilos permanezcan bloqueados durante un corto intervalo de tiempo, pues evitan la sobrecarga que implica la replanificación de tareas del sistema operativo. Por esta razón, los núcleos de los sistemas operativos emplean con frecuencia los spinlocks en circunstancias donde es más probable que sean eficientes. Si el bloqueo se mantiene durante un período elevado de tiempo los spinlocks son muy costosos.

Es por ello que los spinlocks se emplean típicamente para operaciones con elevada carga como puede ser analizar un volumen elevado de tráfico de red o atención de interrupciones hardware.