sv.phhsnews.com


sv.phhsnews.com / Varför finns inga odd-nummererade Windows-process-ID?

Varför finns inga odd-nummererade Windows-process-ID?


Om du älskar att tinka med Windows och lära dig när du är på gång kan du ha märkt att Windows-process- och tråd-ID är jämntalade och multiplar av fyra. Varför är det så? Dagens SuperUser Q & A-inlägg har svar på en nyfiken läsarens frågor.

Dagens Frågor och svarssession kommer till vår tjänst med SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsare Peter Hahndorf vill veta varför det finns inga udda nummererade Windows-process-ID:

Det finns många sätt att titta på process-ID-erna i Windows. Använda PowerShell:

Jag får detta resultat:

Som du kan se är alla process-ID-nummer lika många, inte bara det, de är alla multiplar av fyra. Du kan se så svårt som du vill, och du hittar aldrig ett udda nummereringsprocess ID, åtminstone inte på någon version som är Windows NT-baserad. Vad är orsaken till detta?

Varför finns inga odd-nummererade Windows-process-ID?

Svaret

SuperUser-bidragsgivare DavidPostill har svaret för oss:

Varför finns det ingen udda numrerad Windows-process IDs?

Samma kod som allokerar kärnhandtag används också för att allokera process- och tråd-ID. Eftersom kärnhandtag är en multipel av fyra, så är process- och tråd-ID.

Varför är process- och tråd-ID-multiplar av fyra?

I Windows NT-baserade operativsystem råkar alltid process- och tråd-IDs vara ett flertal av fyra. Är det bara en slump? Ja, det är bara en slump, och du borde inte lita på det eftersom det inte ingår i programkontraktet. Exempelvis var Windows 95-process- och tråd-ID inte alltid multiplar av fyra. I jämförelse är orsaken till att kärnan hanterar alltid en multipel av fyra en del av specifikationen och kommer att garanteras under överskådlig framtid.

Process- och tråd-ID är multiplar av fyra som en bieffekt av kodåteranvändning. Samma kod som allokerar kärnhandtag används också för att allokera process- och tråd-ID. Eftersom kärnhandtag är multiplar av fyra, så är process- och tråd-ID. Detta är en implementeringsdetalj, så skriv inte kod som bygger på den. Jag säger bara att du ska tillfredsställa din nyfikenhet.

Källa:

Varför är process- och tråd-ID-multiplar av fyra? Varför är kärnhanteringar alltid en multipel av fyra?

Något som inte är så bra känt är att de två nedre bitarna av kärnhandtag alltid är noll; med andra ord är deras numeriska värde alltid en multipel av fyra. Observera att detta endast gäller kärnhandtag Det gäller inte pseudohandtag eller någon annan typ av handtag (USER-handtag, GDI-handtag, multimediahandtag etc.). Kärnhandtag är saker du kan överföra till CloseHandle-funktionen.

Att åtminstone bottenbiten av kärnhanteringar alltid är noll implisiveras av funktionen GetQueuedCompletionStatus, vilket indikerar att du kan ställa in bottenbiten i händelsehandtaget för att undertrycka fullbordandet portmeddelande. För att detta ska kunna fungera måste den vanliga biten normalt vara noll.

Denna information är inte användbar för de flesta applikationsskrivare, som bör fortsätta att behandla handtag som ogenomskinliga värden. Personerna som skulle vara intresserade av tagbitar är de som genomför lågkurs klassbibliotek eller förpackar kärnobjekt i en större ram.

Källa:

Varför är kärnhanteringar alltid en multipel av fyra? Ytterligare läsning

Den gamla nyheten: Praktisk utveckling i hela utvecklingen av Windows av Raymond Chen (

Principal Software Design Engineer i Microsoft ) Har något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in den fullständiga diskussionsgängan här.



Använd Excel för att räkna ut en effektiv ränta från en nominell räntesats

Använd Excel för att räkna ut en effektiv ränta från en nominell räntesats

Bland Excels mer populära formler används EFFECT-formeln ofta av finansiella proffs för att räkna ut en effektiv ränta från en nominell ränta. Excel kallas också årlig procentsats (APR) och årligt procentuellt avkastning (Excel), vilket gör det enkelt att beräkna effektiva låne-, billån och småföretagslånräntor från de nominella räntorna som ofta anges av utlåningsinstitut.Effektiva mot nomine

(How-to)

Chromebooks är kända för sin enkelhet och unika design, men tangentbordet och styrplattan kan ta lite vana vid nya användare. Chromebooks har inte samma layouter som du skulle hitta på en vanlig Windows- eller OS X-bärbar dator, med flera olika knappar som exklusivt är till Googles operativsystem.

Chromebooks är kända för sin enkelhet och unika design, men tangentbordet och styrplattan kan ta lite vana vid nya användare. Chromebooks har inte samma layouter som du skulle hitta på en vanlig Windows- eller OS X-bärbar dator, med flera olika knappar som exklusivt är till Googles operativsystem.

För att starta, öppna fönstret Inställningar genom att klicka på ditt porträtt i nedre högra hörnet av aktivitetsfältet och välj " Inställningar "med växelsymbolen bredvid det. Efter att fönstret Inställningar öppnas letar du efter avsnittet" Enhet ", markerat nedan. Ändra kontrollpanelens känslighet och rullningsriktning Avsnittet" Enhet " är där du hittar alternativet att ändra inställningar för pekplattan, liksom glidreglaget som justerar din pekplattans känslighet.

(how-to)