fpganedir.com'da ara

fpganedir mail

Gerçek Zamanlı İşletim Sistemi (Real –Time Operating System)

Bu kısmımızda gömülü sistemlerde yaygın olarak kullanılan gerçek zamanlı işletim sistemlerinden bahsedeceğiz. RTOS’un ne olduğu, kullanım alanları, avantajları/dezavantajları konularına kısaca değineceğiz.

Tasarımcılar RTOS kullanımında iki sıkıntı ile karşılaşırlar. Bunların ilki RTOS’un kullanılıp kullanılmamasına kara verme işlemidir. Bu konuda tasarımcı tasarımını iyi analiz edip, bölümümüzün devamında anlattıklarımız dahilinde  RTOS’un artı ve eksilerini masaya yatırıp bu kararı vermesi gerekir.

İkinci sıkıntı ise RTOS kullanımına kara verdikten sonra hangi RTOS’u kullanacağınız yönündedir. Gerek ticari maksatlı olsun gerek açık kaynak olsun günümüzde onlarca gerçek zamanlı işletim sistemi bulunmaktadır. Bu ise bunlar arasında bir seçim yapmayı oldukça zorlaştırmaktadır.

RTOS nedir?

Gerçek Zamanlı İşletim sistemi (RTOS) gerçek zamanlı uygulamalar için tasarlanmış çoklu görev icra edebilen bir işletim sistemidir. RTO günümüzde askeri alandan kişisel cihazlara kadar yaygı bir kullanım alanına sahiptir. RTOS iki bileşenden oluşur. Bunlar Gerçek Zaman (Real - Time) ve işletim sistemidir.

Gerçek Zaman

Gerçek zaman yürütülen işlemlerin cevap verme süresinin belli bir değer arasında olmasıdır. Bu değer özellikle gömülü sitemlerde önemlidir. Hatta bazı sistemlerde çok kritik bile olabilir. Bu yüzden bu sistemlerde gerçek zamanı garanti altına alacak bazı mekanizmaların kullanılması gerekir. Bu açıdan bakıldığında RTOS gerçek zamanı garanti eden bir mekanizmadır.

İşletim sistemi

Donanım ile uygulama programları arasında arayüz oluşturan bir sistem programıdır. Bu programın oluşturduğu soyutlama katmanı ile kullanıcının donanımıma günümüzde kullanılan popüler yazılım dillerini kullanarak daha kolay ulaşmasını sağlar. RTOS özünde bir işletim sistemi olması hasebiyle gömülü sistemlerde kullanıldığı zaman tasarımcılara işletim sisteminin sağladığı kolaylıkları kullanmasına olanak sağlar.

OS birincil görevi uygulama programlarının ihtiyaçlarını karşılamak için donanım kaynaklarının yönetimini sağlamaktır. Bunu ise aşağıdaki özellikleri sayesinde sağlarlar.

Kısaca özetlemek gerekirse RTOS gerekli bir süre içerisinde mantıksal olarak doğru sonuç elde edilmesi gereken gerçek zaman uygulamalarında ve gömülü sistemlerde kullanılır. RTOS’un zamanlama davranışı ve  sınırlı kaynak kullanımı niteliğini bu sistemlerde  kullanılmasında tercih sebebidir.

Gerçek zamanlı Uygular için Neden RTOS kullanılır

RTOS gömülü sistemler içerisindeki bütün gerçek zamanlı uygulamalar(özellikle küçük) için gerekli bir bileşen değildir. Fakat uygulamaların karmaşıklığı arttıkça RTOS’un ihtiyacı daha belirgin hale gelir.

Her geçen gün daha karmaşık donanımlar içeren gömülü sistemlerin üretilmeye başlaması sistemden beklenen görevlerin yönetimini giderek zorlaştırmıştır. Bu tür uygulamalarda RTOS gerekli performansları karşılamak için efektif gerçek zamanlı uygulama geliştirmek için kullanılır.

Bir RTOS cevap verme hızı kendi işlem hızı yerine deterministtik davranışına bağlıdır. Bir zaman çizelgesi dahilinde olaylara cevap verme kabiliyetinin olması RTOS’un hızlı olduğu anlamına gelmez.

RTOS, CPU üzerinde dikkate değer bir yük oluşturur. Tipik olarak CPU zamanın  1% ile  4% lük kısmına ihtiyaç duyar.

RTOS Sınıflandırılması

RTOs genel olarak üç tür gerçek zamanlı sistem için tasarlanır .

Bu sınıflandırmanın yanında RTOS desteklediği donanım cihazların göre de sınıflandırılırlar. (8 bit, 16 bit, 32 bit MPu gibi)

RTOS Mimarisi

Aşağıda genel bir RTOS mimarisi bulabilirsiniz.


Kernel (Çekirdek)

İşletim sistemi genel olarak iki kısımdan oluşur. Bunlar kernel ile kullanıcı modülüdür. Kernel işletim sisteminin en küçük ve merkezi bileşenidir. Kernel belleğin ve cihazların yönetimini sağlar. Bununla birlikte yazılım uygulamalarının kaynakları kullanabilmesi için bir arayüz oluşturur. 

Monolitik Kernel

