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.
01.09.2013 tarihli yazı 11325 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.
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.
► İlginizi Çekebilir : Akıllı Telefon Satışlarında 2012 Rakamları
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.
► İlginizi Çekebilir : Hangi Programlama Dilini Seçmeliyim? Programlama Dilleri ve Uygulama Alanları
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
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
ANKET