Today Questionôs Câu hỏi & Trả lời phiên đến với chúng tôi lịch sự của SuperUser‚Äîa phân khu của Stack Exchange, một nhóm cộng đồng theo định hướng của các trang web Q & A.
Câu hỏi
Trình đọc siêu người dùng Agovizer mất một thời gian dài nhìn vào bảng Quá trình hiển thị bảng trong Trình quản lý tác vụ Windows và quay trở lại với một số câu hỏi, cụ thể:
What processes, if any, exist between PIDs 0 and 4 on Windows 7? Just out of curiosity what are the processes between 0 and 4, and also between 4 and 200 something.
Chúng tôi nhảy vào Task Manager trên máy của chúng tôi và chắc chắn rằng không có quá trình nào được chỉ định trong các khe 1, 2 và 3 mặc dù các PID của chúng tôi tăng từ 4 lên 340, ngược lại với 4 đến 200.
Câu trả lời
Người đóng góp SuperUser G Koe đóng vụ việc trong một lần thay đổi:
There is no Process ID 1, 2, or 3 because of how the NT kernel handle table works.
Handles are always multiples of four. The Kernel handle process object is used for both process handles and process/thread IDs. It happens that handle values all start at 0x4 (bit 2), and the InitialSystemProcess is the first process to be created, so it gets a PID of 4. Idle process isn’t actually a process and you can’t open it. It probably doesn’t have a real PID but most tools consider it to be 0.
More on the NT handle table here although this is only accurate for NT3-5(xp), as Windows 7 now requires that you only reference kernel handles if attached to PsInitialSystemProcess.
More on Windows 7/8 Handle limits from Mark Russinovich
More on the “multiples of four” in PIDs
Tất cả mọi thứ ông đề nghị kiểm tra: we‚Äôre thiếu 1, 2, và 3 (không bội số của 4) và mọi giá trị PID trong danh sách của chúng tôi từ 340 đến 13136 là chia hết cho 4.
Có cái gì để thêm vào lời giải thích? Âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange có hiểu biết công nghệ khác? Xem toàn bộ chuỗi thảo luận tại đây.