Bilgisayarın bellek sistemini yönetmekten sorumlu olan bilgisayar donanımına bellek yönetimi birimi (MMU) denir. Bu bileşen CPU ve sistem belleği arasında bir tampon görevi görür. Bellek yönetimi birimi tarafından gerçekleştirilen işlevler tipik olarak üç alana ayrılabilir: donanım belleği yönetimi, işletim sistemi belleği yönetimi ve uygulama belleği yönetimi. Bellek yönetim birimi ayrı bir yonga bileşeni olsa da, genellikle merkezi işlem ünitesine (CPU) entegre edilir.
Genel olarak, bellek yönetimi ile ilgili donanım rasgele erişim belleği (RAM) ve bellek önbelleklerini içerir. RAM, sabit diskte bulunan fiziksel saklama bölmesidir. Verilerin okunduğu ve yazıldığı bilgisayarın ana depolama alanıdır. Hafıza önbellekleri, belli verilerin kopyalarını ana hafızadan tutmak için kullanılır. CPU, bellek önbelleğinde tutulan bu bilgilere erişerek işlem süresini hızlandırır.
Fiziksel bellek veya RAM'de bellek yetersiz kaldığında, istenen programı çalıştırmak için bilgisayar otomatik olarak sabit diskteki sanal belleği kullanır. Bellek yönetim birimi, işletim sisteminden belleği çeşitli uygulamalara tahsis eder. Merkezi işlem ünitesinde bulunan sanal adres alanı, sayfalara bölünmüş adreslerden oluşur. Sayfalar, eşit büyüklükte ikincil saklama bloklarıdır. Otomatik sayfalama işlemi, işletim sisteminin sabit diske dağılmış depolama alanını kullanmasını sağlar.
Kullanıcının yeterli hafızanın olmadığı bir hata mesajı almak yerine, MMU otomatik olarak sisteme uygulamayı yürütecek kadar sanal hafıza oluşturması talimatını verir. Bitişik sanal bellek alanı, uygulamayı çalıştırmak için eşit boyutlu sanal bellek bloklarından oluşan bir havuzdan oluşturulur. Bu özellik, sistemin program gereksinimlerini karşılamak için bir sanal bellek parçası oluşturması gerekmediğinden, bu işlemin etkin ve verimli çalışmasını sağlamak için çok önemli bir anahtardır. Farklı boyuttaki programlara uyum sağlamak için çeşitli boyutlarda hafıza alanı oluşturmak, parçalanma olarak bilinen bir soruna neden olur. Bu, mevcut toplam alan gerçekten yeterli olduğunda daha büyük programlar için yeterli boş alana sahip olma olasılığına yol açabilir.
Uygulama belleği yönetimi, bir programı çalıştırmak için gereken hafızayı mevcut hafıza kaynaklarından tahsis etme işlemini gerektirir. Daha büyük işletim sistemlerinde, aynı uygulamanın birçok kopyası çalışabilir. Hafıza yönetim birimi genellikle bir uygulamaya, ihtiyacına en uygun hafıza adresini tayin eder. Bu programları aynı adrese atamak daha kolaydır. Ayrıca, bellek yönetim birimi, bellek kaynaklarını programlara gerektiği gibi dağıtabilir. İşlem tamamlandığında, hafıza başka bir yerde kullanılmak üzere geri dönüştürülür.
Bellek yönetimi biriminin temel zorluklarından biri, verinin artık gerekli olmadığı ve atılabileceği zamanları algılamaktır. Bu, diğer işlemlerde kullanım için belleği boşaltır. Otomatik ve manuel hafıza yönetimi bu sebepten dolayı ayrı bir çalışma alanı haline geldi. Verimsiz bellek yönetimi, bilgisayar sistemlerinin optimum performansı söz konusu olduğunda önemli bir sorun sunar.


