Öne çıkanlar
- Microsoft mühendisi Raymond Chen, Görev Yöneticisi'nin yüksek yük altında neden yanıt vermediğini açıkladı.
- İşlemci kaynakları tükendiğinde öncelikli işlemler bile ortak kuyrukta beklemek zorunda kalıyor.
- Tüm çekirdeklerin dolduğu durumlarda arayüz kodları diğer süreçlerle rekabet edemez hale geliyor.
Bilgisayarların en kritik anlarında, özellikle de kaynak tüketiminin zirve yaptığı durumlarda yanıt vermeyen arayüzler kullanıcıların en büyük şikayetlerinden birini oluşturur. Oyunlar, çok sekmeli tarayıcılar veya ağır uygulamalar sistemi sınırlarına zorladığında donan pencerelere müdahale etmek için başvurulan ilk araç olan Görev Yöneticisi, bu tür yoğun anlarda sıklıkla kilitlenir. Konuyla ilgili olarak Microsoft kıdemli yazılım mühendisi Raymond Chen’in şirketin resmi blogunda yaptığı açıklamaya göre, sistem işlemci açlığı çektiğinde görev çubuğu ve Görev Yöneticisi dahil tüm süreçlerin zarar gördüğünü ve kilitlenen bir sistemi yine o sistemin içinden düzeltmenin zor olduğunu belirtti. Şirketin resmi belgelerinde, Görev Yöneticisi’nin atası olan Görev Listesi’nin işletim sistemindeki yüke bakılmaksızın hızlı yanıt vermesi gereken yüksek öncelikli sınıfın bir örneği olarak gösterildiği bilinse de günümüz koşullarında bu durum tamamen engellenemiyor.
İşlemci Açlığı ve Ortak Kaynak Bekleyişi
Bilgisayarın işlemci zamanı tamamen tükendiğinde Görev Yöneticisi de dahil olmak üzere makinedeki her süreç bu durumdan doğrudan zarar görür. Görev Yöneticisi ve görev çubuğu normal şartlarda yüksek öncelikle çalıştırılsa bile ortak bir kaynağı beklemek zorunda kaldıkları için kilitlenmeler kaçınılmaz hale gelir. Windows işletim sisteminin iş parçacıkları için kullandığı 0 ila 31 arasında değişen öncelik seviyeleri bulunur. Ancak eşik bekleyen yüksek öncelikli bir iş parçacığı, kilidi elinde tutan diğer iş parçacığı serbest kalana kadar işlemci kuyruğuna giremez.
Bir geliştirici test sırasında tam kapasiteye ulaştırdığı 24 işlemci çekirdeğine sahip bir bilgisayarda Görev Yöneticisi’nin neredeyse kullanılamaz hale geldiğini ve öncelik artırmanın çok az yardımcı olduğunu paylaştı. Kaynağa erişen iş parçacığı ağ üzerinden dosya okuma gibi yavaş bir işlemle meşgul olduğunda, yüksek öncelik veya AutoBoost (Windows’un yüksek öncelikli iş parçacığının beklediği kaynağı elinde tutan düşük öncelikli iş parçacığının önceliğini artırarak kilitlenmeleri önlemeye çalışan özelliği) gibi mekanizmalar tek başına yeterli çözümü sunamaz.
Öncelik Ters Çevrilmesi ve Arayüz Rekabeti
Yüksek öncelikli bir iş parçacığının düşük öncelikli bir iş parçacığının elindeki kaynağı beklemek zorunda kalması durumu olan öncelik ters çevrilmesi, sistem kilitlenmelerinin arkasındaki ana mekanizmalardan biridir. Microsoft belgeleri, AutoBoost özelliğinin kaynağı elinde tutan iş parçacığının önceliğini bekleyenin maksimum önceliğine çıkardığını aktarır. Buna rağmen arayüz kodları makinedeki diğer arayüz iş parçacıklarıyla rekabet ettiği için bu duruma karşı tamamen savunmasız kalır.
İşletim sistemi, klavye veya fare girişi alan pencerelerin iş parçacığı önceliğini artırır ve görünür uygulamalara yüksek hizmet kalitesi tanır. Microsoft öncelik artırma belgeleri, ön plandaki uygulamanın öncelik sınıfının arka plandaki herhangi bir sürecin seviyesine yükseltildiğini belirtir. Odaktaki uygulama zaten tercihsel muamele görür, ancak bu ayrıcalık düşük öncelikli iş parçacıklarının kontrol ettiği unsurlara takıldığında yetersiz kalır. Tüm çekirdekleri tam kapasiteye ulaşan bir bilgisayarda, arayüzün kendi çizim rutinleri bile işlemci döngüleri için diğer programlarla yarışmak zorunda kalır.
Donan Bir Sistemde Çıkış Yolu Bulmak
Sistem kaynaklarının tamamen tükendiği senaryolarda kilitlenen bir arayüzü kurtarmak için işletim sistemi özel bir mekanizma barındırır. Donan bir uygulamayı kapatmak için kullanılan Ctrl + Alt + Delete kısayolu, doğrudan mevcut masaüstü oturumundan bağımsız ayrı bir ekran açarak Görev Yöneticisi’nin başlatılmasını sağlar. Bu donanımsal düzeydeki kesme sinyali, normal arayüz kuyruğunu baypas ederek kullanıcının kilitlenen sisteme müdahale edebileceği son güvenli alanı oluşturur. Ancak çekirdeklerin tamamı tıkandığında bu yöntem bile uzun gecikmelere sebep olabilir.

