18Aug

Miért nincs odd-számozott Windows-folyamatazonosító?

click fraud protection

Ha szereted a bonyolódást a Windows rendszerrel és megtanulod, ahogy elmész, akkor észrevette, hogy a Windows-folyamat és a szálazonosítók páros számok és négyes többszörösek. Miert van az? A mai SuperUser Q & A bejegyzésen megtalálhatja a válaszokat egy furcsa olvasó kérdéseire.

A mai kérdés &A válaszüzenet a SuperUser - a Stack Exchange megosztottságának köszönhetően - a Q & A webhelyek közösségi szintű csoportosítása.

Az

SuperUser olvasó kérdése Peter Hahndorf tudni akarja, hogy miért nincs páratlan számú Windows-folyamatazonosító:

A folyamatazonosító sokféle módon tekinthető meg a Windows rendszerben. A PowerShell használatával:

Ezt az eredményt kapom:

Amint látja, az összes folyamatazonosító páros számozású, nem csak hogy mindegyik négyes többszörös. Olyan keményen nézhetsz ki, amennyit csak akarsz, és soha nem találsz páratlan számú folyamatazonosítót, legalábbis Windows NT-alapú verziókon. Mi ez az oka?

Miért nem létezik páratlan számú Windows-folyamatazonosító?

instagram viewer

A válasz

SuperUser közreműködő DavidPostill válaszol számunkra:

Miért nincs páratlan számú Windows-folyamatazonosító?

Ugyanaz a kód, amely a rendszermag kezeléseket szétosztja, a folyamat- és a szálazonosítók kijelölésére is használható.Mivel a rendszermagfogók négyes számú többszörösei, ezért a folyamat és a témaazonosító.

Miért a folyamat- és a témaazonosítók többszörösek négynek?

Windows NT alapú operációs rendszereken a folyamatok és a témaazonosító mindig négyes számú.Ez csak egy véletlen egybeesés?

Igen, ez csak véletlen egybeesés, és nem támaszkodhat rá, mivel nem része a programozási szerződésnek. Például a Windows 95 folyamat- és szálazonosítók nem mindig négyes többszörösek voltak.Összehasonlításképpen az a tény, hogy a rendszermagok mindig négyes számúek, a specifikáció része, és az eljövendő jövőben garantálható.

A folyamatok és a téma azonosítók négyes többszörösek, mint a kód újrahasználatának mellékhatása. Ugyanaz a kód, amely a rendszermag-kezeléseket szétosztja, a folyamat- és a szálazonosítók kijelölésére is használható.Mivel a kernelfogantyúk négyes többszörösek, így a folyamat és a témaazonosító is. Ez egy végrehajtási részlet, tehát ne írjon kódot, amelyre támaszkodik. Csak azt mondom, hogy kielégíted a kíváncsiságodat.

Forrás: Miért történik a folyamat- és a témaazonosítók négyszöge?

Miért mindig a kernelfogantyúk többszörösen többszörösek?

Valami, ami nem nagyon ismert, hogy a kernelfogantyúk alsó két bitje mindig nulla;más szavakkal, a számértékük mindig négyes számú.Vegye figyelembe, hogy ez csak a rendszermagfogókra vonatkozik;ez nem vonatkozik az ál-fogantyúkra vagy bármely más típusú fogantyúra( USER fogók, GDI fogantyúk, multimédiás fogantyúk stb.).A kernelfogantyú olyan dolgok, amik átmennek a CloseHandle funkcióhoz.

Legalább a kernelfogantyúk alsó bitje mindig nulla, a GetQueuedCompletionStatus függvény jelzi, ami azt jelzi, hogy beállíthatja az eseményfogantyú alsó bitjét, hogy elnyomja a befejezési port értesítést. Annak érdekében, hogy ez működjön, az alsó bitnek normális esetben nullanak kell lennie.

Ez az információ nem használható a legtöbb alkalmazást író számára, amely továbbra is kezeli a kezeléseket átlátszatlan értékekként. Azok a személyek, akik érdeklődnek a címke bitjeitől, azok, akik alacsony szintű osztálykönyvtárakat hajtanak végre, vagy egy nagyobb kereten belüli kernel objektumokat csomagolnak.

Forrás: Miért mindig a kernelfogantyúk többszöröse négynek?

További olvasnivaló

A régi új dolog: gyakorlati fejlesztés a Windows evolúciójában Raymond Chen( fő szoftverfejlesztő mérnök a Microsoft -nél)

Van valami a magyarázat hozzáadásához? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.