Bellek yönetimi, işletim sisteminin temel işlevlerinden biridir. Modern işletim sistemleri, her bir işlemin belirli bir bilgisayar sistemindeki gerçek (fiziksel) belleğin toplam boyutundan daha fazla sanal bellek elde etmesine izin verir. Bellek yönetiminin temel amacı, daha büyük yüksek hızlı belleğin etkisini elde etmek için büyük ama yavaş belleği küçük ama yüksek hızlı bellekle birleştirmektir..
Sabit ve değişken bölümleme arasında ayırma, bellek kullanımı açısından etkisizdir, çünkü sabit bölümleme dahili, harici parçalanmada dinamik sonuç verir. Parçalanma sorununa olası bir çözüm, işlemin sürekli bir bellek bloğuna yazılmamasına izin vermektir. Program keyfi olarak hafızaya dağıtılabilir. Bu durumda, çalışma belleği, kare adı verilen sabit boyutlu daha küçük bloklara bölünür. Programın mantıksal adres alanı, aynı boyutta, sayfa adı verilen bloklara ayrılmıştır. Bir program belleğe girildiğinde, sayfalar boş bellek çerçevelerine yazılır. Programları bir diskten çalışan bir belleğe aktarma kolaylığı için, disk ayrıca bellek çerçeveleriyle aynı boyuttaki çerçevelere bölünür. Böylece, diskten bir kare çalışma belleğinin bir karesine yazılır. Çağrı sistemi aşağıdaki şekilde çalışır: program yürütme için kabul edildiğinde, boyutu gerekli sayıda sayfa ile ifade edilen hesaplanır. Yeterli sayıda kare boşsa, işlem sayfa başına bellek sayfasına kaydedilir. Aynı zamanda, her sayfanın yazıldığı kare sayısı çerçeve tablosuna girilir.
Kullanıcı programı ve ilişkili veriler birkaç bölüme ayrılabilir. Maksimum segment uzunluğu olmasına rağmen, tüm programların bölümlerinin aynı boyutta olması gerekmez. Sayfalamada olduğu gibi, segmentasyonu kullanan mantıksal adres iki kısımdan oluşur, bu durumda o segment içindeki segment ve yer değiştirme sayısı. Farklı boyutlardaki segmentlerin kullanımı nedeniyle, segmentasyon dinamik bölümlemeye benzer. Bir bindirme şemasının veya sanal belleğin kullanılmaması durumunda, tüm program bölümlerinin yürütmek için belleğe yüklenmesi gerekir. Dinamik bölümlemeye kıyasla fark, segmentasyonun birden fazla bölüm alabilmesidir ve bu bölümün bitişik olması gerekmez. Segmentasyon, iç parçalanma problemini çözer, ancak dinamik bölümleme yanı sıra, dış parçalanma sorunu devam eder. Bununla birlikte, işlem birkaç küçük parçaya bölündüğü için, dış parçalanma tipik olarak daha küçüktür. Programcı tarafından görülmeyen sayfalamadan farklı olarak, bölümleme genellikle program ve verileri düzenlemek için görünür ve uygundur. Modüler programlama amacıyla, program veya veriler ayrıca birkaç küçük parçaya ayrılabilir. Bu tekniğin dezavantajı, programlayıcının maksimum segment boyutunun sınırlamalarını bilmesi gerektiğidir. Farklı boyutlardaki segmentleri kullanmanın bir sonraki kolaylığı, mantıksal ve fiziksel adresler arasında olası bir bağlantı olmamasıdır. Sayfalamaya benzer şekilde, basit bölümleme tekniği her işlem için bölümler tablosu ve ana bellekteki kullanılabilir blokların bir listesini kullanır.
Sayfalama, eşit uzunlukta bloklar (sayfalar) üzerinde sanal ve fiziksel adres alanı ve ikincil bellek alanı sunar. Bu, sürekli sanal adres alanının gerçek adres alanında ve ikincil bellekte dağılım sürecine (mutlaka sürekli dağıtılmasına gerek yoktur) tahsis edilmesini sağlar. Sayfa bile bir terim olarak, program düzeyinde görünen mantıksal nesneler yerine belleğe başvurur. Bölümleme, doğrudan program düzeyindeki nesnelere karşılık gelen bloklar (segmentler) üzerinde sanal bir adres alanı sağlar. Bu nedenle, segmentin sabit uzunluğu yoktur, bu nedenle program yürütülürken segment boyutu bile değiştirilebilir. Bu nedenle koruma ve bölme nesne düzeyinde mümkündür ve segmentasyonun gerçekleştirildiği görünür süreçler vardır.
Uygulama geliştiricisi disk belleği bilgisinin farkında değil. Programları bellek lineermiş gibi yazıyor ve işletim sistemi ve işlemci, bölünmesi ve sanal adreslere dönüştürülmesi konusunda endişeli. Bununla birlikte, segmentasyon sistemlerindeki programcı, programlarında adresin, segmentin ve sayfanın iki bölümünü listeler. Segmentler farklıyken tüm sayfalar aynı boyuttadır. Segmentasyonda birden fazla doğrusal adres alanı ve yalnızca bir sayfalama bulunur. Segmentler, uygulama bileşenlerinin mantıksal bölümlenmesine ve korunmasına izin verir ve sayfalar.
Programcıya saydam olan disk belleği, harici parçalanmayı ortadan kaldırır ve böylece ana belleğin verimli kullanılmasını sağlar. Ana belleğe giren ve çıkan parçalar sabit ve aynı boyuttadır, bu nedenle programın davranışını kullanan karmaşık bellek yönetimi algoritmaları geliştirmek mümkündür. Segmentasyon geliştirici tarafından görülebilir ve veri yapısı, modülerlik ve değişim ve koruma desteğinin büyümesini yönetme yeteneğine sahiptir..
Çağrı | segmantasyon |
sabit sayfa boyutu | segmentlerin boyutu sabit değil |
programcı için görünmez | programcı için görünür |
bir doğrusal adres alanı | çoklu doğrusal adres alanları |
uygulama bileşenlerinin mantıksal bölümlenmesine ve korunmasına izin vermez | verir |