RAM Neden Gereksiz Dolar?

 Herkese merhabalar. Bu konuda uzun süre açık kalan bilgisayarlarımızda bellek miktarının neden dolduğunu ve neden yeniden başlatmanın bir çözüm olduğunu anlatacağım.

Şimdi olaya gelirsek RAM'in tam adı "Random Access Memory" dir. Neden böyle derseniz bilgisayarda biz bir program, oyun veya bellek isteyen herhangi bir işlem yaptığımızda bellekten bir yer istenir ve bu yer kesinlikle belirli değildir. İşletim sistemi arkada kendine göre bazı komplike optimizasyonlar yaparak programa istediği yeri rastgele olmak üzere verir. Sistem, programa bellekten belli bir blok alan ayırır. Her blok parçalardan oluşur ve her parçanın bir adresi vardır bu sayede bloğun ve parçanın içindeki veriye erişilebilir. Yani biz belleği Dünya, bloğu bir site, parçaları da sitenin içindeki evler olarak düşünebiliriz ki doğal olarak her evin kendine özel bir kapısı yani adresi vardır. Kısaca temel mantık bu şekilde.

69408

Program veya kullanıcı o bellek içerisindeki kayıtlı olan bir şeye erişmek istediğinde aynı kargocuların kapımıza gelip zili çaldığı gibi(RAM tarafında geldik bulamadık olayı yok :D) sistemde belleğin içindeki adresi buluyor ve içerideki bilgiye erişiyor. İşte RAM kapasitesi bu yüzden önemli. Ne kadar çok belleğiniz olursa o kadar çok alanınız olur ve aynı anda o kadar çok programa yer verebilirsiniz. MHz ve CL değerleri de bu bilgiye ulaşmadaki hızdır ama bellek DDR2 ile bile olsa gayet hızlıdır çünkü belleğin temel mantığı hıza dayalıdır zaten. Bilgisayar aleminde bir kural vardır bir yerden kazanç varsa bir yerden kayıp vardır. Belleklerde hızdan kazanç varken alandan kayıp var, mekanik disklerde alandan kazanç varken hızdan kayıp var olay bu. Her iki durumda da kazançlı olan bir donanım varsa o da çok pahalıdır alın size yine bir kayıp :)

Bilgisayarda her şey 1 ve 0 rakamlarından oluşur. Derleyiciler bizim kodlarımızı makine diline çevirir ve bu sayede bilgisayara kod anlamında istediğimizi yaptırabiliriz ama bilgisayar ne yaparsa yapsın bunları 1 ve 0 olarak yapar. Örnek olarak 1000 ikili tabanda 8 rakamına tekabül eder. Biz 8 rakamını veririz sonra bilgisayar bunu çevirir temel olarak. İşte bu çevirmeleri kolaylaştırmak için 10-11-12-14-15 sayıları sırasıyla A-B-C-D-E olarak kodlanır bilgisayar tarafında. RAM içindeki adreslere baktığımız zamanda bu tarz rakam ve sayılardan oluşan bir kod görürüz.

69409

RAM dolması ise tam bu noktada olur. Diline bağlı değişmekle beraber bir kod yazılırken ortaya bazı garbage dediğimiz çöpler ortaya çıkar. Bazı dil ve derleyeciler bu çöpleri kendi temizlerken bazıları temizleyemez. Misal C dilinde bir işlem yaparken gittiniz ve bellekten bir alan istediniz. Sonra bellekteki size verilen alanı boşaltmadan programı veya kodu kapadınız. İşte size verilen o alan çöp oldu çünkü siz o alanın adresini kaybettiniz ve oraya ulaşmanız bir daha mümkün değil. Bu yüzdende RAM boşuna dolmuş ve şişmiş oldu. Dediğim gibi bu dile ve derleyiciye göre değişiyor o yüzden her programda bu sıkıntıyı yaşamazsınız ama bilgisayar çok uzun süre açık kaldığında bellekteki şişme büyük ihtimal bundan kaynaklıdır. Hani derler ya bilgisayarı arada bir yeniden başlatın kendine gelsin diye temel mantığı buradan gelmektedir. Düzgün bir kod yazmada bu önemli bir olaydır çünkü 20-30 satırlık çok basit bir kodla bile belleğin şişip programın hata vermesini sağlamak mümkün. Temiz kod yazmak istiyorsanız bu tarz optimizasyonlara dikkat etmeniz lazım. Bilgisayar oyunlarındaki temel optimizasyon mantığı da buradan geliyor diyebiliriz. Donanımla yazılım ne kadar uyumlu çalışıyorsa o kadar stabil performans alırsınız. Tabi arada birçok karışık olayda oluyor ama anlaşılması kolay olsun diye derine inmeyeceğim. Okuduğunuz için çok teşekkür ederim. Eğer bu tarz çalışma prensibini merak ettiğiniz donanımlar varsa belirtin onları da anlatmaya çalışırım :)

Hiç yorum yok

Blogger tarafından desteklenmektedir.