elektrik port üyelik servisleri elektrik port üyelik servisleri

Yazılımcı İçin Symbian OS. |
2. Bölüm

Yok edilmeyen telefon olma özelliğindeki Nokia 3310 esprisini illa bir yerlerden duyuyorsanız ya da Windows Phone'unuzdan memnun olsanız da yapmak istediğiniz içinizde kalan arayüzler, geliştirmek istediğiniz idealleriniz mi var? Ya da her ne kadar Iphone 5,4,3,2,1 diye saysanız da parasını saymak biraz zor mu diyorsunuz, üstelik kurcalayamıyorum diye üzülenler aramızda mutlaka var. Ya da "Ne Android'miş arkadaş bu yokken ne yapıyordu bu millet?, diye düşünüyorsanız demek ki bunun altında bir ciddi bir gerçek var. Symbian OS. Gerçeği diye düşündük ve sizler için derledik.



A- A+
01.09.2013 tarihli yazı 10828 kez okunmuştur.




SYMBIAN OS MİMARİSİ

Process: Symbian OS altında bir process (süreç), yürütülebilir bir görüntü dosyası, tek bir örnekleme ve belirli adres alanı (yada bellek haritalaması gibi) işleri yapan bi ve ya birkaç iş parçacığı(threadden) oluşan bir bütündür .
 


Semaphore-DSemaphore: Symbian OS semaforları standart hesap semaforelarıdır. Semafor  bir sayı tutar bu sayı pozitif veya sıfırsa bekleyen thread yok, negatifse threadler bekliyor demektir.

Sistem çekirdeği, dosya sunucusu, hafıza yönetimi ve donanım sürücüleri işletim sisteminin “Base” katmanında bulunur.

 

► İlginizi Çekebilir : Mühendisler İçin Android Uygulamaları


Kernel Threads

► Symbian OS threadlerininin  4 türü vardır. Bunlar;

    ⇒ iType==EThreadInitial: Sistemde boot time’ da koşan , tek ve ilk prosestir.

   ⇒ iType==EThreadSupervisior: supervisior threadleri sadece supervisior modunda çalışır. Bellek modelleri de supervisior stakından ayrılır.

    ⇒ iType==EThreadMinimalSupervisior: Bu threadler RTOS(Real Time Operating System )  un  katmanlarına yönelik olarak kullanılırlar ve supervisior threadlere benzerler.

Belleklerini supervisior stacktan ayırabildiğiniz gibi oluşturacağınız bir threadle, pointerlar kullanarak bellek yönetimini kendiniz de  yapabilirsiniz.


   ⇒ iType==EThreadUser: Bu threadler standart kullanıcı uygulamaları üzerinde koşarlar.Çoğunlukla user mod’da bazen sistem çağrıları olduğu sırada supervisior mode’da da koşarlar.


Her bir Symbian OS threadi bir mevkiye sahiptir. M-state gibi. Thread wait veya semaphore ya da mutex yapısına dahil olduğu andan itibaren M-state thread olarak değişir.

► Symbian OS kerneli boot sırasında 5 tane thread oluşturur. Bu threadler cihaz yeniden başlatılana kadar koşmaya devam ederler.(aslında gereksinimlere  ve uygulamalara göre cihazda daha fazla thread koşabilir)
 

        ⇒Null Thread: Boot sırasında ilk koşan threaddir, reset vektöründen sonra icrası başlar.

     ⇒Supervisior Thread: Sistem resetlendikten sonra ikici koşan threaddir.Kernel başlatımının final aşamasında ve yeniden başlatımın 3.Aşamasında, supervisior thread ve  kullanıcı taraflı kodlarda non-time-critical event’ ların kesme yetkilendirme yöneticisini başlatan  kesme yöneticisinin  nanokernel kesme zamanlayıcısını işretler.

       ⇒DFC Thread 0: Bu thread aygıt sürücülerin seri haberleşmesinde dahil edilir.(ses, Ethernet, keyboard ve  digitizer vs.) 27. Önceliğe sahiptir.
 

       ⇒DFC Thread 1: Nanokernel zamanlayıcı kuruğunda bundan daha yüksek  öncelikli threadın koşmasından sakınılmalıdır. Çünkü 16 nanokernel işaret süresinden daha fazla geciktirilirse sistemde olumsuzluklara yol açar.

        ⇒Timer Thread: Symbian Os nin kuyruk zamanlayıcısıdır.

 


