Quale processo ha PID 0?


Risposte:


51

Dalla pagina di Wikipedia intitolata: Identificatore del processo :

Esistono due attività con ID di processo particolarmente distinti: swapper o sched ha l'ID di processo 0 ed è responsabile del paging ed è effettivamente parte del kernel piuttosto che un normale processo in modalità utente . L'ID processo 1 è in genere il processo di init principalmente responsabile dell'avvio e dell'arresto del sistema. Inizialmente, l'ID processo 1 non era specificamente riservato per init da alcuna misura tecnica: aveva semplicemente questo ID come conseguenza naturale dell'essere il primo processo invocato dal kernel. I sistemi Unix più recenti in genere hanno componenti del kernel aggiuntivi visibili come "processi", nel qual caso il PID 1 è attivamente riservato al processo init per mantenere la coerenza con i sistemi più vecchi.

Puoi vedere le prove di questo se guardi i PID (PPID) principali di 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è il demone del thread del kernel. Tutti i kthreads sono biforcuti da questo thread. Puoi vedere le prove di questo se guardi altri processi usando pse vedendo chi è il loro 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]

Notate che sono tutti 2.


Quindi, se PID 0 è swapper, qual è kswapd[0-9]*, quale sul mio sistema ha attualmente PID 52? Sembra anche essere responsabile del paging.
Ruslan,

1
@Ruslan: se hai domande da porre, per favore, chiedile sul sito principale, i commenti non sono fatti per questo. Fai riferimento a questa domanda nella tua nuova domanda.
slm

bene, ma quando creiamo un nuovo processo usando il processo fork fork , otteniamo pid 0 ?
roottraveller,

@roottraveller non necessariamente, qualunque sia il PID dei genitori in cui si è verificato il fork sarà quello che si presenta.
slm

10

Dal wiki Identificatore del processo :

Esistono due attività con ID di processo particolarmente distinti: swapper o sched ha l'ID di processo 0 ed è responsabile del paging ed è effettivamente parte del kernel piuttosto che un normale processo in modalità utente.


6

Il processo con pid 0è lo scheduler,

Descrizione ID processo:
0 The Scheduler
1 Il processo init
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.