PIDが0のプロセスは何ですか?

PIDが0のプロセスは何ですか?

プロセスID 0でLinuxで起動されたプロセスを探しています。 PID 1があり、Linuxの最初のプロセスであることがわかっていますinit。 PID 0を持つプロセスはありますか?

答え1

次のタイトルのWikipediaページから:プロセス識別子:

特別に区別されるプロセスIDを持つ2つのタスクがあります。交換機 または予定プロセスIDは0で、次の責任を負います。ページング、実際にはカーネルの一部であり、通常のカーネルではありません。ユーザーモードプロセス。プロセスID 1は通常内部にプロセスは主にシステムの開始と終了を担当します。当初、プロセスID 1は技術的措置によってinit専用に予約されていませんでした。単にカーネルが呼び出した最初のプロセスの自然な結果としてこのIDを持つようになりました。最新のUnixシステムには、「プロセス」と見なすことができる追加のカーネルコンポーネントがあることがよくあります。この場合、PID 1は以前のシステムとの一貫性を維持するためにinitプロセス用に積極的に予約されています。

initとの親PID(PPID)を見ると、その証拠を見ることができます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カーネルスレッドデーモンです。すべてのkthreadはこのスレッドから派生します。別のプロセスを使用してそのPPIDが誰であるかを確認すると、psその証拠を見ることができます。

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

注意してください、彼らはすべてです2

答え2

~からプロセス識別子ウィキペディア:

特別なプロセスIDを持つ2つのタスクがあります。 swapper または sched はプロセス ID 0 を持ち、ページングを担当し、実際には通常のユーザーモードプロセスではなくカーネルの一部です。

答え3

これに関連するプロセスpid 0はスケジューラです。

プロセスID説明:
0スケジューラ
1 initプロセス
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

関連情報