กระบวนการใดมี PID 0


55

ฉันกำลังมองหากระบวนการที่เริ่มต้นใน Linux ซึ่งมีกระบวนการ ID 0 ฉันรู้ว่าinitมี PID 1 ซึ่งเป็นกระบวนการแรกใน Linux มีกระบวนการใดที่มี PID 0 หรือไม่


ที่เกี่ยวข้อง: unix.stackexchange.com/questions/13290/…
slm

1
ID กระบวนการ O คือ SWAPPER ID กระบวนการ 1 เริ่มต้นแล้ว
Ankur Jain

คำตอบ:


51

จากหน้าวิกิพีเดียชื่อ: ตัวระบุกระบวนการ :

มีสองภารกิจที่มี ID กระบวนการที่แตกต่างเป็นพิเศษ: swapper หรือschedมีโพรเซส ID 0 และรับผิดชอบเพจจิ้งและเป็นส่วนหนึ่งของเคอร์เนลมากกว่ากระบวนการโหมดผู้ใช้ปกติ ประมวลผลหมายเลข 1 จะเป็นinitกระบวนการหลักรับผิดชอบในการเริ่มต้นและปิดระบบ ในขั้นต้น ID กระบวนการ 1 ไม่ได้ถูกสงวนไว้เฉพาะสำหรับการเริ่มต้นโดยมาตรการทางเทคนิคใด ๆ : มันมี ID นี้เป็นผลมาจากธรรมชาติของการเป็นกระบวนการแรกที่เรียกใช้โดยเคอร์เนล โดยทั่วไประบบ Unix ล่าสุดจะมีองค์ประกอบเคอร์เนลเพิ่มเติมที่มองเห็นเป็น 'กระบวนการ' ซึ่งในกรณีนี้ PID 1 ถูกสงวนไว้อย่างแข็งขันสำหรับกระบวนการเริ่มต้นเพื่อรักษาความสอดคล้องกับระบบเก่า

คุณสามารถดูหลักฐานนี้หากคุณดู PID หลัก (PPID) ของinitและ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เป็น daemon ของเคอร์เนลเธรด kthreads ทั้งหมดถูกแยกจากเธรดนี้ คุณสามารถดูหลักฐานนี้ถ้าคุณดูกระบวนการอื่นที่ใช้psและดูว่าใคร 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]

2ขอให้สังเกตพวกเขากำลังทั้งหมด


ดังนั้นถ้า PID 0 เป็น swapper แล้วอะไรคือสิ่งkswapd[0-9]*ที่ในระบบของฉันมี PID 52 ในปัจจุบัน? ดูเหมือนว่ายังต้องรับผิดชอบในการเพจ
Ruslan

1
@Ruslan - หากคุณมีคำถามกรุณาถามพวกเขาในเว็บไซต์หลักความคิดเห็นไม่ได้มีความหมายสำหรับสิ่งนี้ อ้างอิงคำถามนี้ในคำถามใหม่ของคุณ
slm

ดี แต่เมื่อเราสร้างกระบวนการใหม่โดยใช้ส้อมกระบวนการเด็กได้รับpid 0 ?
roottraveller

@ รูทเวลเลอร์ไม่จำเป็นว่าอะไรก็ตามพ่อแม่ PID คือที่ที่เกิดส้อมขึ้นจะเป็นสิ่งที่ปรากฏขึ้น
slm

10

จากตัวระบุกระบวนการ wiki:

มีสองงานที่มี ID กระบวนการที่แตกต่างเป็นพิเศษคือ swapper หรือ sched time มี process ID 0 และรับผิดชอบเพจจิ้งและเป็นส่วนหนึ่งของเคอร์เนลแทนที่จะเป็นกระบวนการโหมดผู้ใช้ปกติ


5

กระบวนการที่มีpid 0คือตัวกำหนดตารางเวลา

ID กระบวนการคำอธิบาย:
0 The Scheduler
1 กระบวนการเริ่มต้น
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.