Quá trình nào có PID 0?


Câu trả lời:


51

Từ trang wikipedia có tiêu đề: Định danh quy trình :

Có hai nhiệm vụ với quá trình ID đặc biệt phân biệt: swapper hoặc sched có quá trình ID 0 và có trách nhiệm phân trang , và thực sự là một phần của hạt nhân chứ không phải là bình thường sử dụng chế độ quá trình. ID tiến trình 1 thường là quá trình init chịu trách nhiệm chính cho việc khởi động và tắt hệ thống. Ban đầu, quy trình ID 1 không được dành riêng cho init bởi bất kỳ biện pháp kỹ thuật nào: đơn giản là ID này là kết quả tự nhiên của quá trình đầu tiên được gọi bởi kernel. Các hệ thống Unix gần đây thường có các thành phần hạt nhân bổ sung hiển thị dưới dạng 'quy trình', trong trường hợp đó, PID 1 được tích cực dành riêng cho quy trình init để duy trì tính nhất quán với các hệ thống cũ.

Bạn có thể thấy bằng chứng về điều này nếu bạn nhìn vào các bộ cha mẹ (PPID) của initkthreadd:

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

kthreaddlà daemon chủ đề hạt nhân. Tất cả các kthread được rẽ nhánh từ chủ đề này. Bạn có thể thấy bằng chứng về điều này nếu bạn xem xét các quy trình khác bằng cách sử dụng psvà xem PPID của họ là ai:

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

Hãy chú ý tất cả 2.


Vì vậy, nếu PID 0 là công cụ trao đổi, thì hiện tại kswapd[0-9]*, trên hệ thống của tôi có PID 52 là gì? Nó dường như cũng chịu trách nhiệm phân trang.
Ruslan

1
@Ruslan - nếu bạn có theo dõi các câu hỏi, vui lòng hỏi họ trên trang web chính, ý kiến ​​không có ý nghĩa cho việc này. Tham khảo câu hỏi này trong câu hỏi mới của bạn.
slm

tốt, nhưng khi chúng ta tạo ra một quy trình mới bằng cách sử dụng quá trình con ngã ba có được pid 0 không?
roottraveller

@roottraveller không nhất thiết, bất cứ điều gì mà cha mẹ PID là nơi xảy ra ngã ba sẽ là những gì xuất hiện.
slm

10

Từ wiki Định danh quy trình :

Có hai tác vụ với ID tiến trình được phân biệt đặc biệt: trình trao đổi hoặc lịch biểu có ID tiến trình 0 và chịu trách nhiệm phân trang và thực sự là một phần của kernel chứ không phải là quy trình chế độ người dùng thông thường.


6

Quá trình với pid 0là lịch trình,

ID quy trình Mô tả:
0 Trình lập lịch biểu
1 Quá trình khởi động
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.