Tarifeleme Algoritması: Symbian işletim sistemi gelecekte hangi threadin tarifeleneceğini belirlemek için  Round Robin, (önceliği temel alan) algoritmayı kullanır. Basitçe; yüksek öncelik sırasına göre threadleri kuyrukta biriktirir, ve  koşar .  Bloklanmadan koşan threadler bu kuyruk bitene kadar kendi zamanlarında koşarlar , bloklanan prosesler ise öncelikli hazır kuyruğunun sonuna atılırlar.  Yani tarifeleyici  bir sonraki thread geldiğinde önceliği yüksek olan sıraya geri döner.


Mutex-DMutex: Symbian OS mutex’leri  nanokernel muteksi tarafından getirilen kısıtlamalar haricinde  threadler arasında karşılıklı dışlamayı sağlarlar.


Critical Section: RCriticalSection ın içinde şunlar tanımlanır.

►Close():ele alınan CS yi sonlandırır.
►CreateLocal(TOwnerType): CS yaratır ve bu sayede bir CS oluşturulur.
►IsBlocked(): const CS nin başka bir thread tarafından işgal edilip edilmediğini test eder.
►RCriticalSection(): defaul yapıscısıdır.
►Signal(): CS bittiğinde , CS den çıkmak için gönderilen haberleşme sonuç  bilgisi.
►Wait(): CS nin tamamlanmasını bekleyen , haber veren bilgi.

 


 
Bellek Yönetimi

Farklı programların, birbirlerinin bellek alanlarına müdahale etmesini engellemek amacıyla işletim sistemi, uygulamaların fiziksel belleğe doğrudan ulaşmasını engeller. Bunun yerine, bilgisayarın sahip olduğu fiziksel ve sanal belleği haritalandırır ve programların, tanımlayıcı tablo aracılığıyla haritalanan belleğe ulaşmasını sağlar. Böylece, kullanılmayan bellek bloğunu, takas dosyasına taşıyarak aktif olmayan programların fiziksel belleği işgal etmesini önler. Bunun avantajlarından birisi d; farklı kullanıcılara ait uygulamalar, birbirinin bellek alanına müdahale edemez.
 


Sonuç olarak Symbian OS;

► Symbian bir işletim sistemi olduğundan, virüslerden etkilenmesi söz konusudur. Bu etkilenme, cep telefonuna zarar vermekten çok, hizmet programlarının kullanılamaması şeklinde ortaya çıkar. Virüslerin sisteme bulaşması bluetooth vasıtasıyla gerçeklenir. anti virüs yazılımlar geliştirilmektedir.

► Symbian OS çoklu kesme’den ziyade öncelikli olay kontrollülük sağlar. Multithreading kullanılabilir ama tercih edilmez.Bunun nedeni hafızada gereksiz kullanımına yol açmasıdır.
 

► Microsoft Windows Phone ise bunlara göre daha yenidir, kullanımını daha  basit yapmaya çalışır.
Ve Microsoft tüm cihazlarda ortak kernel ve ortak bir dilde birleştirmeyi amaçladığı için Windows klasikleri yolunda ilerliyor.

Neden Symbian konusunda biraz bilgi vermek istedik, umarım yeni ve ilginç fikirleriniz için doğru platformları değerlendirmenize katkımız olur. Temelini bildiğiniz ortamların üzerinde imzanızı atan projeler gerçekleştirmek daha doğaldır.

Çalışmalarınızda başarılar dileriz...




Kaynaklar:

(KTÜ Kütüphanesi Çevrimiçi Kitap) NOKIA Developing Series 60 applications [electronic resource] a guide for Symbian OS C++ developers Edwards, Leigh, 1953-. ; Leigh Edwards, Richard Barker, and the staff of EMCC Software Ltd.
ab.org.tr Ahmet Kaya Ege Üniversitesi Tire Kutsan M.Y.O
library.developer.nokia
tr.wikipedia.org
 

Aktif etkinlik bulunmamaktadır.
ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar