You are on page 1of 4

Gömülü Sistemler İçin Yeni Bir İşletim Sistemi: eGİS

A New Operating System For Embedded Systems: eGİS


Sinan YILDIRIM, Aylin KANTARCI

Bilgisayar Mühendisliği Bölümü


Ege Üniversitesi, Bornova,İzmir
sinan.yildirim@mail.ege.edu.tr
aylin.kantarci@ege.edu.tr
sistemleri, giderek modern yazılım kavramlarının sunmuş
Özetçe olduğu avantajlara gereksinim duymaktadır. Gömülü
Birçok gömülü uygulama daha rahat bir çalışma ortamı sunan sistemler, çalışma zamanı gereksinimleri belirlenmiş ve
gömülü ve gerçek zamanlı bir işletim sitemine gereksinim özelleşmiş yazılımları içeren sistemler oldukları için gömülü
duymaktadır. Gömülü uygulamalara servis sunan gömülü sistemler için tasarlanmış olan işletim sistemleri uygulama
işletim sistemleri, genel amaçlı işletim sistemlerinin aksine istek ve kısıtlarının zorladığı değişimlerin kolay yapılabildiği
uygulama gereksinimlerine göre değiştirilebilir ve sistemler olmalıdır. Büyük ve karmaşık olan günümüz
yapılandırılabilir olmalıdır. Bu çalışmada gerçek zamanlı, gömülü uygulamalarının ihtiyaçlarını karşılayacak olan
taşınabilir, yapılandırılabilir, nesneye yönelik ve gömülü bir gömülü işletim sistemleri, iyi bir sistem başarımına sahip
işletim sistemi olan eGİS ( Ege Gömülü İşletim Sistemi ) olmak ve verimli kaynak yönetimi algoritmaları içermek
geliştirilmiştir. Bu bildiride geliştirilen sistem tanıtılmış ve dışında yeniden yapılandırılabilme, taşınabilme ve dağıtıklık
elde edilen bazı deneysel sonuçlar sunulmuştur. gibi modern yazılım özelliklerini destekleyebilmelidir.
Bu doğrultuda, gömülü işletim sistemlerinde modern bir
Abstract yazılım kavramı olan tasarım desenlerinin [2] kullanılması,
uygulama gereksinimlerine göre işletim sistemi
Many embedded applications need a real-time and embedded yapılandırılmasını kolaylaştırır. Tasarım desenleri gömülü
operating system that provides an simple operation işletim sistemlerin özel tasarım problemlerini çözebilir ve
environment. Embedded operating systems that give service nesneye yönelik tasarımları genişleyebilir, yeniden
to embedded applications must be configurable and kullanılabilir ve daha düzenli hale getirir. Günümüzdeki
restructurable in contrast to general purpose operating gerçek zamanlı ve gömülü yazılım sistemleri, mimarisel ve
systems. In this work, eGİS ( Ege Gömülü İşletim Sistemi ) genel tasarım desenleri ve bu desenlerin işaret ettiği tasarım
which is a real-time, portable, configurable, object oriented problemleri göz önüne alınarak tasarlanılmalıdırlar.
and embedded operating system is implemented. In this paper, Bunlara ek olarak küçük ve temel bir işletim sistemi
the developed system is introduced and some experimental çekirdeği içermeyi amaçlayan mikroçekirdek mimarileri [3]
results are presented. kullanmak, gömülü işletim sistemlerinin bakımını
kolaylaştırmak ve hatalara karşı duyarlılığını arttırmak dışında
yapılandırılabilme ve taşınabilme gibi özelliklerin sağlanması
1. Giriş yönünde de katkıda bulunacaktır.
Bu çalışma kapsamında, gerçek zamanlı gömülü
Gömülü sistemler günümüzde giderek önem kazanmaktadır. uygulamaların gereksinimlerini karşılayacak olan eGe
Avuçiçi cihazlar ve mobil telefonlar gibi taşınabilir cihazlar, Gömülü İşletim Sistemi (eGİS) [4], mikroçekirdek mimarisi
televizyon gibi büyük ve karmaşık sistemler gömülü yazılım göz önüne alınarak uygulama ihtiyaçlarına göre
içeren bazı sistemlerdir. Bu sistemler kısıtlı sistem kaynakları, yapılandırılabilir ve taşınabilir olacak şekilde tasarlanmıştır.
gerçek zamanlılık ve çok değişken uygulama gereksinimlerine eGİS, C++ dili ve açık kaynak koda sahip ücretsiz yazılım
sahip olmaları ile geleneksel yazılım sistemlerinden geliştirme araçları olan Gcc derleyicisi, Gdb hata ayıklayıcısı,
ayrılmaktadır. Ld bağlayıcısı ve Bochs emülatörü kullanılarak ve ise
Bilgisayar donanımcıları uzun bir süre gömülü yazılımla tamamiyle Türkçe geliştirilmiştir.
ilgilenmemişlerdir. Bu sistemler için yazılımın genellikle alt Literatürde UCOS-II, eCOS, PURE, CHORUS ve
seviye diller ile yazılması ve sistemin donanım maliyetinin TINYOS gibi gömülü işletim sistemlerine rastlamak
daha ön planda oluşu, gömülü yazılımlara gereken önemin mümkündür. Bunlardan UCOS-II [5] işletim sistemi çok iyi
verilmemesine yol açmıştır. Modern yazılım bakış açısının sistem başarımına sahip ve tahmin edilebilir kaynak yönetim
sunduğu çözümler gömülü sistemler için pahalı ve algoritmaları içermektedir. Ancak sistem içerisindeki öncelik
gerçeklenemez olarak görünmüş ve bu alanla ilgili tabanlı kesilebilir süreç yönetim algoritmasının değiştirilip
araştırmalar ikinci plana atılmıştır. Donanımın ucuzlamasıyla yerine farklı bir yönetim algoritmasının eklenmesi işletim
birlikte dikkatler yazılım üzerine çevrilmiş, gömülü sisteminin önemli bir kısmının yeniden yazılmasını
sistemlerle ilgili yazılım araştırmaları önem kazanmaya gerektirmektedir. Sistem algoritmalarının uygulama
başlamıştır [1]. ihtiyaçlarına göre değiştirilebilmesi, bir başka deyişle işletim
Gömülü sistemler için gerçekleştirilen işletim sistemleri, sisteminin uygulama ihtiyaçlarına göre yapılandırılabilmesi
genel amaçlı işletim sistemlerinden farklı tasarım amaçlarına uCOS sistemi içerisinde mümkün değildir. Bu durum Nucleus
ve servislere sahiptirler. Verimli bir kaynak yönetimi ve [6] işletim sistemi için de geçerlidir. eCOS [7] ve PURE [8]
gerçek zamanlı sistem algoritmaları içeren gömülü işletim

