A sessão de perguntas e respostas de hoje nos é oferecida por cortesia da SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade.
A questão
Leitor de SuperUsuários O Agovizer deu uma longa olhada na tabela Process display table no Windows Task Manager e voltou com algumas perguntas, especificamente:
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.
Nós pulamos para o Gerenciador de Tarefas em nossa máquina e com certeza não havia processos designados nos slots 1, 2 e 3 - embora nossos PIDs saltassem de 4 para 340, ao contrário de seus 4 para 200.
A resposta
O colaborador do SuperUser, G Koe, fecha o caso de uma só vez:
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
Tudo o que ele sugere verifica: estamos perdendo 1, 2 e 3 (não múltiplos de 4) e todo valor de PID em nossa lista de 340 a 13136 é divisível por 4.
Tem algo a acrescentar à explicação? Soe fora nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.