Qual processo possui o PID 0?

55

Estou procurando o processo iniciado no Linux que possui o ID 0. Eu sei initque o PID 1, que é o primeiro processo no Linux, existe algum processo com o PID 0?

user9744
fonte
11
O ID do processo O é SWAPPER. O ID do processo 1 é init.
Ankur Jain 27/05

Respostas:

51

Na página da wikipedia intitulada: Identificador de processo :

Existem duas tarefas com IDs de processo especialmente distintos: o swapper ou sched tem o ID de processo 0 e é responsável pela paginação e é realmente parte do kernel, em vez de um processo normal no modo de usuário . O ID do processo 1 geralmente é o processo de inicialização principal responsável por iniciar e desligar o sistema. Originalmente, o ID do processo 1 não era especificamente reservado para o init por nenhuma medida técnica: ele simplesmente tinha esse ID como uma conseqüência natural de ser o primeiro processo invocado pelo kernel. Os sistemas Unix mais recentes geralmente têm componentes adicionais do kernel visíveis como 'processos'; nesse caso, o PID 1 é reservado ativamente para que o processo init mantenha consistência com os sistemas mais antigos.

Você pode ver a evidência disso se observar os PIDs (PPID) pai inite 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]

kthreaddé o daemon de thread do kernel. Todos os kthreads são bifurcados a partir deste tópico. Você pode ver evidências disso se observar outros processos usando pse vendo quem é seu 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]

Observe que são todos 2.

slm
fonte
Portanto, se o PID 0 é trocador, o que é kswapd[0-9]*, qual no meu sistema tem o PID 52 atualmente? Parece também ser responsável pela paginação.
Ruslan
11
@Ruslan - se você seguir as perguntas, faça-as no site principal, os comentários não são para isso. Faça referência a esta pergunta na sua nova pergunta.
slm
bem, mas quando criamos um novo processo usando o processo filho fork , recebemos o pid 0 ?
roottraveller
@roottraveller não necessariamente, seja qual for o PID dos pais onde o garfo ocorreu, será o que aparece.
slm
10

No wiki do Identificador de processo :

Existem duas tarefas com IDs de processo especialmente distintos: o swapper ou sched tem o ID de processo 0 e é responsável pela paginação e é realmente parte do kernel, em vez de um processo normal no modo de usuário.

cuonglm
fonte
6

O processo com pid 0é o planejador,

ID do processo Descrição:
0 O agendador
1 O processo de inicialização
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

user78115
fonte