[Red Linux] La diferencia entre multiplexación IO select y epoll, incluido el código de muestra

multiplexación de E/S

Operación desacoplada: el servidor espera, el servidor procesa datos.
Cuando el cliente está inactivo (sin transmisión de datos), el servidor no espera y se cuelga directamente.
El servidor solo procesa la E/S del cliente activo (con transmisión de datos)

principio:

  • El momento en que la tarjeta de red recibe los datos depende del remitente y de la ruta de transmisión, este retraso suele ser muy alto, del nivel de milisegundos (ms).
  • Las aplicaciones procesan datos a nivel de nanosegundos (ns).
  • Durante todo el proceso, el estado del kernel espera datos y el procesamiento de la pila de protocolos es un proceso relativamente lento. Durante tanto tiempo, el proceso en modo de usuario no tiene nada que hacer.
  • Por lo tanto, es necesario desacoplar: si un cliente está inactivo, simplemente suspenda el cliente y deje que el servidor maneje otros clientes activos.

Realización técnica:

  • Utilice un proceso de monitoreo dedicado para detectar si el cliente en la tabla está activo
  • El servidor solo maneja clientes activos.

seleccionar

  1. Proporcione al kernel una tabla de detección de descriptores de archivos (hasta 1024), cada una de las cuales representa el descriptor de archivo de conexión de red correspondiente al cliente.
  2. El kernel devuelve una tabla de descriptores de archivos de red IO, que se establece en 1 cuando está activo (con transmisión de datos) y 0 cuando está inactivo.
  3. El usuario recorrerá la tabla de detección n veces [O (n)] para determinar si el IO correspondiente está activo y luego procesará el IO de red correspondiente.

Código relacionado

Insertar descripción de la imagen aquí


epoll

  1. El kernel asume el control y determina el estado activo del cliente correspondiente.
  2. El kernel devuelve todas las tablas de descriptores de archivos activos.
  3. Los usuarios manejan la red activa IO directamente [O(1)]

Código relacionado
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_43537701/article/details/133237688
Recomendado
Clasificación