7 Mart 2017 Salı

Dinamik Bellek Yönetimi

Bellek ve Adresleme

Bilgisayarın ana belleği (RAM) sıralı kaydetme gözlerinden oluşmuştur.
Her göze bir adres atanmıştır.
Bu adreslerin değerleri 0 ila belleğin sahip olduğu üst değere bağlı olarak değişebilir.
Örneğin 1GB bir bellek,
1024*1024*1024 = 1073741824 adet gözden oluşur.

Değişken türlerinin bellekte kapladığı alanlar:


Bir programlama dillinde, belli bir tipte değişken tanımlanıp ve bir değer atandığında, o değişkene dört temel özellik eşlik eder:

değişkenin adı
değişkenin tipi
değişkenin sahip olduğu değer (içerik)
değişkenin bellekteki adresi


Örnek:
    int tam = 33;

Bu değişken için, int tipinde bellekte (genellikle herbiri 1 bayt olan 4 bayt büyüklüğünde) bir hücre ayrılır ve o hücreye 33 sayısı ikilik (binary) sayı sitemindeki karşılığı olan 4 baytlık (32 bitlik) karşılığı aşağıdaki gibi yazılır.
    00000000 00000000 00000000 00100001



Örnek:
    int tam = 33;


Bellek adresleri genellikle onaltılık (hexadecimal) sayı sisteminde ifade edilir.
0x3fffd14 sayısı onluk (decimal) sayı sisteminde 67108116 sayına karşılık gelir. Bunun anlamı, tam değişkeni, program çalıştığı sürece, bellekte 67108116. - 67108120. numaralı gözler arasındaki 4 baytlık hücreyi işgal edecek olmasıdır.


tam adlı değişkenin bellekteki gerçek konumu ve ikilik düzendeki içeriği aşağıdaki gibidir:



 
 Yazılım geliştiricinin dikkat etmesi gereken en önemli noktalardan birisi ürettiği yazılımın sistemin kaynaklarını en verimli şekilde kullanması gerekliliğidir.
Nasıl sınırsız kullanıcı talebi olamazsa sınırsız sistem kaynağı da olamaz.
En önemli sistem kaynaklarından birisi de istemci / sunucu tarafında kullanılan BELLEK tir
CPU Türü ve Gücü, Disk Türü, Disk Alanı Boyutu, Toplam Sunucu Sayısı, network bandwidth vb.

Eğer yazılımcı bellek yönetimini iyi yapamıyorsa doğal olarak daha fazla belleğe ihtiyaç duyar.
Daha fazla belleğe ihtiyaç duymak belli başlı birkaç sorunu beraberinde getirir.
Fazla maliyet,
Programın yavaş çalışması
bunların en önemlileridir.