Örnek olarak 32 bit x86 CPU'ları örnek olarak basitleştirelim. Aşağıdakilerden bazıları kavramı sunmak amacıyla biraz yanlış.
Belleği yüklemenize ve saklamanıza izin veren talimatlar 32 bit argümanlar alır. Yani "32 bit adres" alanınız var. Bu, 4Gbayt değerinde RAM veya başka bir şey olursa, "konuşabileceğiniz" anlamına gelir.
Sanal bellek, bir adresi (mantıksal veya sanal adres) başka bir adresle (fiziksel, gerçek adres) eşlememizi sağlar. Varsayılan durum, her bir mantıksal adresin sanal adresine ayarlandığı "kimlik eşlemesi" dir. Haritalama 4KByte "sayfa" düzeyinde gerçekleşir.
2 yürütme seviyeniz var - kullanıcı modu ve çekirdek modu. Çekirdek modunun kimlik eşlemesi yapılması gerekir çünkü sistemi ve diğer işlemleri yönetir.
Kullanıcı modunda, çekirdek RAM'in 0 adresinde başladığı hafızayı eşler ve sadece kendisine tahsis edilen hafıza miktarı kadar yüksek olabilir. Çekirdek, tüm işlemlerin bellek eşlemesini kontrol eder ve hangi belleğin serbest olduğunu ve kullanımda olduğunu yönetir. Çekirdek, herhangi bir yerden ücretsiz 4K bayt sayfa seçebilir ve bunları kullanıcı modu işlemine sürekli görünecek şekilde düzenleyebilir.
Kullanıcı modu sayfası, geçersiz bir sayfaya sahip bir adrese erişirse, eşleme mekanizması bir "sayfa hatasına" neden olabilir. Kullanıcı modu uygulaması, sahip olduğundan daha fazla belleğe erişmeye çalışırsa, "kötü" sayfalara çarpar ve bir çekirdek istisnasını açar. Sonra çekirdek bir "Segmentasyon hatası" hatasıyla öldürür. Çekirdek API'leri uygulamanın daha fazla bellek istemesini sağlar - çekirdek daha sonra mümkünse biraz boş bellek eşler ve bitince serbest bırakır.
Bu nedenle, 32 bitlik bir adres alanınız varken, burada bir şey eşleştirilmediği sürece, tüm adresleri kullanıcı işleminde kullanamazsınız.
Şimdi - eğer bir işlem uykuda ise, çekirdek bu sayfalara bir süre erişilmediğini tespit ederse bazı sayfaları "kötü" olarak işaretleyebilir ve onları diske yazar. Süreç uyandığında, bu kötü sayfalara erişmeye ve bir çekirdek istisnasını tetiklemeye çalışacaktır. Çekirdek "segfaulting" yerine sayfaları diskten alır, tekrar belleğe (muhtemelen farklı bir fiziksel noktaya ancak işlemin aynı mantıksal noktasına eşlenir) geri alır ve ardından işleme devam eder. Bu, takas veya sayfa dosyasının karışıma nasıl uyduğunu gösterir.
Hem modern Windows hem de Linux çekirdekleri denilen bir olanak sağlar mmap
bu mekanizmanın bir dosyaya belleğin bir parçası gibi erişilmesine izin vermek için "bilerek" kullanıldığı yerde. Kullanıcı alanı işlemi koymak için bir adres seçebilir - ve çekirdek dosyanın doğru parçalarını anında yükleyerek veya yazarak "hatalara" cevap verir. Buna izin vermek için bu çağrı mekanizmasını kullanır. Çok geniş adres alanına sahip 64 bit sistemlerde, çok büyük dosyalara bellekteki gibi erişilebilir, bu da bazı programları basitleştirir.