2024 Autor: Peter John Melton | [email protected]. Naposledy změněno: 2023-12-16 04:44
Dnešní zasedání Otázky a odpovědi se k nám přichází s laskavým svolením SuperUser - rozdělení Stack Exchange, komunitní skupiny webových stránek pro otázky a odpovědi.
Otázka
Čtenář SuperUser Peter Hahndorf chce vědět, proč neexistují nepatrné ID procesů systému Windows:
There are many ways to look at the process IDs in Windows. Using PowerShell:
Proč neexistují liché ID procesů systému Windows?
Odpověď
Superpříspěvek DavidPostill má pro nás odpověď:
Why are there no odd-numbered Windows process IDs?
The same code that allocates kernel handles is also used to allocate process and thread IDs. Since kernel handles are a multiple of four, so are process and thread IDs.
Why are process and thread IDs multiples of four?
On Windows NT-based operating systems, process and thread IDs always happen to be a multiple of four. Is this just a coincidence?
Yes, it is just a coincidence, and you should not rely on it since it is not part of the programming contract. For example, Windows 95 process and thread IDs were not always multiples of four. By comparison, the reason that kernel handles are always a multiple of four is part of the specification and will be guaranteed for the foreseeable future.
Process and thread IDs are multiples of four as a side-effect of code reuse. The same code that allocates kernel handles is also used to allocate process and thread IDs. Since kernel handles are multiples of four, so are process and thread IDs. This is an implementation detail, so do not write code that relies on it. I am just telling you to satisfy your curiosity.
Source: Why are process and thread IDs multiples of four?
Why are kernel handles always a multiple of four?
Something that is not very well known is that the bottom two bits of kernel handles are always zero; in other words, their numeric value is always a multiple of four. Note that this applies only to kernel handles; it does not apply to pseudo-handles or to any other type of handle (USER handles, GDI handles, multimedia handles, etc.). Kernel handles are things you can pass to the CloseHandle function.
This information is not useful for most application writers, which should continue to treat handles as opaque values. The people who would be interested in tag bits are those who are implementing low-level class libraries or are wrapping kernel objects inside a larger framework.
Source: Why are kernel handles always a multiple of four?
Further Reading
The Old New Thing: Practical Development Throughout the Evolution of Windows by Raymond Chen (Principal Software Design Engineer at Microsoft)
Musíte něco přidat k vysvětlení? Zní to v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.
Doporučuje:
Proč Chrome má tolik otevřených procesů?
Pokud jste někdy v programu Správce úloh v průběhu spouštění prohlížeče Google Chrome někdo pohlédl, možná jste byli překvapeni, že počet položek chrome.exe radikálně překročil počet skutečných otevřených oken prohlížeče Chrome. Co je to s těmito procesy?
Proč neexistují žádné procesy 1, 2 nebo 3 v nástroji Správce úloh systému Windows?
Dnešní zasedání o otázkách a odpovědích se k nám dostalo s laskavým svolením SuperUser ", který rozděluje Stack Exchange, komunitu řízené seskupování webových stránek Otázky a odpovědi.
Jak opravit žádné průhlednosti Aero v systému Windows 7
Funkce Aero ve Windows Vista a Windows 7 je skvělým novým vylepšením, ale někdy se nezobrazuje správně a nemá žádný efekt průhlednosti. Zde je několik rychlých kroků, které můžete podniknout k opravě.
Řešení "Instalační program nenalezli žádné jednotky pevného disku" během instalace systému Windows XP
Jedním z nejpopulárnějších témat mezi našimi čtenáři je instalace systému Windows XP na váš nový počítač se systémem Windows Vista - někdy z důvodů kompatibility, ale také proto, že mnoho lidí prostě nemá rád Vista.
Cortana nebo Windows 10 vyhledávání nenalezli žádné desktopové aplikace ani soubory
Pokud Cortana nemůže nalézt desktopové aplikace, programy, dokumenty, hudbu, položky ovládacího panelu nebo cokoli jiného, co se týče věci, v počítači se systémem Windows 10 vám tento příspěvek pomůže.