WM cep telefonlarında bellek ve işlemci yönetimi

____________________________________________________________________

Kullandığım Toshiba G500 Portege akıllı telefonda Windows Mobile 6.1 Standart işletim sistemi var. Aygıtın kağıtta 64 MB kendinde 50 mb belleği var. Ve de aptal bir bellek ve işlemci yönetim sistemi var.

Telefon normal çalışması esnasında arka planda hiçbir fazladan program çalışmadan yaklaşık 32 MB bellek kullanıyor, bu da bana 18 MB bellek kalıyor demek. Bunu bellek iyileştirme programları ile 20 veya taş çatlasa 21 MB yapmak mümkün. Tabi o da çok bir fark yaratmıyor.

Windows Mobile 6 işletim sisteminde bütün Windows CE programları öyle bir şekilde yapılmış ki, programı açıyorsun ama programın kendi menüsünden kapatamıyorsun. Programı kapatmak için CeleTask gibi bir görev yöneticisi programı ile programı kapatmak gerekli. Tabi bu da biraz uğraştırıyor. Ancak işletim sisteminin temel program kapatma yöntemi bu değil. Yani bunu yapmana pek gerek yok (gibi görünüyor). Çünkü, Windows Mobile ekranda bir program çalışıyorken arka planda çalışan veya artık kullanılmayan programları cihazın bellek durumuna göre kendi kapatıyor. Bu sayede de yeni bir program çalıştırmak istediğinizde bellek sıkıntısı çekmiyorsunuz.

WM 6.1 CeleTask

Bu başlangıçta oldukça iyi birşeymiş gibi görünüyor. Windows bu sayede kullanılan programları bellekte hazır tutarak Linux benzeri bir davranış sergiliyor ve performanstan iyi kazandırıyor. Örneğin; mesaj uygulamasının açılması bu şekilde hiç yoktan başlatılmasına göre çok daha hızlı. Linux işletim sisteminde de bellek olabildiğince gerekli olabilecek verilerle doldurularan hızdan kazanç elde edilmek istenir.

Bu bellek yönetim sisteminin kötü tarafı ise hangi programı kapatacağına karar verememesi. Karar vermesine veriyor ama önceliği daha yüksek olması gereken programlar önce kapatılabiliyor. Mesela telefonda XnView uygulaması ile resimlerinize bakıp TCPMP ile de müzik dinlemek isteyebilirsiniz. TCPMP doğal olarak arka planda çalacak ve 2 – 4 – 6 MB gibi sınırlarda bellek kullanacaktır. XnView uygulamasının şu anki sürümü resimlerin gösteriminde yaklaştırma vs. seçenekleri kolaylaştırmak için resim dosyasını tamamen belleğe yüklüyor. Bu haliyle de Windows’un kendi resim görüntüleme uygulamasından daha fazla bellek kullanıyor. Bu ikisinden başka da arka planda çalışan programlar olabilir. Durumumuz bu, bakalım şimdi ne olacak.

Aniden biraz yüksek çözünürlüklü veya depolama boyutlu bir fotoğraf görüntülemek istediniz, işletim sistemi boş ana belleğin yetersiz olduğunu fark etti ve arka planda çalışan programlardan birini kapatmaya karar verdi. Baktı TCPMP diğerlerine göre daha fazla bellek kullanıyor, bunu kapatırsa bellekten kârı daha fazla olacak. Sizin duygularınıza acımadan Windows TCPMP programını kapatıyor ve aniden arka planda çalan hoş müziğiniz kesiliyor.

Telefonum ile ilgili en büyük şikayetim bu durum. Bazen yeterli bellek olsa bile yine sırf arka planda çalıştığı için Windows TCPMP uygulamasını kapatıp beni sinir ediyor. Resim görüntülerken müzik dinlemek bu kadar gelişmemiş olan çoğu telefonla bile yapılabilecek birşey. Eski Sony Ericsson telefonlarımda bile bu çok başarılı idi.

Windows Mobile bu şekilde bellek yetmemesi durumunda arka plandaki uygulamaları kapatarak bellek kazanmaya çalışıyor. Peki Google’ın ünlü cep telefonu işletim sistemi Android bunu nasıl yapıyor.

Android öncelikle bellek ihtiyacının olduğunu ve yetersiz belleğin olmadığını fark ediyor. Bundan sonra bellekte çalışan programlara bakıyor ve o anda aktif olmayan programları depolama belleğine kopyalıyor ve ana bellekten siliyor. Bu şekilde ana bellek boşalmış oluyor. Burada gerekli uygulamaları çalıştırıyor ve uygulama kapatıldığında veya tekrar eski uygulama istendiğinde bunu depolama belleğinden alıp ana belleğe yüklüyor ve çalıştırıyor. Yani teoride Android çok başarılı bir bellek yönetim sistemine sahip oluyor. Çünkü bellek yetersizliği durumunda programlar kapatılmıyor. Neredeyse masaüstü bilgisayarlardaki tüm işletim sistemlerinde olan takas belleği (swap) özelliği ile diskte bir disk belleği dosyası tutarak burasını bellek olarak kullanıyor.

