¿Qué proceso tiene PID 0?

55

Estoy buscando el proceso iniciado en Linux que tiene ID de proceso 0. Sé que inittiene PID 1, que es el primer proceso en Linux, ¿hay algún proceso con PID 0?

usuario9744
fuente
1
El ID de proceso O es SWAPPER. La ID de proceso 1 es init.
Ankur Jain

Respuestas:

51

Desde la página de Wikipedia titulada: Identificador del proceso :

Hay dos tareas con ID de proceso especialmente distinguidas: swapper o sched tiene ID de proceso 0 y es responsable de la paginación , y en realidad es parte del núcleo en lugar de un proceso normal en modo de usuario . El ID de proceso 1 suele ser el proceso de inicio principalmente responsable de iniciar y apagar el sistema. Originalmente, el ID de proceso 1 no estaba reservado específicamente para init por ninguna medida técnica: simplemente tenía este ID como consecuencia natural de ser el primer proceso invocado por el núcleo. Los sistemas Unix más recientes suelen tener componentes de kernel adicionales visibles como 'procesos', en cuyo caso el PID 1 se reserva activamente para el proceso init para mantener la coherencia con los sistemas más antiguos.

Puede ver la evidencia de esto si observa los PID principales (PPID) de inity kthreadd:

$ ps -eaf
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Jun24 ?        00:00:02 /sbin/init
root         2     0  0 Jun24 ?        00:00:00 [kthreadd]

kthreaddes el demonio del hilo del núcleo. Todos los kthreads se bifurcan de este hilo. Puede ver evidencia de esto si observa otros procesos usando psy viendo quién es su PPID:

$ ps -eaf
root         3     2  0 Jun24 ?        00:00:57 [ksoftirqd/0]
root         4     2  0 Jun24 ?        00:01:19 [migration/0]
root         5     2  0 Jun24 ?        00:00:00 [watchdog/0]
root        15     2  0 Jun24 ?        00:01:28 [events/0]
root        19     2  0 Jun24 ?        00:00:00 [cpuset]
root        20     2  0 Jun24 ?        00:00:00 [khelper]

Note que son todos 2.

slm
fuente
Entonces, si PID 0 es intercambiable, entonces, ¿cuál es kswapd[0-9]*, en mi sistema, PID 52 actualmente? También parece ser responsable de la paginación.
Ruslan
1
@Ruslan: si tiene preguntas seguidas, hágalas en el sitio principal, los comentarios no son para esto. Haz referencia a esta pregunta en tu nueva pregunta.
slm
bueno, pero cuando creamos un nuevo proceso usando el proceso hijo de fork obtenemos pid 0 ?
roottraveller
@roottraveller no necesariamente, sea cual sea el PID de los padres donde se produjo la bifurcación, será lo que aparezca.
slm
10

Del wiki de Identificador de proceso :

Hay dos tareas con ID de proceso especialmente distinguidas: swapper o sched tiene ID de proceso 0 y es responsable de la paginación, y en realidad es parte del núcleo en lugar de un proceso normal en modo de usuario.

Cuonglm
fuente
6

El proceso con pid 0es el planificador,

Descripción del ID del proceso:
0 El Programador
1 El proceso de inicio
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

usuario78115
fuente