it.phhsnews.com


it.phhsnews.com / Perché non esistono ID processo Windows numerati dispari?

Perché non esistono ID processo Windows numerati dispari?


Se ti piace armeggiare con Windows e imparare mentre vai, potresti aver notato che gli ID di processo e di thread di Windows sono pari e multipli di quattro. Perché? Il post di Q & A di SuperUser di oggi ha le risposte alle domande di un lettore curioso.

La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte.

La domanda

Il lettore SuperUser Peter Hahndorf vuole sapere perché non ci sono ID di processo di Windows dispari:

Ci sono molti modi per esaminare gli ID di processo in Windows. Utilizzo di PowerShell:

Ottengo questo risultato:

Come puoi vedere, tutti gli ID di processo sono numerati pari, non solo, sono tutti multipli di quattro. Puoi sembrare duro come vuoi e non troverai mai un ID processo dispari, almeno non su qualsiasi versione basata su Windows NT. Qual è la ragione di questo?

Perché non ci sono ID di processo Windows dispari?

La risposta

Contribuente SuperUser DavidPostill ha la risposta per noi:

Perché non ci sono processi di Windows dispari ID?

Lo stesso codice che alloca gli handle del kernel viene utilizzato anche per allocare ID processo e thread. Poiché gli handle del kernel sono multipli di quattro, lo stesso vale per ID del processo e del thread.

Perché i multipli ID di processo e di thread sono multipli di quattro?

Nei sistemi operativi basati su Windows NT, gli ID di processo e di thread sono sempre multipli di quattro. È solo una coincidenza?

Sì, è solo una coincidenza, e non dovresti farci affidamento poiché non fa parte del contratto di programmazione. Ad esempio, gli ID di processo e di thread di Windows 95 non erano sempre multipli di quattro. In confronto, la ragione per cui gli handle del kernel sono sempre un multiplo di quattro fa parte delle specifiche e sarà garantita per il prossimo futuro.

Gli ID di processo e di thread sono multipli di quattro come effetto collaterale del riutilizzo del codice. Lo stesso codice che alloca gli handle del kernel viene anche utilizzato per allocare ID processo e thread. Poiché gli handle del kernel sono multipli di quattro, lo stesso vale per gli ID di processo e di thread. Questo è un dettaglio di implementazione, quindi non scrivere codice che si basa su di esso. Ti sto solo dicendo di soddisfare la tua curiosità.

Fonte: Perché gli ID di processi e thread sono multipli di quattro?

Perché il kernel gestisce sempre un multiplo di quattro?

Qualcosa che non va molto bene noto che i due bit inferiori degli handle del kernel sono sempre zero; in altre parole, il loro valore numerico è sempre un multiplo di quattro. Si noti che questo si applica solo agli handle del kernel; non si applica a pseudo-handle o a qualsiasi altro tipo di handle (maniglie USER, handle GDI, maniglie multimediali, ecc.). Gli handle del kernel sono cose che puoi passare alla funzione CloseHandle.

Il fatto che almeno il bit inferiore degli handle del kernel sia sempre zero è implicito dalla funzione GetQueuedCompletionStatus, che indica che puoi impostare il bit inferiore dell'handle dell'evento per sopprimere il completamento notifica di porto. Affinché ciò funzioni, il bit inferiore deve essere normalmente pari a zero.

Questa informazione non è utile per la maggior parte dei writer di applicazioni, che dovrebbero continuare a trattare le maniglie come valori opachi. Le persone che potrebbero essere interessate ai bit di tag sono quelli che implementano librerie di classi di basso livello o stanno avvolgendo gli oggetti del kernel all'interno di un framework più grande.

Fonte: Perché il kernel gestisce sempre un multiplo di quattro?

Ulteriori letture

The Old New Thing: Sviluppo pratico attraverso l'evoluzione di Windows di Raymond Chen ( Principal Software Design Engineer presso Microsoft )


Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla il thread completo di discussione qui.


Come controllare la porta del garage MyQ dalla schermata iniziale del telefono

Come controllare la porta del garage MyQ dalla schermata iniziale del telefono

Se si dispone di un nuovo apriporta da garage Liftmaster o Chamberlain, è probabile che disponga delle funzionalità MyQ, che consentono di aprire e chiudi la porta del garage dall'app MyQ. Ecco come aggiungere un collegamento MyQ alla schermata principale del telefono per un accesso più rapido. MyQ rende davvero comodo non solo aprire e chiudere la porta del garage dal telefono, ma anche controllare e assicurarsi di averlo chiuso dopo di te lasciato al lavoro - sembra che la più grande preoccupazione di tutti sia comunque la loro porta del garage.

(how-to)

Come cambiare il colore della griglia in Excel

Come cambiare il colore della griglia in Excel

Potresti non aver pensato prima al colore della griglia in Excel, ma se sei annoiato con il colore grigio predefinito o vuoi usare un colore che sia più facile per i tuoi occhi, puoi cambiare il colore delle linee della griglia. Per selezionare un colore diverso per la griglia su un foglio di lavoro nella cartella di lavoro corrente, fai clic sulla scheda "File".

(how-to)