Microsoft, Windows 11'de Görev Yöneticisi'nin yoğun yükte yavaşlama nedenini açıkladı

2 dk okuma
Kısa cevap

Görev Yöneticisi'ne yüksek öncelik vermek, ortak kaynaklara erişirken oluşan beklemeyi ortadan kaldırmıyor. Windows 11 odaktaki uygulamaya öncelik tanıyor; ancak düşük öncelikli iş parçacıklarının kontrol ettiği kaynaklar bu avantajı sınırlıyor.

Windows 11'de yanıt vermeyen bir uygulamayı kapatmak için açılan Görev Yöneticisi, bilgisayar ağır yük altındayken kendisi de tepkisiz kalabiliyor. Microsoft'un deneyimli yazılım mühendisi Raymond Chen, kullanıcıların müdahale etmek için başvurduğu bu aracın neden aynı koşullardan etkilendiğini açıkladı.

Yoğun işlemci kullanımı yaratan bir oyun, çok sayıda sekmenin açık olduğu bir tarayıcı veya ağır bir uygulama, bilgisayardaki diğer süreçlerin çalışmasını da zorlaştırabiliyor. Chen'in açıklamasına göre kullanılabilir işlemci zamanı yetersiz kaldığında Görev Yöneticisi de bundan payını alıyor.

Yüksek öncelik, ortak kaynaklarda beklemeyi bitirmiyor

Görev Yöneticisi'ne yüksek öncelik vermek, ilk bakışta sorunu çözebilecek basit bir müdahale gibi görünüyor. Ancak yüksek öncelikle çalışan bir program da başka süreçlerle paylaştığı bir kaynağa ihtiyaç duyabiliyor. Bu kaynak kullanımdaysa programın ilerleyebilmesi için beklemesi gerekiyor.

Chen bu durumu, kasada sıranın önüne geçme hakkı sağlayan bir ayrıcalıkla açıklıyor. Öncelikli müşteri sıranın başına ulaşsa bile kasadaki kişinin alışverişi tamamlanmadan işlem yaptıramıyor. Yazılımda da öncelik kazanmak, ihtiyaç duyulan kaynağın hemen kullanılabilir hale gelmesini sağlamıyor.

Dolayısıyla Görev Yöneticisi'nin önceliğini yükseltmek, her koşulda hızlı tepki vereceği anlamına gelmiyor. Aracın çalışmasını sürdürebilmesi, yalnızca kendi önceliğine değil, erişmek istediği ortak kaynakların durumuna da bağlı kalıyor.

Windows 11, bu sorunun öncelik tersine dönmesi olarak adlandırılan biçimine karşı bir koruma mekanizmasına sahip. Kaynağı koruyan kod bu durumu önleyecek şekilde yazılmışsa, bekleyen iş parçacığının önceliği kaynağı elinde tutan iş parçacığına aktarılıyor.

Ancak bu mekanizma da bütün gecikmeleri gideremiyor. Kaynağın sahibi olan iş parçacığı, ağ üzerinden bir dosyaya erişmek gibi yavaş bir işlemle meşgulse öncelik aktarımı beklemeyi ortadan kaldırmıyor. İşin tamamlanmasını geciktiren etken, yalnızca hangi iş parçacığının önce çalıştırıldığı olmuyor.

Arayüz de aynı kaynakları kullanıyor

Chen, kullanıcı arayüzü kodunun bu tür beklemelere özellikle açık olduğunu belirtiyor. Arayüz kodu, çalışmasının bir noktasında işletim sisteminin arayüz altyapısına başvurmak zorunda kalıyor. Burada bilgisayardaki diğer arayüz iş parçacıklarıyla aynı kaynaklar için rekabet ediyor.

Windows, odakta bulunan uygulamaya zaten öncelikli davranıyor. Kullanıcı odağı görev çubuğuna veya Görev Yöneticisi'ne geçirebilirse bu ayrıcalıktan yararlanabiliyor. Yine de öncelikli iş parçacıkları, daha düşük öncelikli iş parçacıklarının kontrol ettiği kaynaklarda takılırsa sağlanan avantaj sınırlı kalıyor.

Chen'in açıklamasının merkezinde, kontrolden çıkan bir sisteme yine o sistemin içinden müdahale etmenin güçlüğü bulunuyor. Sistemi toparlamak için kullanılan araçlar da aynı darboğazlardan etkilenebiliyor. Özellikle sorun çıkaran uygulamayla kritik kaynakları paylaşmaları, müdahaleyi zorlaştırıyor.

Microsoft'un geliştirici blogundaki tartışmada bir geliştiricinin paylaştığı deneyim de bu açıklamayla örtüşüyor. Bilgisayarındaki 24 çekirdeğin tamamını yük altında bırakan geliştirici, Görev Yöneticisi'nin neredeyse kullanılamaz hale geldiğini belirtiyor. Aracın önceliğini yükseltmek ise yalnızca küçük bir iyileşme sağlamış.

Klavye kısayollarıyla alternatif erişim

Donmuş bir uygulamaya müdahale ederken Ctrl + Shift + Esc kısayolu çalışmıyorsa Ctrl + Alt + Delete başka bir erişim yolu sunuyor. Bu tuş birleşimiyle açılan ayrı ekrandan Görev Yöneticisi başlatılabiliyor.

Bu seçenek, Görev Yöneticisi'ne ulaşmak için alternatif sağlasa da Chen'in anlattığı kaynak paylaşımı sorununu ortadan kaldırmıyor. Yoğun yük altında aracın ne kadar hızlı yanıt verdiği, işlemci zamanının yanı sıra ihtiyaç duyduğu kaynakların başka iş parçacıkları tarafından kullanılıp kullanılmadığına da bağlı kalıyor.