Authorized licensed use limited to: ULAKBIM UASL - ISIK University. Downloaded on June 10,2010 at 08:50:18 UTC from IEEE Xplore. Restrictions apply.
uygulama ihtiyaçlarına göre yapılandırılabilen işletim
sistemleridir. Ancak eGİS daha küçük, sade ve daha temiz bir
gerçekleştirime sahiptir ve tasarım desenlerine dayanan bir
mimariye sahiptir.
TINYOS [9] yapılandırma işlemini kendine özgü NesC
dilini kullanarak yapmaktadır. eGİS'te ise yapılandırma adımı
herhangi bir üst seviye dil yardımı ile değil kod ile
yapılmaktadır. EPOS [10] derleme anında kullanıcıdan elde
ettiği yapılandırma bilgisi doğrultusunda sisteme ek yük
getiren soyutlamalardan kurtularak işletim sistemini
yapılandırmaktadır. Yani ek fonksiyon çağırımları ve sanal
fonksiyonların getirdiği yükler ortadan kaldırılmıştır. eGİS'te
ise henüz böyle bir çalışma yapılmamıştır.
Bu bildiride eGİS işletim sistemi mimarisi hakkında bilgi
verilmekte ve sisteme ait bazı başarım ölçütleri
sunulmaktadır. İkinci bölümde eGİS Sistem mimarisi
açıklanmaktadır. Geliştirim detayları ve başarım sonuçları
üçüncü bölümde verilmektedir. Genel yargılar ve ileride
gerçekleştirilmesi planlanan çalışmalar dördüncü bölümde
dile getirilmektedir.

2. eGİS Sistem Mimarisi Şekil 1: eGİS Sistemi Mimarisi


