2Sep
Kun käytät aikaa tarkastella kaikkia pieniä yksityiskohtia Windowsissa, löydät usein vähän uteliaisuuksia. Miksi esimerkiksi prosessin tunnistusnumerot 1, 2 ja 3 eivät ole koskaan määritetty Windowsin Task Managerissa?
Päivän kysymys &Vastausistunto tulee meille kohteliaasti SuperUser-osastoon Stack Exchange, yhteisöllinen ryhmittely Q & A verkkosivuilla.
Kysymys
SuperUser-lukija Agovizer piti pitkään tarkastelemaan taulukkoa Prosessinäyttötaulukko Windows Task Managerissa ja palasi kysymyksiin, erityisesti:
Mitä prosesseja, jos sellaisia on, löytyvät PID: n 0 ja 4 välillä Windows 7: ssä?Aivan uteliaisuudesta mitkä ovat prosesseja välillä 0 ja 4, ja myös välillä 4 ja 200 jotain.
Hyppäsimme koneen tehtävänhallintaan ja varmasti, että lähtö- ja saapumisajoissa 1, 2 ja 3 ei ollut mitään prosesseja, vaikka PID: t hyppäisivät 4: stä 340: een, toisin kuin 4: sta 200: een.
Vastaus
SuperUseravustaja G Koe sulkee tapauksen yhdellä swoopilla:
Prosessidunnusta 1, 2 tai 3 ei ole, koska NT-ytimen käsitellä taulukko toimii.
Kahvat ovat aina nelinkertaisia. Kernel handle prosessiobjektia käytetään sekä prosessin kahvaan että prosessi- / säikeen tunnuksiin. Käsiarvot kaikki alkavat 0x4( bitti 2) ja InitialSystemProcess on ensimmäinen prosessi luodaan, joten se saa PID: n 4. Idle-prosessi ei ole oikeastaan prosessi eikä sitä voi avata. Se ei todennäköisesti ole todellinen PID, mutta useimmat työkalut pitävät sen olevan 0.
Lisätietoja NT-käsittelytasosta täällä, vaikka tämä on vain tarkka NT3-5( xp), koska Windows 7 vaatii, että vain viitata ydin kahvatjos se liitetään PsInitialSystemProcessiin.
Lisätietoja Windows 7/8: ssa Handle limits by Mark Russinovich
Lisää "PID: n neljästä monikerroksesta"
Kaikki mitä hän ehdottaa tarkistaa: puuttuu 1, 2 ja 3( ei 4: n kerrannaisia) ja jokainen PID-arvolistassamme 340-13136 on jaollinen 4: lla.
Onko sinulla jotain lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä?Katso koko keskusteluketju täältä.