04 – RAM ve Stack

Bu yazımızda RAM ve onun içerisinde bulunan özel bir alan olan Stack’i inceleyeceğiz. Stack kelimesinin Türkçe karşılığı “yığın”dır. Bu ifadenin kullanılmasının amacı RAM’in bu bölümüne yaşam ömrü kısa olan verilerin atılması sonucu bir veri yığını oluşmasıdır.

RAM

RAM yani “Random Access Memory”. Türkçesi “Rastgele Erişim Hafızası”. Bir önceki yazımızda veriyi tanımlamıştık. Çalışan bir programda kullanılan tüm veriler RAM üzerine yazılır ve buradan okunur. Program çalışma zamanında primitive veri türlerine ihtiyaç duyabilir. Örneğin; bir web sayfasına üyelik kayıt işlemi yaptığınızda genellikle adınız, email adresiniz, yaşınız vs gibi bilgiler istenir. Ya da bir e-ticaret web sayfasında ürünü sepete eklerken ürün kodu ve adedi gibi bilgiler kaydedilir. İşte bu işlemler sırasında primitive veri tipleri kullanılır ve kod parçacığı çalışırken bu veriler RAM üzerindeki Stack ismi verilen alana yazılır. Tekrar tekrar kullanılabilirler, değerleri değiştirilebilir. Artık kullanılmayacakları belirlendiğinde de RAM’den silinirler.

Yukarıda bahsettiğimiz RAM üzerindeki veriler aslında CPU (yani İşlemci) tarafından kullanılırlar. Şimdi küçük bir örnek verelim:

int a = 5;
int b = 8;

int toplam = a + b;

Yukarıda basit bir toplama işlemi yapılmıştır. Yani a ile b toplanıp “toplam” isimli yeni bir veri elde edilmiştir. Bu kod parçacığı çalışırken CPU önce a isimli veriyi RAM’e yazar ve değeri 5’tir. Daha sonra b isimli bir veri yazar ve değeri 8’dir. Son olarak toplam isimli veriyi yazmak için önce a isimli veriyi RAM’den okur, sonra da b isimli veriyi okur. İki değer de RAM’de binary olarak tutulmaktadır. Bu değerleri binary olarak toplar ve toplam isimli verinin içerisine yazar.

CPU ve RAM etkileşimi

Stack ismi verilen şey RAM üzerindeki özel bir alandır. Primitive veri tiplerinin yazıldığı alana Stack denir. Stack üzerinde sadece Value Type’lar tutulur.