Windows Mobile 64 MB bellek neden 50 MB görünüyor?

____________________________________________________________________

Windows Mobile cep telefonlarında çeştili görev yöneticisi programlarıyla ölçülen bellek miktarı genellikle donanımsal belleğin altındadır. Mesela cihazın teknik bilgilerinde 64 MB RAM olarak yazar ama cihazda kullandığınız programlar bunu 50 MB civarı olarak görür. Ben de mesela ilk QTEK 8500 almayı düşündüğümde teknik özelliklerini incelerken cihazdaki 64 MB belleğin 30 MB kadarını işletim sistemi kullanıyor ve geriye de 18 MB kadar kullanıcı belleği kalıyor bilgisi tuhafıma gitmişti. Sonra Toshiba Portégé G500 aldım ve onda da öyleydi, yaklaşık 20 MB kullanabileceğim bellek vardı ve de 14 MB belleğim de kayıptı. Bu ilk başlarda üreticilerin yalanı gibi düşünülebilir ama araştırdım ettim, öyle değilmiş, o 14 MB kadar kullanamadığınız bellek de kullanılıyor aslında. 🙂

64 MB belleğin sadece 51.13 MB kadarı bana ait. :)

64 MB belleğin sadece 51.13 MB kadarı bana ait. 🙂

Aslında bu göremediğiniz bellek alanı cihaz ilk açılışta daha kullanılmaya başlıyor, sizin işletim sisteminiz daha yüklemesi bitmeden orası devreye girmiş oluyor.

Peki neden bu alanı göremiyoruz. Bu tamamen bellek gösteren programların sadece bizim üzerinde kontrol sahibi olduğumuz belleği göstermesinden kaynaklanıyor. Gösterilmeyen bellek bizim bir işimiza yaramayan yani bizim oralarda fazla dolaşmamız istenmeyen, yani kurcalamanın bize bir faydası olmayan bir bellek alanı. Bu sebeple işte göremiyoruz. Bu ne kadar doğru bilmem ama bu zamana kadar böyle gelmiş, böyle de gider sanırım. Kişisel olarak ben bu belleğin de ne için kullanıldığının gösterilmesi taraftarıyım, sadece kişisel merak olarak olsa bile, yani hiç değiştiremeyecek olsam bile. Ama işte göstermiyorlar. Aslında masaüstü bilgisayarımızda da benzer bir durum var. 🙂 Gröev Yöneticisi’ndeki uygulamaların bellek miktarları ile toplam kullanılan bellek miktarları farklı görünüyor.

Peki bu göremediğimiz alanda neler var kısaca bir onlara da bakalım?

Sayfa Havuzu (Page Pool)

Sayfa Havuzu bildiğim kadarıyla ROM’daki dosyaların önceden yüklenerek önbellek olarak kullanıldığı bir alan. NOR tipi belleklerde okuma hızı yüksek olduğundan bir uygulama doğrudan NOR bellek üzerinden erişilerek çalıştırılabilir (XIP – eXecute In Place yöntemi). Ancak WM sistemli cihazlarda çoğunlukla kullanılan bellek türü NAND ve bunun da okuma hızı düşük, Page Pool da önceden verileri ROM üzerinden alıp daha sonra hızlı erişim için kullanmaya yarayan bir havuz. Page Pool büyüdükçe kullanıcının görebildiği bellek miktarı azalır, ancak performans artar. Tabi yetersiz bellek durumunda da bu performans neye yarar bilinmez. Normalde 64 MB bellekli WM bir cihazda bu 4.5 MB boyuttadır ancak cihazın üreticisinin ayarına göre artabilir ve azalabilir.
Not: NOR bellek: Hızlı okuma, yavaş yazma. NAND: Yavaş okuma, hızlı yazma.

Radyo işlevleri

Baz istasyonları ile iletişimde olan cihazlarda bu işlevler değişik kodlarla yapılır ve bunlar için ayrılmış bir bellek bulunur. Bazı cihazlarda radyo devresi kendi belleği ile ayrı bir ünite olarak da bulunabilir. Radyo işlevleri için de 4.5 MB kadar bellek kullanılır.

DMA tamponları

DMA yani Direct Memory Access, bazı donanımların veriyi işlemci üzerinden geçirmeden doğrudan belleğe aktarabilmesini sağlar. Bu durumda da işlemci gereksiz veri aktarımı ile meşgul olmadığından performans olarak geri döner. Masaüstü bilgisayarlarda da bu sistem kullanılmakta. DMA tamponları da bu veri aktarımı için kullanılan bir alan. Sistem açılışında DMA için ayrılan bu tampon alan ihtiyaç duyulduğunda buraya veri yazılmasını sağlamak amaçlı, eğer bu bellek alanı olmasa buraya yazmak isteyen uygulama bellek yetersizliği durumunda amacını gerçekleştiremeyecek ve bu da çeşitli hatalara sebep olacaktır. Bu sebeple bu alan önemlidir ve cihaz üreticileri tarafından cihazda öncelik verilen amaca göre ayarlanır. Mesela video kaydederken fotoğraf çekme esnasında olandan daha fazla DMA tamponuna ihtiyaç vardır ki, bu amacı öncelikli olan cihazda DMA tamponu da daha fazla olacaktır. Cihazlarda bu bellek 300 KB ile 6 MB arasında değişip video için 4 MB uygunmuş.

XIPKernel – XIP çekirdeği

İşletim sisteminin bazı kısımlarının XIP üzerinden çalıştırılması gerekir. NOR sistemlerde bu tamamdır ama NAND sistemlerde bu kısım RAM belleğe alınarak orada çalıştırılır ve bu bellek de anladığım kadarıyla bu işlem için kullanılan belleği ifade ediyor. Miktarı da yaklaşık 1.5 – 2 MB

Frame Buffer (Çerçeve ara belleği)

Frame Buffer ekranda gösterilen herşeyin tutulduğu bellek. Bir nevi bilgisayarınızın ekran kartı belleği gibi birşey. Ekran görüntüsü Frame Buffer üzerine yazılır ve LCD kontrolörü de bu bellekte ne varsa onu ekranda gösterir. Bellekte ekranda gösterilen her piksel için iki bayt veri tutulur ki bu da 320 x 240 ekran çözünürlüğüne sahip bir cihazda 150 KB civarı bir veri tutulması demek, bir de arka ara bellek (back buffer) iki çerçeve ara belleği olması durumunda da bu ikiye katlanır tabii ki. 🙂

Bu yukarıdaki özelliklere ayrılan bellek nedeniyle işte bir miktar belleğimiz görünmez oluyor. Aslında bu miktarlar da gösterilse merakımızı giderme açısından iyi olurdu. Ancak gösterilmiyor işte. Bir de bu miktar cihazın belleğine göre de değişebiliyor, ben 64 MB bellekli cihaza göre yazdım yukarıdakileri ama daha yüksek bellekli bir cihazda daha fazla bellek yukarıdaki işlemlere ayrılabilir.

Ha bu arada yazıdaki Türkçeleştirmelerim falan nasıl oldu bilmem. 😀