En el contexto de la programación de sistemas y E/S, `poll` es una llamada al sistema que permite a una aplicación monitorear múltiples descriptores de archivo (sockets, pipes, dispositivos, etc.) para eventos de E/S específicos, como la disponibilidad de datos para lectura o la capacidad de escribir datos. A diferencia de las operaciones de E/S bloqueantes tradicionales, `poll` no bloquea la ejecución del proceso indefinidamente si ningún descriptor está listo. En su lugar, puede configurarse con un tiempo de espera (timeout) para regresar después de un período especificado si no hay eventos, o regresar inmediatamente si hay eventos pendientes. Esto facilita la implementación de programas concurrentes y reactivos que manejan múltiples fuentes de E/S de manera eficiente.

`poll` es una primitiva fundamental utilizada en una amplia gama de sistemas operativos y aplicaciones. Por ejemplo, los servidores web de alto rendimiento como Nginx y Apache (en ciertos modos de operación) utilizan mecanismos similares a `poll` (o sus sucesores como `epoll` en Linux, `kqueue` en BSD/macOS, o `IOCP` en Windows) para manejar miles de conexiones concurrentes de clientes sin crear un hilo o proceso por cada conexión. Bibliotecas de red como Netty o frameworks de concurrencia asíncrona en lenguajes como Node.js o Python (con `asyncio`) se basan en estas primitivas de E/S no bloqueantes para su modelo de operación basado en eventos.

Para un arquitecto de sistemas, comprender `poll` y sus variantes es crucial para diseñar sistemas escalables y eficientes en el manejo de E/S. La elección entre un modelo de E/S bloqueante, `poll` o mecanismos más avanzados como `epoll`/`kqueue` tiene implicaciones significativas en el rendimiento, la latencia y el consumo de recursos. `poll` ofrece una mejora sobre la E/S bloqueante al permitir la multiplexación de E/S, pero puede sufrir de un rendimiento decreciente (O(N) donde N es el número de descriptores monitoreados) a medida que el número de descriptores crece. Los arquitectos deben considerar estos trade-offs al diseñar servicios que manejen un gran número de conexiones concurrentes o interactúen con múltiples fuentes de datos, optando por mecanismos más eficientes como `epoll` cuando la escala lo justifique para evitar el "polling" ineficiente y reducir la sobrecarga del sistema.