eGİS gerçek zamanlı gömülü sistemler için nesneye yönelik
olarak geliştirilmiş bir mikroçekirdektir. Şu anda süreç
yönetimi, kesme yönetimi ve süreçler arası haberleşme
işlevlerini yerine getiren üç alt sistemden oluşmaktadır. eGİS,
katmanlı bir mikroçekirdek olup temel mimarisi Şekil 1'de
gösterilmiştir.
AltYapı katmanı sistemin çekirdeğini oluşturmakta ve tüm
sistem yönetim algoritmalarına ait arayüzler ve çok temel
sistem gerçekleştirimleri bu katmanda yer almaktadır. Sistem
yapılandırılması esnasında birbirleri ile yer değiştirilen alt
sistemler AltYapı katmanı üzerine oturmaktadır. AltSistemler
katmanı AltYapı katmanında belirtilen sistem soyutlamalarına
ait gerçekleştirimleri içermektedirler. Örneğin süreç yönetimi
için gerekli olan temel soyutlamalar ve algoritmik arayüzler
AltYapı katmanında yer alırken, bu arayüzlerin
gerçekleştirimi AltSistemler katmanında yer almaktadır.
Platform katmanı yine AltYapı katmanı içerisinde yer Şekil 2: eGİS Mikroçekirdeği
alan donanımsal soyutlamalara ait gerçekleştirimleri
içermektedir. Bunun sonucunda sistemin donanım ortamına eGİS mikroçekirdeğinin daha detaylı gösterimi Şekil 2'de
ait bağımlılıklar tek bir katmanda toplanmış olmakta ve verilmiştir. eGe_Surec, eGe_Kesme ve eGe_Haberlesme
donanım ortamı değişikliklerinden sadece tek bir katman sırası ile süreç, kesme ve süreçler arası haberleşme
etkilenmektedir. Bu da sistemin taşınabilirliğini olumlu yönde servislerinin gerçekleştirimlerini içeren alt sistemlerdir.
etkilemektedir. eGe_Surec öncelik tabanlı kesilebilir süreç yönetim
Uygulama Arayüzleri katmanı ise uygulamaların sistem algoritmasını içermektedir. Şu anda 64 adet iş parçacığını
yapılandırılmasından ve iç yapılardan haberdar olmadan, sade yönetebilen bu alt sistem; iş parcacığı yaratımı, durdurulması,
ve temiz bir arayüzle sistem servislerinden faydalanmalarını sonlandırılması, öncelik değiştirme, bekletme ve sonlandırma
sağlamaktadır. Sonuç olarak, sistemin içsel değişiklikleri servislerini sunmaktadır. eGe_Kesme alt sistemi kesme
uygulamaları etkilememektedir. kesmeleri yönetebilmek için kesmelere kayıt olmak, kayıtlı
kesmeden çıkmak için basit servisler sunmaktadır.
eGe_Haberlesme iş parçacıkları arasındaki haberleşmeyi ve
eşzamanlamayı sağlayan semafor sinyalleme/yakalama ve
kilit açma/kapama servislerini sunmaktadır.
eGİS işletim sisteminin çekirdek sınıfı tanımlaması Şekil
3'te gösterilmiştir. Bu sınıfın sistemde sadece bir adet örneği
bulunmakta ve bu mikroçekirdek nesnesi uygulama ihtiyaçları
doğrultusunda seçilmiş alt sistemlere ait referansları
barındırmaktadır. Alt sistemler arasındaki haberleşmeler de
yine bu nesne üzerinden yapılmaktadır.

Authorized licensed use limited to: ULAKBIM UASL - ISIK University. Downloaded on June 10,2010 at 08:50:18 UTC from IEEE Xplore. Restrictions apply.
taşınabilirliği, sistem nesnelerini somut sınıf isimlerini açık
bir şekilde belirterek yaratmadan Köprü ve Soyut Fabrika
desenleri kullanımı ile sağlanmıştır. Tekil deseni
mikroçekirdek nesnesini kontrollü erişimi sağlamıştır. Önyüz
deseni eGİS işletim sisteminin içsel yapısını istemcilerden
soyutlar ve temiz bir uygulama arayüzü sunar. Strateji deseni
yönetim algoritmalarının birbirleri ile değiştirilebilmesini ve
eGİS sisteminin yönetim algoritmalarından bağımsız olması
sağlanmıştır [11].

Tablo 1: Tasarım desenlerinin eGİS mikroçekirdeğine etkileri

Desen Desenin Sunduğu Avantaj


