Un underrun es una condición en la que un búfer de datos se vacía antes de que el proceso o dispositivo que lo consume haya terminado de procesar los datos previamente cargados. Esto significa que el productor de datos no puede mantener el ritmo del consumidor, lo que lleva a una interrupción en el flujo de datos. Es el opuesto de un 'overrun', donde el búfer se desborda porque el productor es demasiado rápido para el consumidor. Los underruns son críticos en sistemas de tiempo real y de baja latencia, donde la interrupción del flujo de datos puede tener consecuencias significativas.

En el mundo real, los underruns son comunes en varios sistemas. Por ejemplo, en la reproducción de audio y video, un underrun del búfer puede causar 'stuttering' o 'skipping' (saltos en la reproducción) si el sistema de almacenamiento o la red no pueden entregar los datos a tiempo al reproductor. En grabadoras de CD/DVD, un 'buffer underrun' durante el proceso de escritura puede inutilizar el disco. En sistemas de procesamiento de paquetes de red, un underrun en un búfer de transmisión puede resultar en paquetes descartados o retransmisiones. En sistemas operativos, los underruns pueden ocurrir en búferes de DMA (Direct Memory Access) cuando un periférico no recibe datos de la memoria principal lo suficientemente rápido.

Para un Arquitecto de Sistemas, comprender los underruns es fundamental para diseñar sistemas robustos y de alto rendimiento. Implica tomar decisiones sobre el tamaño de los búferes, la priorización de procesos, la gestión de la concurrencia y la elección de hardware. Un arquitecto debe evaluar los trade-offs entre latencia y rendimiento: búferes más pequeños reducen la latencia pero aumentan la probabilidad de underruns, mientras que búferes más grandes pueden mitigar los underruns a expensas de una mayor latencia. Es crucial diseñar mecanismos de monitoreo para detectar underruns y estrategias de recuperación, como el ajuste dinámico del tamaño del búfer o la implementación de sistemas de 'backpressure' para evitar que los productores sobrecarguen a los consumidores.