Scheduler, timers og foreground boost i Windows 11 25H2
På denne side
Kort svar
Sektion kaldt “Kort svar”Disse værdier styrer planlæggeren, tilladelse af timere, fordelingen af urinterrupts og DPC-budgettet. Ud fra navnet alene kan man ikke fastslå den fulde effekt: Windows anvender bitmasker og normaliserer inputværdier. Forskellige poster kan angive samme driftstilstand.
Hvad der blev undersøgt
Sektion kaldt “Hvad der blev undersøgt”Det blev undersøgt, hvilke parametre for planlæggeren og timere kernen læser, hvordan værdierne normaliseres, og hvilke felter i Win32PrioritySeparation der har hvilken betydning.
Undersøgelsens område
Sektion kaldt “Undersøgelsens område”Windows 11 25H2 build 26200.9168, kernens scheduler- og timer-paths. Konkrete spil og programmer indgik ikke i målingerne.
Metode
Sektion kaldt “Metode”Mastertabel over kerneparametre, observation af runtime-kald til Registry og kontrol af bitfelter og normalisering af værdier.
Kanoniske parametre
Sektion kaldt “Kanoniske parametre”| Registry path | Value | Type | Default | Reader/timing |
|---|---|---|---|---|
HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl |
Win32PrioritySeparation |
REG_DWORD |
0x02 |
ntoskrnl.exe, derefter session initialization |
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel |
GlobalTimerResolutionRequests |
REG_DWORD |
0 |
kernel phase-0 |
| samme sti | MaxDynamicTickDuration |
REG_DWORD |
0xFFFFFFFF |
dynamic tick duration limit |
| samme sti | EnablePerCpuClockTickScheduling |
REG_DWORD |
0 |
phase-1 clock init |
| samme sti | DisableLowQosTimerResolution |
REG_DWORD |
1 |
timer policy init |
| samme sti | DpcCumulativeSoftTimeout |
REG_DWORD |
120000 |
DPC budget init |
| samme sti | ForceForegroundBoostDecay |
REG_DWORD |
0 |
scheduler init |
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System |
PassiveIntRealTimeWorkerPriority |
REG_DWORD |
16 |
I/O worker init |
Win32PrioritySeparation
Sektion kaldt “Win32PrioritySeparation”Værdien består af bitfelter. Kernen fastlægger separat forstærkningen af det aktive program (foreground boost), kvantets type og varighed. I den undersøgte build er startværdien for klient-Windows 0x02. Der anvendes masken 0x3F på inputværdien, så forskellige poster kan angive én og samme scheduler-tilstand.
Gennemgang af bitfelterne bit for bit, en beregner til ækvivalente værdier og historiske målinger af latenstid og FPS er lagt i en separat undersøgelse «Win32PrioritySeparation: latenstid og FPS ved fuld CPU-belastning». Brugersiden af spørgsmålet — valg, effekt og tilbageførsel — dækkes af BoosterX’ indstillingsside.
Parameteren ændrer planlægningsreglerne. For at vurdere nytten i en konkret opgave skal testen gentages med CPU-belastning og latenstiden måles; indstillingen garanterer ikke nogen universel acceleration.
Timer policy
Sektion kaldt “Timer policy”GlobalTimerResolutionRequests og de tilstødende timer-parametre læses fra Session Manager\Kernel. De påvirker rækkevidden af anmodninger om tilladelse af timere, lokal eller systemdækkende, og fordelingen af urinterrupts mellem CPU’er. På understøttede platforme kan separat planlægning af uret pr. CPU også fungere uden tvungen indstilling.
MaxDynamicTickDuration begrænser varigheden af søvn i tomgang uden periodiske takter. Måleenheden er 100 nanosekunder: 7500 betyder 0.75 ms, ikke 7.5 ms. Den øvre grænse begrænses desuden af den aktuelle timer-tilladelse. 0xFFFFFFFF fjerner den ekstra grænse.
DisableLowQosTimerResolution ændrer grænsen for anmodninger med lav prioritet om tilladelse af timere. Der indstilles dog ikke i sig selv en permanent høj tilladelse.
Reglerne for timere bør kun ændres for belastning, som faktisk udfører sådanne anmodninger. En permanent høj tilladelse øger antallet af timer-interrupts og energiforbruget.
DPC budget og boost decay
Sektion kaldt “DPC budget og boost decay”DpcCumulativeSoftTimeout angiver budgettet for den samlede udførelsestid for DPC. Dets normaliseringsgrænser, sammenhængen med DpcWatchdogPeriod og de tilstødende DPC-parametre og worker-grænser er gennemgået i undersøgelsen «DPC og Kernel Executive workers i Windows 11 25H2»; de gengives ikke her. ForceForegroundBoostDecay ændrer reglerne for henfald af forstærkningen af det aktive program, og PassiveIntRealTimeWorkerPriority angiver prioriteten for den særlige arbejdstråd for input/output. For PassiveIntRealTimeWorkerPriority accepterer koden 17..21; hvis posten mangler, bruges 16. Værdien 18 er tilladt og hæver prioriteten.
Ved sammenligning skal man tage højde for måleenheder og grænser for intervaller. Kernen normaliserer ikke-understøttede værdier, så det skrevne tal kan afvige fra det faktisk anvendte.
Disse parametre vedrører systemplanlægning og driverdiagnostik. Uden en DPC/ISR-trace er der ikke solidt grundlag for at ændre dem manuelt.
Resultater
Sektion kaldt “Resultater”- Læsning af alle parametre i tabellen er bekræftet i
ntoskrnl.exeaf build26200.9168:Win32PrioritySeparationlæses ved initialisering af planlæggeren og session initialization, timer-parametrene — i kernens initialiseringsfaser. - Startværdier og normalisering er bekræftet: masken
0x3FforWin32PrioritySeparation, intervallet17..21med reserveværdien16forPassiveIntRealTimeWorkerPriority, enheden 100 ns forMaxDynamicTickDuration. - Selve observationerne er kvalitative: der blev ikke målt værdier for latenstid, FPS eller baggrundsbelastning i denne undersøgelse.
Hvad der er bekræftet
Sektion kaldt “Hvad der er bekræftet”- Readers og normalisering af parametre i
ntoskrnl.exei den undersøgte build. - Startværdien
0x02forWin32PrioritySeparationog masken0x3F. - Betydningen af felterne boost og kvante, enhederne for
MaxDynamicTickDuration. - Normalisering af
PassiveIntRealTimeWorkerPrioritytil intervallet17..21med reserveværdien16.
Hvad der ikke er bekræftet
Sektion kaldt “Hvad der ikke er bekræftet”- Ændringens indvirkning på FPS, latenstid eller responsivitet.
- Nytten af ændringen uden belastning, som faktisk bruger timere og DPC.
Praktisk konklusion
Sektion kaldt “Praktisk konklusion”Behold standardværdierne. Ændr kun parametre for belastning, som faktisk udfører de pågældende anmodninger, og sammenlign resultaterne i identiske kørsler.
Gendannelse af tilstanden
Sektion kaldt “Gendannelse af tilstanden”Gendan standardværdierne, eller slet de valgfrie poster. Kerneparametre anvendes ved næste start af Windows.
Begrænsninger
Sektion kaldt “Begrænsninger”Læsninger i fase 0 af opstarten kan falde uden for Procmon’s optagelsesinterval. Undersøgelsen bekræfter læsekoden og normaliseringen på build 26200.9168. Antallet af uafhængige observationskørsler (opstarter og traces) er ikke fastlagt i artiklens data, så reproducerbarheden af selve reader-observationerne er ikke kvantitativt vurderet. Der er ikke fastslået nogen universel indvirkning på ydeevne eller latenstid.
Undersøgelsen og de anvendte værktøjer tilhører udvikleren af BoosterX, så udvikleren har en direkte interesse i resultaterne. Metoden og anvendelsesgrænserne er beskrevet ovenfor, og konklusionerne kan efterprøves via åbne data og de anførte offentlige kilder.
Kilder
Sektion kaldt “Kilder”- Win32PrioritySeparation, Microsoft Learn, kontrolleret 2026-09-01.
- Timer resolution, Microsoft Learn, kontrolleret 2026-09-01.
Offentlige kilder er kontrolleret: 2026-09-02.
Ændringshistorik
Sektion kaldt “Ændringshistorik”- 2026-09-20: tilføjet disclaimer om interessekonflikt; datoer for reviewed/modified afstemt.
- 2026-09-19: tilføjet afsnittet «Resultater», krydshenvisninger til undersøgelserne af
Win32PrioritySeparationog DPC/worker-parametre samt BoosterX’ indstillingsside; det er fastlagt, at antallet af observationskørsler mangler. - 2026-09-02: første udgivelse; readers, normalisering og bitfelter bekræftet, grænser for praktisk nytte tilføjet.