Tekil Mikroçekirdek nesnesine
kontrollü erişim
Soyut Fabrika Taşınabilirlik
Köprü Taşınabilirlik
Şekil 3: Mikroçekirdek Sınıfı Önyüz Uygulama bağımsızlığı
Strateji Algoritma Değiştirilebilirliği
Genel sistemin doğru bir şekilde çalışabilmesi için ilgili
alt sistemlerin mikroçekirdek nesnesine kaydedilmesi ve alt
sistemlerin doğru bir şekilde ilklenmesi gerekmektedir. Bu 3. Gerçekleştirim ve Deneysel Sonuçlar
adımlardan sonra işletim sistemi ana iş parçacığını yaratılarak eGIS, C++ dili ile açık kaynak kodlu Gcc [12] derleyici ailesi
ve o iş parçacığına geçiş yaparak çalışmaya başlar. Bu ve Bochs [13] i386 PC emulatörü kullanılarak geliştirilmiştir.
adımlar Şekil 4'te gösterilmiştir. Şu anda eGİS i386 ortamında çalışabilir 3 alt sistem ve 50’nın
üzerinde sınıftan oluşmaktadır.
eGİS mikroçekirdeği uygulama kodu ile beraber
bağlanarak tek bir ikili ortam kodu elde edilir. Şekil 5’de
eGİS mikroçekirdeğinin bellek kullanımı gösterilmiştir.
Günümüz gömülü sistemlerinin eGIS’in ihtiyaç duyduğu
bellek miktarını karşılayabileceği görülmektedir. Bu durum,
işletim sisteminin taşınabilir ve yeniden yapılandırılabilir
olması için eklenen katmanların getirmiş olduğu ek bellek
kullanımının kabul edilebilir ölçülerde olduğunu
göstermektedir.

TEXT 0
24 K

VERİ
4 byte
Şekil 4: Mikroçekirdeğin Yapılandırılması

eGİS işletim sisteminin katmanlı yapısı taşınabilirlik, BSS


genişleyebilirlik, bakım ve yapılandırılabilme bakımından 1.5 K
genel sisteme katkıda bulunmuştur. İçsel mimaride görüldüğü
gibi alt sistemler içindeki gerçekleştirimler temel altyapı 26 K
soyutlamalarına bağlanmaktadır. Donanımsal
Şekil 5: eGİS mikroçekirdeğinin bellek izi
gerçekleştirimler mikroçekirdeğin dışında tutuluğu için alt
sistemler donanımdan tamamiyle soyutlanmışlardır. Ayrıca
Tablo 2’de işletim sisteminde yer alan bazı işlemlerin
eGİS’in uygulama ihtiyaçlarına göre şekillenebilmesi
getirdiği yükler, saat darbesi sayısı cinsinden
soyutlamalar ve gerçekleştirimlerin birbirlerinden ayrılması
gösterilmektedir. Mikroçekirdek sınıfı tüm kayıtlı sistemleri
ile kolaylaşmıştır. Uygulama ihiyaçlarına uygun servisleri
tuttuğundan, kaydedilmiş sistemlere erişmek için
sunan değişik alt sistemler aynı soyutlamalara ve arayüzlere
mikroçekirdekten ilgili sistem istenmelidir. Bu işlem için 12
uygun oldukları sürece birbirleri ile yer değiştirebilirler.
saat darbesi kadar bir ek yük ortaya çıkmaktadır. Aynı şekilde
eGİS mimarisinin esnekliğinde, katmanlı yapının getirdiği
bir sonraki adımda hangi sürecin çalışacağına karar verme
avantajların yanı sıra, alt sistem tasarımlarında önemli bir
işlemi 168 saat darbesi sürmektedir. Bu sürenin yaklaşık 29
yazılım mühendisliği aracı olan tasarım desenlerinin
saat darbelik bölümü, süreç yönetim algoritmasının sistem
kullanılmasının da büyük bir rolü vardır. Desenlerin eGİS
içerisindeki değişebilirliğini sağlamak için koyulan ek
sistemine kattığı özellikler Tablo 1’de gösterilmiştir. Sistemin

