Täna, see küsimuste ja vastuste seanss tuleb meile viisakalt Super-kasutaja, Stowe Exchange'i alamrubriigist, Q & A veebisaitide kogukonnapõhiseks rühmituseks.
Küsimus
SuperUser lugeja Agovizer võttis pika vaevaga üle Windowsi tööriistahalduri tabeli Protsessi kuva tabeli ja tulid tagasi mõned küsimused, täpsemalt:
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.
Me hüppasime üle meie masina Task Managerisse ja kindlasti ei olnud pilud 1, 2 ja 3 määratud protsesse, kuigi meie PID-d hüppasid 4 kuni 340-ni, erinevalt tema 4 kuni 200-st.
Vastus
SuperUseri kaastöötaja G Koe sulgeb juhtumi ühe ülevõtmisega:
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
Kõik, mida ta soovitab, kontrollib: meil puuduvad 1, 2 ja 3 (ei korrutata 4-ga) ja iga meie PID-väärtuse PID väärtus 340 kuni 13136 jagub 4-ga.
Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.