Aracılığıyla paylaş


Çalışma Kümesi

Bir işlemin çalışma kümesi, şu anda fiziksel bellekte yerleşik olarak bulunan işlemin sanal adres alanında bulunan sayfa kümesidir. Çalışma kümesi yalnızca sayfalama yapılabilir bellek ayırmaları içerir; Adres Pencereleme Uzantıları (AWE) veya büyük sayfa ayırmaları gibi sayfalanamayan bellek ayırmaları çalışma kümesine dahil edilmez.

Bir işlem şu anda çalışma kümesinde olmayan sayfalanabilir belleğe başvurduğunda, sayfa hatası oluşur. Sistem sayfası hata işleyicisi sayfa hatasını çözümlemeye çalışır ve başarılı olursa sayfa çalışma kümesine eklenir. (Bu ayırmalar sayfalanabilir olmadığından, AWE'ye veya büyük sayfa ayırmalarına erişmek hiçbir zaman sayfa hatasına neden olmaz.)

sabit sayfa hata, sistemin disk belleği dosyası veya işlem tarafından oluşturulan bellek eşlemeli bir dosya olan sayfanınyedekleme deposundaki sayfa içeriğini okuyarak çözülmelidir. yumuşak sayfa hatası, yedekleme deposuna erişmeden çözülebilir. Geçici sayfa hatası şu durumlarda oluşur:

  • Sayfa başka bir işlemin çalışma kümesinde olduğundan, zaten bellekte yerleşiktir.
  • Sayfa, sayfayı kullanan tüm işlemlerin çalışma kümelerinden kaldırıldığı ve henüz yeniden kullanıma sunulmadığı veya bir bellek yöneticisi önyükleme işleminin sonucu olarak zaten yerleşik olduğu için geçiştedir.
  • İşlem, ayrılmış bir sanal sayfaya ilk kez başvurur (bazen talep sıfır hataolarak adlandırılır).

Sayfalar, aşağıdaki eylemler sonucunda bir işlem çalışma kümesinden kaldırılabilir:

  • bu işlem, SetProcessWorkingSetSizeSetProcessWorkingSetSizeEx veya EmptyWorkingSet işlevini çağırarak çalışma kümesini azaltır veya boşaltılır.
  • İşlem, kilitli olmayan bir bellek aralığında VirtualUnlock işlevini çağırır.
  • İşlem, UnmapViewOfFile işlevini kullanarak bir dosyanın eşlenmiş görünümünün eşlemesini kaldırır.
  • Bellek yöneticisi, daha fazla kullanılabilir bellek oluşturmak için çalışma kümesindeki sayfaları kırpıyor.
  • Bellek yöneticisinin yeni bir sayfaya yer açmak için çalışma kümesinden bir sayfayı kaldırması gerekir (örneğin, çalışma kümesi en büyük boyutta olduğundan).

Birkaç işlem bir sayfayı paylaşıyorsa, sayfayı bir işlemin çalışma kümesinden kaldırmak diğer işlemleri etkilemez. Bir sayfa, onu kullanan tüm işlemlerin çalışma kümelerinden kaldırıldıktan sonra, sayfa bir geçiş sayfası haline gelir. Geçiş sayfaları, bir işlem tarafından tekrar başvuruluncaya veya sıfırlarla doldurulup başka bir işleme verilerek yeniden kullanılıncaya kadar RAM'de önbelleğe alınmış olarak kalır. Bir geçiş sayfası diske son yazıldığından bu yana değiştirilmişse (yani sayfa "kirliyse"), geri alınabilmesi için önce sayfanın destek deposuna yazılması gerekir. Sistem, bu sayfalar kullanılabilir duruma gelir gelmez yedek depolama alanına kirli geçici sayfaları yazmaya başlayabilir.

Her işlemin, işlemin sanal bellek sayfalama davranışını etkileyen en düşük ve en yüksek çalışma kümesi boyutu vardır. Belirtilen işlemin çalışma kümesinin geçerli boyutunu almak için getProcessMemoryInfoişlevinikullanın. En düşük ve en yüksek çalışma kümesi boyutlarını almak veya değiştirmek için GetProcessWorkingSetSizeExkullanın ve SetProcessWorkingSetSizeExişlevlerini.

İşlem durumu uygulama programlama arabirimi (PSAPI), bir işlemin çalışma kümesi hakkında ayrıntılı bilgi döndüren bir dizi işlev sağlar. Ayrıntılar için bkz. çalışma kümesi bilgileri .