Bellek yönetimi, kesme Yönetimi, I/O haberleşmesi gibi bütün temel sitem servislerini yerine getiren kernel çeşididir. Monotilik kernel alt yapısının oluşturan donanım için zengin ve güçlü bir soyutlama sağlar. Linux ve Windows monolitik kernel’e örnek verebiliriz.



Microkernel

Yalnızca temel işlem iletişimi ile I/O kontrolünü yerine getiren Kernel çeşididir. Diğer dosya sistemi, ağ gibi diğer sistem hizmetleri ise kullanıcı kısmında yer alır. Bu yüzden mikro kernel basit donanım soyutlaması sağlar. Mikro kernel monotilik kernel’e göre daha karalı bir yapıya sahiptir. Hatta dosya sistemi gibi sitemlerler çökse bile kernel bunlardan etkilenmez. AmigaOS ve QNX işletim sistemlerini mikro kernel’e örnek verebiliriz.


RTOS’un kerneli uygulama yazılımı ile donanımı arasında bir soyutlama katmanı oluşturur. Bu soyutlama katman kernel tarafından uygulama katmanına sağlanan 6 ana servisten oluşur. Aşağıdaki resimde RTOS kernel sağladığı bu servisleri görebilirsiniz.

GÖREV YÖNETİMİ (TASK MANAGEMENT)

Görev yönetimi programlayıcıları her biri faklı hedef ve bitim zamanına sahip görevler tasarlamalarına imkan sağlar. Bu servis schedular ve dispatcher gibi görev nesnesi oluşturma ve devamını sağlaması için kullanılan scheduler ve dispatcher mekanizmalarına sahiptir.

Görev nesnesi

Gerçek zamanlı uygulama programlarında eş zamanlılığı oluşturabilmek için, uygulama küçük  ve zamanlanabilen sıralı program birimleri olan görevlere ayrılır. Gerçek zaman bağlamında görev, yürütülen en temel birimdir. Görev için üç zaman vardır.

Bir görev nesnesi aşağıdaki bileşenler tarafından tanımlanır.

Tipik bir Görev Kontrol bloğu aşağıdaki gibidir.

Her bir görev için 4 durum bulunur ve görevler programın yürütülmesi esnasında bu dört durumunun birinde bulunur. Bu durumlar çalışma, hazır, bekleme ve uyku durumlarıdır. Bir uygulama programının yürütülmesi esnasında, her bir görev daima bir durumdan diğerine atlar. Fakat yalnızca bir görev yürütmenin herhangi noktasında çalışma modunda olabilir.

Bu dört durum bir görevin yürütülmesi esnasında karşılaşacağı aşamaları özetler. Bu durumlardan yalnızca çalışma modu için işlemci meşgul edilir. Gerçek zaman kavramının özünde yatan aslında işlemcinin etkin şekilde kullanılması düşüncesidir. İşlemci hızının artırılması değildir. Herhangi bir gerçek zaman mekanizması içermeyen sistemlerde bir görevin yürütülmesi için gerekli olan bu dört durum işletilmeden diğer bir göreve geçilmez. Bu ise çalışma modu hariç diğer modlarda işlemcinin atıl durumda bırakılması anlamına gelir. RTOS gibi mekanizmalar işlemcinin atıl durumda kalması engelleyerek, bu modlarda faklı görevlerin yürütülmesini sağlar. Böylece işlemci etkin şekilde kullanılarak bütün programın hızı artırılmış olur.

SCHEDULAR

Schedular her bir görevin durum kayıtlarını tutar ve yürütülmeye hazır olan görevi seçer ve işlemeciyi  bu göreve tahsis eder. Schedular çok görev içeren programlarda CPU kullanımını en etkin şekilde kullanılmasını sağlar. Böylece bekleme zamanını azaltır. Genel olarak iki tür schedular bulunur.

Non Preemptive
Görevler arasında öncellik sırası yoktur ve bütün görevler aynı öncellikli olarak kabul edilir. Bir görev yürütülmeye başlandığında diğer bir görev bu görevin bitmesi ile yürütülmeye başlar.


Öncellik Tabanlı Preemtive

Her zaman işlemci yüksek öncelikli görevleri kontrol eder. Eğer yüksek öncelikli bir görev işlenmek için hazır ise işlemci üzerindeki görev hemen askıya alınır ve işlemcinin kontrolü yüksek öncelikli göreve verilir.

Dispatcher

Dispatcher scheduler tarafından seçilmiş göreve işlemcinin kontrolünü vermek içi kullanılır. Bu sayede yürütme akışını değiştirilmiş olur.Bir rtos un çalıştığı herhangi bir zamanda yürütme akışı task program code, interrupt service routine (ISR) veya kernel’den herhangi birinden geçer.

RTOS ÖRNEKLERİ

Aşağıda micruim firması tarafından geliştirilen µC/OS-II'nin  görev durum geçişleri sırasında kullanılan fonksiyonları bulabilirsiniz.

 

Anasayfa | Fpga | VHDL | VHDL Sözlüğü | Embedded Sistem | Android | Sayısal Tasarım | Simulasyon | PCB | Örnekler | Forum | İletişim
Copyright © 2010-2013 FPGAnedir. All Rights Reserved.