Cómo Linux gestiona procesos con listas enlazadas intrusivas
Intrusive Linked Lists
Las listas enlazadas intrusivas integran el nodo de la lista en la propia estructura de datos, a diferencia de las listas tradicionales que usan punteros separados. Esto reduce asignaciones de memoria y mejora el rendimiento de caché. En Linux, se utilizan listas circulares doblemente enlazadas e intrusivas para gestionar tareas, como se ve en la estructura `task_struct` y la lista de tareas. El artículo explica su implementación, usando macros como `list_add` y `container_of`, y muestra cómo se recorren los procesos para enviar señales o congelar tareas.
Linux utiliza principalmente listas enlazadas para mantener listas de objetos cuando el recorrido es poco frecuente o cuando el tamaño de la lista es pequeño.