Dagens Spørsmål og svar sesjon kommer til oss med høflighet av SuperUser, en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.
Spørsmålet
SuperUser leser Agovizer tok en lang hard titt på tabellen Prosessdisplay i Windows Task Manager og kom tilbake med noen spørsmål, spesielt:
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.
Vi hoppet over til oppgavebehandleren på maskinen vår, og det var sikkert ikke noen prosesser som ble tildelt i spor 1, 2 og 3. Selv om våre PIDs hoppet fra 4 til 340, i motsetning til hans 4 til 200.
Svaret
SuperUser-bidragsyter G Koe lukker saken i ett slag:
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
Alt han foreslår sjekker ut: vi mangler 1, 2 og 3 (ikke multipler med 4), og hver PID-verdi i vår liste fra 340 til 13136 er delt med 4.
Har du noe å legge til forklaringen? Lyde av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.