Bunu ilk Android tanıtımlarında görünce ne gerek var deyip ilgilenmemiştim ama bir süre Windows Mobile ile uğraşınca şimdi daha iyi anlıyorum.

Belki arkaplanda çalan müziğin kesilmesini bu da engellemeyecek ama WM işletim sistemine göre çok daha az olacaktır. Hatta programın kullanılmayan kısımlarının da diğer programdan ayrı olarak takas alanına atılması mümkün ise bu kesintilerin olmayacağı kesindir.

Standart işletim sistemlerine sahip Nokia, Samsung ve Sony Ericsson gibi çoğu telefonda bellek yönetimi ayarları tüm yazılımlar hesaba katılarak yapılmıştır. Yani müzik çalar şu kadar bellek kullanacak, resim görüntüleyici şu kadar kullanacak ve Java sanal makinesi bu kadar bellek kullanacak diye fabrika çıkışı ayarlanmıştır. Bu sebeple de bu tür cihazlarda bahsettiğim türden bir bellek problemi oluşmaz. Oluşacak olsa bile görüntülenmek istenen resim bellek yetmezliği uyarısı ile gösterilemez. Halbuki WM işletim sisteminde bellek yönetimi üçüncü parti programlardan etkilendiği için durum bu kadar basit değildir. Her programın sınırsız bellek kullanma hakkı vardır ve bu da problemlere yol açmaktadır.

Windows Mobile gibi işletim sistemli telefonlarda bir diğer sorunda işlemci kullanımının da programların insiyatifine kalmış olması. Mesela Jbenchmark Java performans testi uygulamalarını Sony Ericsson cep telefonlarında arka planda müzik ile çalıştırabilirsiniz. Performans zayıf görünecektir ama sonuçta her iki işlem de aynı anda olacaktır. WM işletim sistemli bir cihazda ise kullanılan Java sanal makinesi yazılımı (Örneğin; Esmertec Jbed) işlemciye olabildiğince yüklenince arka plandaki müzik çalar uygulaması için yeterli işlemci zamanı olmadığından müzik çalar uygulaması performans testi bitene kadar çalışmayacaktır. Bu WM işletim sistemli telefonlar için önemli bir sorundur. Bir işlem diğer işlemlere göre daha fazla işlemci kullanarak onların işleyişini bozmaktadır.

Bu iki problem Windows Mobile işletim sistemine sahip telefonların kullanıcıları için önemli bir problemdir. Bu sebeple cep telefonu seçiminde bunları göz ününde tutmakta fayda var. Cep telefonunuzu standart fotoğraf görüntüleme, çekme ve müzik dinleme gibi standart özellikler kullanacaklar WM işletim sisteminden uzak durabilirler. Veya günümüzde yeni cep telefonu modellerinin çoğunda 128 MB ve üstü bellek bulunmaktadır. Buna ve telefonda bulunan işlemciye dikkat etmeliler. 128 MB ana bellek ile muhtemelen benim yaşadığım resim görüntülerken arka plandaki müzik uygulamasını kapanması problemini uzun süre çekmezsiniz. Telefonunuzun işlemcisi de çok önemlidir. Bu tür telefonlarda mesajlar ve e-postalar gibi kayıtlar MS SQL benzeri veri tabanlarında tutulduğundan bunların sorgulanması vs. iyi işlemcilerde daha başarılı olmaktadır. İyi bir işlemci müzik çalarken mesaj uygulamasını açtığınızda veya bir e-posta işlemi esnasında sesin kesikli gelmesini engelleyecektir. Bu sebeple en az 128 MB belleğe sahip ve Intel Monahan serisi işlemcilere veya diğer markaların yeni model işlemcilerine sahip cihazlara dikkat etmek gereklidir. Piyasadaki çoğu cihazda bulunan Intel PXA27x serisi işlemciler fikrimce artık pek işe yaramazlar, mesaj uygulamasını açarken bile seste kesikliğe yol açabiliyorlar. Bu sebeple Toshiba G500 Portege gibi 64 MB bellek ve 420 MHz Intel işlemci ile lanse edilen cihazlardan bütçeniz el verdiğince uzak durun. Tabi bütçeniz ona yetiyorsa da kullandığınız programlara dikkat edin. Örneğin; WM 6 işletim sisteminin kendi resim görüntüleyicisi resimleri görüntülendikleri anda yaklaştırma seviyesine göre belleğe yüklediklerinden XnView gibi gelişmiş uygulamalara göre daha az bellek kullanırlar.