Anasayfa Makale Bellek Yönetimi: Bellek Düzenleri ve Sanal Bellek

Bellek Yönetimi: Bellek Düzenleri ve Sanal Bellek

Bellek yönetimi: Bellek düzenleri ve sanal bellek
Random Access Memory (RAM)

Bu yazımızda bellek düzenleri ve sanal bellekten bahsedeceğiz.

Bilgisayarımızda bellek, en önemli parçalardan birisidir. Bu önemli parçanın da işletim sistemi tarafından yönetilebilmesi için, işletim sistemi tarafından bazı bellek düzenlerine tabii tutulması gerekmektedir. Bu yazımızda, bahsi geçen bellek düzenlerine ve bellek dolduğunda bilgisayarımızın ne yaptığına yakından bakacağız.

Bellek yönetimi: Bellek düzenleri ve sanal bellek
Random Access Memory (RAM)

Sanal bellek nedir?

Düzenlere geçmeden önce, sanal belleğin ne olduğunu öğrenirsek daha faydalı olacaktır. Sanal bellek; bilgisayarımızda bellek dolduğu zaman, boşta olan işlemlerin kullanmadığı bellek kısmının transfer edildiği yerdir. Sanal bellek, dahili depolama biriminizde bulunan bir dosya veya bölümdür. Eğer manuel olarak bir ayar yapmazsanız, işletim sistemi, sanal bellek boyutunu otomatik olarak ayarlayacaktır. Özellikle eski bir bilgisayarınız varsa, sanal belleği atlamamanızı tavsiye ederiz.

Bellek yönetimi: Bellek düzenleri ve sanal bellek
Random Access Memory (RAM)

Segmented (parçalı) bellek modeli

Sanal belleğin ne olduğunu öğrendiğimize göre, parçalı bellek modeli ile başlayabiliriz. Parçalı bellek modelinde, farklı işlemler, farklı boyutta bellek alanı kaplayacaktır. Bu bahsettiğimiz parçalar segment olarak bilinmektedir. Bu parçalar, program boyutu kadar yer kaplar. İşletim sistemi, her işlemin parçasının başlangıç noktasını ve ne kadar büyük olduğunu bilir.

Bellek yönetimi: Bellek düzenleri ve sanal bellek
Segmented (parçalı) bellek modelini açıklayan bir görsel.

Bir süre sonra belleğin dolduğunu varsayalım.

Bellek yönetimi: Bellek düzenleri ve sanal bellek
Belleğimiz doldu.

Kullanıcı, eğer daha fazla uygulama açmaya çalışırsa, bazı uygulamaların bellekten çıkarılıp yer açılması gerekli. Bu durumda işletim sistemi, boşta olan işlemleri sanal belleğe geçirerek o işlemleri arka planda çalıştırmayı sürdürür.

Bellek yönetimi: Bellek düzenleri ve sanal bellek
Diğer uygulamaların bir kısmı, eğer boştaysa sanal belleğe geçirilir.

Daha sonra ise, boşta olan yere, eğer sığıyorsa, açılmaya çalışılan uygulama geçer.

Bellek yönetimi: Bellek düzenleri ve sanal bellek
Başka uygulama açılıyor, ve boş olan yerden kendi kaplayacağı kadarını kaplıyor.

Segmented (parçalı) bellek modelinde, uygulamaların da değişik parçaları bulunmaktadır. Bunlar;

  • Program parçaları, uygulama kodunun bulunduğu parçadır. İçerisinde programın fonksiyonlarını ve sınıflarını bulundurur.
  • Veri parçaları, uygulama verilerinin tutulduğu yerdir. İçerisinde değişkenleri ve veri yapılarını bulundurmaktadır.

Segmented (parçalı) bellek modelinin dezavantajları

  • Segmented (parçalı) bellek modelinde, parçalar arasında boşluk çok fazla olur. Buna memory fragmentation (bellek parçalanması) denmektedir. Bu yüzden de bellek, çok verimli kullanılamaz.
  • Büyük parçalar, genellikle belleğe kabul edilmez.

Bu iki problem de bellekte halihazırda bulunan parçaları sıkıştırınca bir nebze de olsa aşılabilir.

Paged (sayfalanmış) bellek modeli

Segmented (parçalı) bellek modelini gördüğümüze göre, paged (sayfalanmış) bellek modeline bakabiliriz. Parçalı bellek modelinden bildiğimiz üzere; uygulama, tüm belleğin kendisine ait olduğunu düşünür. İşletim sistemi de buna izin verirmiş gibi davranır. Uygulamanın belleğe bakış açısına mantıksal bellek denir.

Ana belleğimizde ise işler öyle değildir. Her işlemin kapladığı bellek alanı, işlemci mimarisine göre değişmek şartıyla sayfalara bölünmüştür. Bu alan, x86 mimarisinde 4 KB boyuta tekabül etmektedir. Bir sayfa, içerisinde bir programı barındırabilir, eğer sığıyorsa birden fazla programı barındırabilir veya sadece bir programa ait olan veriyi barındırabilir. Bu sayfalar, işletim sisteminin karar verdiği şekilde, belleğin herhangi bir yerinde olabilir. Ayrıca bazı sayfalar sanal bellekte de olabilir.

Bellek Yönetimi: Bellek Düzenleri ve Sanal Bellek
Sayfalı düzende bellek yönetimi.

Modelde uygulamanın belleği nasıl gördüğünü (sol dikdörtgen) ve işletim sisteminin page table (ortadaki küçük dikdörtgen) kullanarak sayfa sayfa nasıl uygulamayı ayırdığını görmekteyiz. Sağdaki dikdörtgende ise fiziki bellekte nasıl adreslendiğini görmekteyiz.

Hangi bellek yönetim stili daha iyi?

İki düzenin de kendine ait artı ve eksileri bulunmakta.

  • Segmented (parçalı) düzen, programın tüm kodunu işlemciye uygun bir şekilde belleğe koyar, bu da programa hızlı erişim sağlar. Fakat aynı zamanda memory fragmentation’a neden olur ve bu da boş alanın daha verimsiz kullanılması demektir. Ayrıca parçalı düzende, büyük işlemler, çoğunlukla belleğe giremez.
  •  Sayfalı düzende ise, program kodu parçalanarak belleğe konulur, bu da parçalı düzene göre daha yavaş bir erişim sağlar. Fakat, boş alanı kullanmada gayet yeteneklidir ve memory fragmentation ihtimalini ortadan kaldırır. Windows’ta sayfalı bellek düzeni kullanılır.
  • Bazı işlemciler, iki düzeni de desteklemektedir. Parçalar, birkaç adet boyutu belirli bloktan oluşmaktadır.

Kafanızda soru işareti kaldıysa, Technopat Sosyal‘e konu açabilirsiniz.