- Si buscas PID 0 en la web, la mayoría de la información que aparece es incorrecta.
- Al buscar PID 0 en Google, Bing, DuckDuckGo y Kagi, fue difícil encontrar una respuesta precisa.
- La información errónea de Wikipedia se propagó durante 16 años, y muchos sitios la citaron.
Historia de PID 0
- PID 0 participa en la planificación y la administración de energía, y no tiene relación con la paginación.
- PID 0 actúa como el planificador que se ejecuta cuando un núcleo de CPU no tiene trabajo que hacer.
- En los primeros Unix, PID 0 realizaba tareas relacionadas con la administración de memoria, pero en los Unix modernos ya no es así.
El rol real de PID 0
- PID 0 inicia el kernel y, después, cumple la función de administrar los núcleos de CPU.
- En el kernel de Linux, PID 0 está implementado con la función
do_idle.
- En otros kernels, como FreeBSD, desempeña un papel similar.
La confusión alrededor de PID 0
- En el kernel de Linux y en el espacio de usuario, el significado de PID es distinto.
- En el kernel,
task_struct representa un hilo individual, y PID significa ID de hilo.
- En el espacio de usuario, PID representa un proceso, y esto equivale al ID del grupo de hilos.
PID 0 en sistemas multinúcleo
- En sistemas multinúcleo, cada núcleo de CPU tiene un hilo idle.
- Todos esos hilos idle pertenecen al grupo de hilos 0.
- En el espacio de usuario, esto se reconoce como PID 0.
Conclusión
- PID 0 existe y es el hilo que inicia el kernel.
- PID 0 realiza las tareas iniciales de inicialización del kernel y luego pasa a convertirse en el hilo idle.
- PID 0 no tiene relación con la administración de memoria.
- En sistemas multinúcleo, cada núcleo tiene un hilo idle, y todos pertenecen al grupo de hilos 0.
Opinión de GN⁺
- La importancia de la información precisa: la información incorrecta se propagó durante mucho tiempo y llevó a que muchas personas la aceptaran como cierta. Esto vuelve a recordarnos la importancia de ofrecer información precisa.
- La complejidad del kernel: el proceso de inicialización del kernel y los mecanismos de planificación son muy complejos, y comprenderlos puede ser de gran ayuda para los ingenieros de software.
- La confusión con PID: como el significado de PID es distinto en el kernel y en el espacio de usuario, es importante entenderlo con claridad.
- Sistemas multinúcleo: comprender el papel de PID 0 en los sistemas multinúcleo modernos puede ayudar a optimizar el rendimiento del sistema.
- La influencia de Wikipedia: esto muestra hasta qué punto la información de Wikipedia influye en muchos sitios web. También subraya la importancia de mantener la información correcta y actualizada.
3 comentarios
Me hace recordar aquel viejo incidente cuando ese agent hizo
kill -9 0...Interesante.
Comentarios en Hacker News
getppiddevuelve 0 es porque el padre está en otro espacio de nombres de PID.kill 0: Comparten un script que usakill 0para ejecutar un comando durante un tiempo límite y luego terminarlo.