Authorized licensed use limited to: ULAKBIM UASL - ISIK University. Downloaded on June 10,2010 at 08:50:18 UTC from IEEE Xplore. Restrictions apply.
soyutlama katmanında harcanmaktadır. Benzer bir durum iş [1] E.A. Lee, “What’s Ahead for Embedded Software? ”,
parçacığı yaratımı esnasında da görülmektedir. 1146 saat IEEE Computer Society Press, Computer, v.33 n.9 pp.18-
darbesi süren bir iş parçacığı yaratım işleminin en fazla 234 26, 2000.
saat darbelik kısmı soyutlama katmanlarında harcanmaktadır. [2] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design
Patterns: Elements of Reusable Object-Oriented
Tablo 2: eGİS mikroçekirdeğine ait bazı başarım ölçütleri Software, Addison-Wesley Professional Computing
Series, 1994.
Ara Geçen [3] J. Liedtke, “On micro-kernel construction”, In
İşlem katmanlarda toplam Proceedings of the Fifteenth ACM Symposium on
harcanan saat saat Operating Systems Principles, 1995.
darbesi darbesi [4] K. S. Yıldırım, “Gömülü Sistemler İçin Tasarım
Desenleri Kullanarak Nesneye Yönelik, Gerçek Zamanlı
Mikroçekirdek 12 12 Bir Mikroçekirdek Tasarımı”, Yüksek Lisans Tezi, Ege
nesnesine erişim Üniversitesi Bilgisayar Mühendisliği Bölümü, 2005.
Süreç yönetim [5] J. J. Labrosse, MicroC/OS-II: The Real-Time Kernel, 2nd
algoritmasının 29 168 Ed., CMP Books, 2003.
çalıştırılması [6] The Nucleus Plus RealTime Operating System
anasayfası:
İş parçacığı yaratılması <234 1146 www.acceleratedtechnology.com/embedded/nuc_rtos.htm
l
[7] The eCOS Operating System anasayfası:
Görüldüğü gibi işletim sisteminin uygulama ihtiyaçlarına http://ecos.sourceware.org/
göre şekillendirilebilmesi ve taşınabilir olması için mimaride [8] U. Haack, W. Schröder-Preikschat, F. Schön, O.
yer alan ek katmanlar sistem başarımını bir miktar Spinczyk, “Design Rationale of the PURE Object-
azaltmaktadır. Ancak gömülü işlemcilerin daha da Oriented Embedded Operating System”, In Proceedings
güçlendiğini göz önüne alırsak, elde edilen avantajlara göre [9] Gay, D., Levis, P., Culler, D., 2004, Software Design
başarım kaybının kabul edilebilir boyutlardadır. Bunun yanı Patterns for TinyOS
sıra, kullanılan modern yazılım mühendisliği teknikleri ile [10] Fröhlich, A.A., Schröder-Preikschat, W., EPOS: an
gömülü sistemlere getirilen esnekliğin sisteme kazandırdığı Object-Oriented Operating System; In Proceedings of the
avantajların, küçük başarım kayıplarından çok daha büyük Workshop on Object-Oriented Technology, Lecture Notes
değer taşıdığı bir gerçektir. In Computer Science Volume 1743
[11] K. S. Yıldırım, A. Kantarci“eGİS: Gömülü Sistemler İçin
4. Sonuçlar ve Gelecek Çalışmalar Tasarım Desenleri Tabanlı, Nesneye Yönelik ve Gerçek
Zamanlı Bir Mikroçekirdek”, Ulusal Yazilim Mimarisi
Özet olarak, bu çalışmada tanıtılan yeni bir gerçek zamanlı ve Sempozyumu, 2006.
gömülü işletim sistemi çekirdeği olan eGİS’in, uygulama [12] The GNU Compiler Collection anasayfası:
gereksinimlerine göre değişebilir, şekillendirilebilir ve http://gcc.gnu.org/
taşınabilir bir sistem olacak şekilde tasarlanmasına dikkat [13] Bochs IA32 PC Emulator homepage anasayfası:
edildiğini söyleyebiliriz. http://bochs.sourceforge.net/
Gelecekte yapılacak çalışmalarda, eGİS'e bellek ve disk [14] eGİS İşletim Sistemi kod ambarı adresi:
üzerinden çalışabilen bir dosya sistemi, TCP/IP yığıtı, gömülü http://sourceforge.net/projects/egis-eeos/
kullanıcı arayüzü sistemi gibi alt sistemlerin, yeni süreç
yönetim algoritmalarının ve farklı donanım ortam
gerçekleştirimlerinin eklenmesini planlamaktayız. Ayrıca
eGİS mimarisinin daha da iyileştirilmesi ve en iyilenmesi,
soyutlama katmanlarının getirmiş olduğu ek yüklerin ortadan
kaldırılıp sistem başarımının daha arttırılması da
amaçlanmaktadır.
eGİS işletim sistemi, açık kaynak koda sahip ve GNU
lisansı ile diğer mühendislerin de katkılarına açık bir işletim
sistemidir. eGİS diğer mühendislerin katılımı ile, daha hızlı ve
sağlam bir genişleme imkanına sahip olacaktır. Bu amaçla
eGİS açık kaynak kodlu projelerin yer aldığı
www.sourceforge.net sitesinde paylaşıma açılmıştır [14].
Sonuç olarak yapılan çalışma ile, bu konu hakkında
çalışma yapmak isteyenler için bir kaynak ortaya
konulmuştur. Bu kaynağın, işletim sistemleri ve gömülü
sistemler ile ilgilenenlere faydalı olacağı umulmaktadır.

5. Kaynakça

Authorized licensed use limited to: ULAKBIM UASL - ISIK University. Downloaded on June 10,2010 at 08:50:18 UTC from IEEE Xplore. Restrictions apply.

You might also like