Windows 11 25H2'de Scheduler, timer'lar ve foreground boost
Sayfa içeriği
Kısa yanıt
Bölüm başlığı “Kısa yanıt”Bu değerler zamanlayıcıyı, zamanlayıcı çözünürlüğünü, saat kesmelerinin dağıtımını ve DPC bütçesini yönetir. Etkinin tamamı tek bir adla belirlenemez: Windows bit maskeleri uygular ve giriş değerlerini normalleştirir. Farklı kayıtlar aynı çalışma modunu tanımlayabilir.
Neyi inceledik
Bölüm başlığı “Neyi inceledik”Çekirdeğin hangi zamanlayıcı ve zamanlayıcı parametrelerini okuduğunu, değerlerin nasıl normalleştirildiğini ve Win32PrioritySeparation alanlarının neyden sorumlu olduğunu inceledik.
Araştırma kapsamı
Bölüm başlığı “Araştırma kapsamı”Windows 11 25H2 build 26200.9168, çekirdeğin scheduler ve timer paths. Belirli oyunlar ve uygulamalar ölçümlere dahil edilmedi.
Yöntem
Bölüm başlığı “Yöntem”Çekirdek parametrelerinin ana tablosu, Registry’ye yapılan runtime erişimlerinin gözlemlenmesi ve bit alanları ile değer normalleştirmesinin doğrulanması.
Kanonik parametreler
Bölüm başlığı “Kanonik parametreler”| Registry path | Value | Type | Default | Reader/timing |
|---|---|---|---|---|
HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl |
Win32PrioritySeparation |
REG_DWORD |
0x02 |
ntoskrnl.exe, ardından session initialization |
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel |
GlobalTimerResolutionRequests |
REG_DWORD |
0 |
kernel phase-0 |
| aynı yol | MaxDynamicTickDuration |
REG_DWORD |
0xFFFFFFFF |
dynamic tick duration limit |
| aynı yol | EnablePerCpuClockTickScheduling |
REG_DWORD |
0 |
phase-1 clock init |
| aynı yol | DisableLowQosTimerResolution |
REG_DWORD |
1 |
timer policy init |
| aynı yol | DpcCumulativeSoftTimeout |
REG_DWORD |
120000 |
DPC budget init |
| aynı yol | ForceForegroundBoostDecay |
REG_DWORD |
0 |
scheduler init |
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System |
PassiveIntRealTimeWorkerPriority |
REG_DWORD |
16 |
I/O worker init |
Win32PrioritySeparation
Bölüm başlığı “Win32PrioritySeparation”Değer bit alanlarından oluşur. Çekirdek etkin uygulamanın güçlendirmesini (foreground boost), kuantum türünü ve süresini ayrı ayrı belirler. İncelenen build’de istemci Windows’un başlangıç değeri 0x02’e eşittir. Giriş değerine 0x3F maskesi uygulanır, bu nedenle farklı kayıtlar tek bir zamanlayıcı modunu tanımlayabilir.
Bit alanlarının bit bazında çözümlenmesi, eşdeğer değer hesaplayıcısı ve geçmiş gecikme ile FPS ölçümleri ayrı bir araştırmaya taşındı: «Win32PrioritySeparation: tam CPU yükü altında gecikme ve FPS». Konunun kullanıcı tarafını — seçim, etki ve geri alma — BoosterX ayar sayfası ele alır.
Parametre zamanlama kurallarını değiştirir. Belirli bir görevdeki faydayı değerlendirmek için CPU yükü altında testi tekrarlamak ve gecikmeyi ölçmek gerekir; ayar evrensel bir hızlanma garanti etmez.
Timer policy
Bölüm başlığı “Timer policy”GlobalTimerResolutionRequests ve komşu zamanlayıcı parametreleri Session Manager\Kernel üzerinden okunur. Bunlar zamanlayıcı çözünürlüğü isteklerinin kapsamını, yerel veya sistem geneli, ve saat kesmelerinin CPU’lar arasındaki dağıtımını etkiler. Desteklenen platformlarda saatlerin CPU bazında ayrı zamanlanması zorunlu bir ayar olmadan da çalışabilir.
MaxDynamicTickDuration boşta uyku süresini periyodik tikler olmadan sınırlar. Ölçü birimi 100 nanosaniyedir: 7500 0.75 ms anlamına gelir, 7.5 ms değil. Üst sınır ayrıca geçerli zamanlayıcı çözünürlüğüyle sınırlandırılır. 0xFFFFFFFF ek sınırı kaldırır.
DisableLowQosTimerResolution düşük öncelikli zamanlayıcı çözünürlüğü isteklerinin sınırını değiştirir. Bununla birlikte kalıcı yüksek çözünürlük kendi başına ayarlanmaz.
Zamanlayıcı kurallarını yalnızca bu tür istekleri gerçekten yürüten yükler için değiştirmeye değer. Kalıcı yüksek çözünürlük zamanlayıcı kesme sayısını ve enerji tüketimini artırır.
DPC budget ve boost decay
Bölüm başlığı “DPC budget ve boost decay”DpcCumulativeSoftTimeout toplam DPC yürütme süresi bütçesini belirler. Normalleştirme sınırları, DpcWatchdogPeriod ile ilişkisi ve komşu DPC parametreleri ile worker limitleri «Windows 11 25H2’de DPC ve Kernel Executive workers» araştırmasında ele alınmıştır; burada tekrarlanmaz. ForceForegroundBoostDecay etkin uygulamanın güçlendirmesinin azalma kurallarını değiştirir, PassiveIntRealTimeWorkerPriority ise özel giriş-çıkış çalışan iş parçacığının önceliğini belirler. PassiveIntRealTimeWorkerPriority için kod 17..21 kabul eder; kayıt yoksa 16 kullanılır. 18 değeri geçerlidir ve önceliği yükseltir.
Karşılaştırma yaparken ölçü birimlerini ve aralık sınırlarını dikkate alın. Çekirdek desteklenmeyen değerleri normalleştirir, bu nedenle yazılan sayı gerçekte uygulanandan farklı olabilir.
Bu parametreler sistem zamanlaması ve sürücü tanılamasıyla ilgilidir. DPC/ISR izlemesi olmadan bunları elle değiştirmek için güvenilir bir gerekçe yoktur.
Sonuçlar
Bölüm başlığı “Sonuçlar”- Tablodaki tüm parametrelerin okunması
26200.9168build’ininntoskrnl.exeortamında doğrulandı:Win32PrioritySeparationzamanlayıcı başlatılırken ve session initialization sırasında okunur, zamanlayıcı parametreleri ise çekirdek başlatma aşamalarında. - Başlangıç değerleri ve normalleştirme doğrulandı:
Win32PrioritySeparationiçin0x3Fmaskesi,PassiveIntRealTimeWorkerPriorityiçin16yedekli17..21aralığı,MaxDynamicTickDurationiçin 100 ns birimi. - Gözlemlerin kendisi nitelikseldir: bu araştırmada gecikme, FPS veya arka plan yükü değerleri ölçülmedi.
Doğrulananlar
Bölüm başlığı “Doğrulananlar”- İncelenen build’in
ntoskrnl.exeortamındaki readers ve parametre normalleştirmesi. Win32PrioritySeparationiçin0x02başlangıç değeri ve0x3Fmaskesi.- boost ve kuantum alanlarının anlamı,
MaxDynamicTickDurationbirimleri. PassiveIntRealTimeWorkerPrioritydeğerinin16yedekli17..21aralığına normalleştirilmesi.
Doğrulanmayanlar
Bölüm başlığı “Doğrulanmayanlar”- Değişikliğin FPS, gecikme veya tepkisellik üzerindeki etkisi.
- Zamanlayıcıları ve DPC’yi gerçekten kullanan bir yük olmadan değişikliğin faydası.
Pratik sonuç
Bölüm başlığı “Pratik sonuç”Varsayılan değerleri bırakın. Parametreleri yalnızca ilgili istekleri gerçekten yürüten yükler için değiştirin ve sonuçları aynı koşullardaki çalıştırmalarda karşılaştırın.
Durumu geri yükleme
Bölüm başlığı “Durumu geri yükleme”Varsayılan değerleri geri getirin veya isteğe bağlı kayıtları silin. Çekirdek parametreleri bir sonraki Windows başlatmasında uygulanır.
Sınırlamalar
Bölüm başlığı “Sınırlamalar”Önyüklemenin 0. aşamasındaki okumalar Procmon kayıt aralığına girmeyebilir. Araştırma, 26200.9168 build’inde okuma kodunu ve normalleştirmeyi doğrular. Makale verilerinde bağımsız gözlem çalıştırmalarının (önyüklemeler ve izlemeler) sayısı kaydedilmemiştir, bu nedenle reader gözlemlerinin tekrarlanabilirliği niceliksel olarak değerlendirilmedi. Performans veya gecikme üzerinde evrensel bir etki tespit edilmedi.
Araştırma ve kullanılan araçlar BoosterX geliştiricisine aittir, dolayısıyla geliştiricinin sonuçlarda doğrudan çıkarı vardır. Yöntem ve uygulanabilirlik sınırları yukarıda açıklanmıştır; sonuçlar açık veriler ve listelenen kamuya açık kaynaklar üzerinden doğrulanabilir.
Kaynaklar
Bölüm başlığı “Kaynaklar”- Win32PrioritySeparation, Microsoft Learn, kontrol tarihi 2026-09-01.
- Timer resolution, Microsoft Learn, kontrol tarihi 2026-09-01.
Kamuya açık kaynaklar kontrol edildi: 2026-09-02.
Değişiklik geçmişi
Bölüm başlığı “Değişiklik geçmişi”- 2026-09-20: çıkar çatışması uyarısı eklendi; reviewed/modified tarihleri uyumlu hale getirildi.
- 2026-09-19: «Sonuçlar» bölümü,
Win32PrioritySeparationve DPC/worker parametreleri araştırmalarına çapraz bağlantılar ve BoosterX ayar sayfası eklendi; gözlem çalıştırma sayısının bulunmadığı kaydedildi. - 2026-09-02: ilk yayın; readers, normalleştirme ve bit alanları doğrulandı, pratik faydanın sınırları eklendi.
