Proses mana yang memiliki PID 0?


Jawaban:


51

Dari halaman wikipedia berjudul: Pengidentifikasi proses :

Ada dua tugas dengan ID proses yang dibedakan secara khusus: swapper atau sched memiliki ID proses 0 dan bertanggung jawab untuk paging , dan sebenarnya merupakan bagian dari kernel daripada proses mode pengguna normal . ID Proses 1 biasanya merupakan proses init yang terutama bertanggung jawab untuk memulai dan mematikan sistem. Awalnya, ID proses 1 tidak secara khusus dicadangkan untuk init oleh tindakan teknis apa pun: ID proses itu hanya sebagai konsekuensi alami sebagai proses pertama yang dilakukan oleh kernel. Sistem Unix yang lebih baru biasanya memiliki komponen kernel tambahan yang terlihat sebagai 'proses', dalam hal ini PID 1 secara aktif dicadangkan untuk proses init untuk menjaga konsistensi dengan sistem yang lebih lama.

Anda dapat melihat bukti ini jika Anda melihat PID induk (PPID) dari initdan 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]

kthreaddadalah daemon utas kernel. Semua kthreads diambil dari utas ini. Anda dapat melihat bukti ini jika Anda melihat proses lain menggunakan psdan melihat siapa PPID mereka:

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

Perhatikan mereka semua 2.


Jadi jika PID 0 adalah swapper, lalu apa kswapd[0-9]*, yang pada sistem saya memiliki PID 52 saat ini? Tampaknya juga bertanggung jawab untuk paging.
Ruslan

1
@Ruslan - jika Anda telah mengikuti pertanyaan, silakan tanyakan di situs utama, komentar tidak dimaksudkan untuk ini. Referensi pertanyaan ini dalam pertanyaan baru Anda.
slm

baik, tetapi ketika kita membuat proses baru menggunakan proses fork child dapatkan pid 0 ?
roottraveller

@roottraveller belum tentu, apa pun PID orang tua adalah tempat garpu terjadi akan muncul.
slm

10

Dari Process Identifier wiki:

Ada dua tugas dengan ID proses yang dibedakan secara khusus: swapper atau sched memiliki ID proses 0 dan bertanggung jawab untuk paging, dan sebenarnya merupakan bagian dari kernel daripada proses mode pengguna normal.


6

Proses dengan pid 0adalah penjadwal,

ID Proses Keterangan:
0 Penjadwal
1 Proses init
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.