İçeriğe geç

Windows 11 25H2'de Scheduler, timer'lar ve foreground boost

Sayfa içeriği

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.

Ç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.

Windows 11 25H2 build 26200.9168, çekirdeğin scheduler ve timer paths. Belirli oyunlar ve uygulamalar ölçümlere dahil edilmedi.

Çekirdek parametrelerinin ana tablosu, Registry’ye yapılan runtime erişimlerinin gözlemlenmesi ve bit alanları ile değer normalleştirmesinin doğrulanması.

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

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.

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.

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.

  • Tablodaki tüm parametrelerin okunması 26200.9168 build’inin ntoskrnl.exe ortamında doğrulandı: Win32PrioritySeparation zamanlayı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ı: Win32PrioritySeparation için 0x3F maskesi, PassiveIntRealTimeWorkerPriority için 16 yedekli 17..21 aralığı, MaxDynamicTickDuration için 100 ns birimi.
  • Gözlemlerin kendisi nitelikseldir: bu araştırmada gecikme, FPS veya arka plan yükü değerleri ölçülmedi.
  • İncelenen build’in ntoskrnl.exe ortamındaki readers ve parametre normalleştirmesi.
  • Win32PrioritySeparation için 0x02 başlangıç değeri ve 0x3F maskesi.
  • boost ve kuantum alanlarının anlamı, MaxDynamicTickDuration birimleri.
  • PassiveIntRealTimeWorkerPriority değerinin 16 yedekli 17..21 aralığına normalleştirilmesi.
  • 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ı.

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.

Varsayılan değerleri geri getirin veya isteğe bağlı kayıtları silin. Çekirdek parametreleri bir sonraki Windows başlatmasında uygulanır.

Ö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.

Kamuya açık kaynaklar kontrol edildi: 2026-09-02.

  • 2026-09-20: çıkar çatışması uyarısı eklendi; reviewed/modified tarihleri uyumlu hale getirildi.
  • 2026-09-19: «Sonuçlar» bölümü, Win32PrioritySeparation ve 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.