Welcher Prozess hat PID 0?


Antworten:


51

Von der Wikipedia-Seite mit dem Titel: Prozess-ID :

Es gibt zwei Tasks mit speziell definierten Prozess-IDs: swapper oder sched hat die Prozess-ID 0 und ist für das Paging verantwortlich. Sie sind eher Teil des Kernels als ein normaler Prozess im Benutzermodus . Die Prozess-ID 1 ist normalerweise der Initialisierungsprozess , der hauptsächlich für das Starten und Herunterfahren des Systems verantwortlich ist. Ursprünglich war die Prozess-ID 1 durch keine technischen Maßnahmen speziell für init reserviert: Sie hatte lediglich diese ID als natürliche Folge des ersten vom Kernel aufgerufenen Prozesses. Neuere Unix-Systeme haben in der Regel zusätzliche Kernel-Komponenten, die als "Prozesse" angezeigt werden. In diesem Fall ist PID 1 aktiv für den Init-Prozess reserviert, um die Konsistenz mit älteren Systemen zu gewährleisten.

Sie können den Beweis dafür sehen, wenn Sie sich die übergeordneten PIDs (PPIDs) von initund ansehen 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]

kthreaddist der Kernel-Thread-Daemon. Alle kthreads werden von diesem Thread gegabelt. Sie können Beweise dafür sehen, wenn Sie sich andere Prozesse ansehen ps, die ihre PPID verwenden und sehen, wer sie ist:

$ 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]

Beachten Sie, dass sie alle sind 2.


Also, wenn PID 0 Swapper ist, was ist dann kswapd[0-9]*, welche auf meinem System hat PID 52 derzeit? Es scheint auch für das Paging verantwortlich zu sein.
— Ruslan

1
@ Ruslan - Wenn Sie Fragen haben, stellen Sie sie bitte auf der Hauptseite. Kommentare sind nicht dazu gedacht. Verweisen Sie in Ihrer neuen Frage auf diese Frage.
— slm

Nun, aber wenn wir einen neuen Prozess mit Fork Child-Prozess erstellen , bekommen wir PID 0 ?
— Roottraveller

@roottraveller nicht unbedingt, was auch immer die PID der Eltern ist, wo die Gabelung aufgetreten ist, wird das sein, was auftaucht.
— slm

10

Aus dem Prozessidentifikator- Wiki:

Es gibt zwei Tasks mit speziell definierten Prozess-IDs: swapper oder sched hat die Prozess-ID 0 und ist für das Paging verantwortlich. Sie sind eher Teil des Kernels als ein normaler Prozess im Benutzermodus.


6

Der Prozess mit pid 0ist der Scheduler,

Beschreibung der Prozess-ID:
0 The Scheduler
1 The init process
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.