Saltar al contenido

Lo que usan las bibliotecas

VecDeque en Rust es un buffer circular que crece. La cola de la biblioteca estándar de C++ usa por defecto un deque que guarda bloques de tamaño fijo. Los anillos de red de los sistemas operativos (las colas de paquetes entre la tarjeta de red y el kernel) son buffers circulares de capacidad fija en memoria compartida.

El mismo principio sirve para cualquier productor y consumidor que se pasen datos por un anillo. Imagina uno de 256 posiciones: la tarjeta de red ha escrito 1000 paquetes en total y el kernel ha leído 800. ¿Cuántos esperan, y dónde cae el siguiente?

Un anillo de red tiene 256 posiciones. La tarjeta ha escrito 1000 paquetes en total y el kernel ha leído 800. ¿Cuántos paquetes están esperando y en qué posición escribirá la tarjeta el siguiente?