2Sep
Når du tager dig tid til at se på alle de små detaljer i Windows, finder du ofte små nysgerrigheder. Som for eksempel er procesidentifikationsnumre 1, 2 og 3 aldrig tildelt noget i Windows Task Manager?
Dagens Spørgsmål &Svar session kommer til os høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drevet gruppe af Q & A-websteder.
Spørgsmål
SuperUser-læser Agovizer tog et langt hårdt kig på tabellen Procesvisningstabellen i Windows Task Manager og kom tilbage med nogle spørgsmål, specifikt:
Hvilke eventuelle processer eksisterer mellem PID'er 0 og 4 på Windows 7?Bare ud af nysgerrighed, hvad er processerne mellem 0 og 4, og også mellem 4 og 200 noget.
Vi hoppede over i Task Manager på vores maskine og helt sikkert var der ingen processer tildelt i slots 1, 2 og 3, selvom vores PID'er hoppede fra 4 til 340, i modsætning til hans 4 til 200.
Svaret
SuperUserbidragyder G Koe lukker sagen i ét slag:
Der er ingen proces ID 1, 2 eller 3 på grund af, hvordan NT-kernelhåndtagstabellen fungerer.
Håndtag er altid multipler af fire. Kernelhåndtagsprocesobjektet bruges til både proceshåndtag og proces- / tråd-id'er. Det sker, at håndtere værdier alle starter ved 0x4( bit 2), og InitialSystemProcess er den første proces, der skal oprettes, så den får en PID på 4. Idle-processen er ikke en proces, og du kan ikke åbne den. Det har sandsynligvis ikke en reel PID, men de fleste værktøjer anser det for at være 0.
Mere på NT-håndteringsbordet her, selvom dette kun er nøjagtigt for NT3-5( xp), da Windows 7 nu kræver, at du kun refererer til kernelhåndtaghvis vedhæftet til PsInitialSystemProcess.
Mere om Windows 7/8 Håndter grænser fra Mark Russinovich
Mere om "multipler af fire" i PID'er
Alt, hvad han foreslår, tjekker: Vi mangler 1, 2 og 3( ikke multipler af 4) og hver PID-værdii vores liste fra 340 til 13136 er delelig med 4.
Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.