webForumDet fria alternativet

Hur sätts PID på en process?

15 svar · 481 visningar · startad av Sjodahl

SjodahlMedlem sedan maj 20033 218 inlägg
#1

Undrar om det finns någon logik i hur PID sätts på olika processer, eller om det bara blir typ första programmet som startas får lägsta lediga PID?

maydayMedlem sedan aug. 20003 473 inlägg
#2

vetifan om den ens tar nästa lediga utan den tar bara nästa vad ja vet

SjodahlMedlem sedan maj 20033 218 inlägg
#3

tänkte mest för att:
"System Idle Process" har PID 0
"System" har PID 4

verkar ju logiskt att Idle har 0 och sen växer det...

maydayMedlem sedan aug. 20003 473 inlägg
#4

System Idle Process Är ju ingen Pid

därav 0 för ledigt prosessorkraft är ju knappast nått som körs

SjodahlMedlem sedan maj 20033 218 inlägg
#5

hehe nej det är väl sant, men det är väl ändå typ ngn funktion som körs som anropar viloläget eller ngt... aja skitsamma ;)

mest en fundering ;)

legisMedlem sedan juli 20044 453 inlägg
#6

Ehum, det stämmer iofs inte. Idle är en process (med tråd) som körs, men den fungerar lite annorlunda. Detta är det sätt Windows håller koll på hur mycket processortid alla andra processer tar. Idle är alltså utgångsvärdet (100%) som används för att beräkna resten av värdena. Så JO mayday, idle är en process och en oerhört viktig sådan..

SjodahlMedlem sedan maj 20033 218 inlägg
#7

mm tänkte väl det måste vara något som driver den ;)

D3VaST8DMedlem sedan dec. 2000485 inlägg
#8

legis skrev:

Ehum, det stämmer iofs inte. Idle är en process (med tråd) som körs, men den fungerar lite annorlunda. Detta är det sätt Windows håller koll på hur mycket processortid alla andra processer tar. Idle är alltså utgångsvärdet (100%) som används för att beräkna resten av värdena. Så JO mayday, idle är en process och en oerhört viktig sådan..

Det är en process men den är inte "särskilt viktig". System idle processen är inte i sig en "riktig" process utan är mest en räknare (även om det kör som en process). Den har för övrigt prioritet 0, dvs den lägsta prioriteringen av alla 32 nivåerna. Det är inte värderna från denna "process" som bestämmer vilken process som skall köras nästa gång.

legisMedlem sedan juli 20044 453 inlägg
#9

Hum, istället för att skriva en lång roman om idle-processens funktion så ger jag en länk istället. De som inte tror att idle-processen är särskilt viktig bör tänka om lite.

http://www.microsoft.com/mspress/books/sampchap/4354c.asp#195

SjodahlMedlem sedan maj 20033 218 inlägg
#10

Nej jag bara tog ett exempel på "process" id, åter till min ursprungsfråga!

D3VaST8DMedlem sedan dec. 2000485 inlägg
#11

legis skrev:

Hum, istället för att skriva en lång roman om idle-processens funktion så ger jag en länk istället. De som inte tror att idle-processen är särskilt viktig bör tänka om lite.

http://www.microsoft.com/mspress/books/sampchap/4354c.asp#195

Vidhåller fortfarande att den inte är så viktig som du framställer. Visserligen kan den tömma DPC kön, men det är inte den enda komponenten som tömmer den (CPU kan göra detta själv).

Dessutom om den vore oehört viktig process som alltid måste köras borde den inte kunna ge instruktioner om att CPUn skall stängas av, för att t.ex. halstra mindre värme/spara energi.

Kom även ihåg att system idle process bara körs om ingen annan process körs (även om system idle process antagligen har access till CPU varje sekund pga av den snabba bytena av processer - ingen process tillåts svälta utan får tillgång till CPU förr eller senare).

legisMedlem sedan juli 20044 453 inlägg
#12

Vidhåll du, jag litar mer på dokumentation istället.

Åter till Sjodahls fråga, någon som vet?

D3VaST8DMedlem sedan dec. 2000485 inlägg
#13

Den tar nästa lediga nummer upp till ett visst nummer, vanligtvis 32767. Därefter startar den om vid behov.

SjodahlMedlem sedan maj 20033 218 inlägg
#14

Men varje process (under trådar) kan typ uppta en massa nummer eller ?
Annars borde jag ju inte tex mirande ha 4008, för så många processer har jag inte dragit igång ;)

D3VaST8DMedlem sedan dec. 2000485 inlägg
#15

Varje process kan ju skapa trådar som även de får en PID.
Vissa program kan skapa en ny tråd vid olika händelser, t.ex. FTP server skapar en process vid startande av programmet. Den kan starta barnprocesser när folk ansluter, skickar filer, ta emot filer osv osv...

SjodahlMedlem sedan maj 20033 218 inlägg
#16

Okej var väl så jag trodde, så då blir det första lediga som tilldelas typ. Vi nöjer oss med det ;)

130 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)