Espera activa (busy waiting)
Esperar manteniendo al procesador dando vueltas en un bucle que no hace nada útil hasta que se cumple una condición o pasa el tiempo.
El retardo más antiguo del firmware es for (i = 0; i < 100000; i++);. Tiene dos fallos clásicos: el optimizador elimina el bucle entero si el contador no es volatile, y el retardo deja de ser correcto en cuanto alguien cambia la frecuencia de reloj o los flags del compilador. Linux calibra su bucle de retardo al arrancar; ese número es el que se imprime como BogoMIPS.
Para esperas cortas, unos pocos microsegundos dentro de un driver, la espera activa suele ser lo correcto: dormir y despertar cuesta más que la propia espera. Para cualquier cosa más larga es mejor un temporizador o una llamada al RTOS que deje trabajar a otras tareas. Un spinlock no es más que espera activa con un cerrojo como condición.