BL413 Gerek Zamanl Sistemler Real Time Systems Gerek
BİL-413 Gerçek Zamanlı Sistemler (Real Time Systems) Gerçek Zamanlı İşletim Sistemleri Real Time Operation Systems (RTOS) Dr. Öğr. Üyesi Mevlüt ERSOY
Dersin Amacı • Gerçek zamanlı işletim sistemlerinin çalışmasını anlamak, • Gerçek zamanlı sistemlerde uygulama geliştirmek, • Free. RTOS, açık kaynak gerçek zamanlı işletim sistemini Ardunio üzerinde çalıştırmak
Konular • • • • Gerçek Zamanlı İşletim sistemlerine Giriş Free. RTOS İşletim Sistemi Özellikleri Görev Oluşturma Görev Durumlarını Gerçekleme (Hazır, Çalışır, Bekler, Terminate) Sürekli ve Periyodik görevler Boşta görevler (IDLE durumu) Görev öncelikleri Görev silme Kuyruk Yönetimi Senkronizasyon Semafor Kullanımı Kesme Senkronizasyonu Ardunio uygulamaları
Değerlendirme
Gerçek Zamanlı Sistemlere Giriş
Gerçek zamanlı Sistem Nedir? • Gerçek Zamanlı Sistemler zamanlama kısıtları yada zorunlulukları olan sistemlerdir. • Bu sistemler harici olaylara zamana bağlılık ekseninde cevap verirler. Cevap verme süreleri garantidir.
Hard – Soft Real Time System • İki farklı gerçek zamanlı sistem vardır. Zorlayıcı (Hard), Esnek (Soft) gerçek zaman • Bu iki sistem arasındaki fark, zamanlama bitiş süreleri kayıplarının tolere edilebilirliğidir. • Zorlayıcı gerçek zamanlı sistemlerde, bitiş zamanı kritiktir, zamana uymamak ölümcül sonuçlara yol açabilir. Esnek gerçek zamanlı sistemlerde zamana uymamak kritik değildir. • Medikal uygulamalar zorlayıcı gerçek zamanlı sistemlerdir. • Bilgisayardaki ses sisteminde birkaç biti kaçırmak sistemi çalışmaz hale getirmez.
Gerçek zamanlı Sistemler • Harici olaylar senkron yada asenkron karakteristiklere sahip olabilirler. Olayı Algıla • Verilen zaman içerisinde cevap ver!!! • Zamanlama uygun değilse gerçek zamanlı sistem doğru çalışmıyordur. • Önemli olan; • Zamanlamanın doğruluğu, • İşlem sonuçlarının doğruluğu, • Cevabın doğruluğu Cevap Ver İşlem Yap
Nerelerde Kullanılır? • Aerospace • Communications • Audio • Computer peripherals • Automotive • Process control • Flight management systems • Jet engine controls • Weapons systems • MP 3 players • Amplifiers and tuners • • Antilock braking systems Climate control Engine controls Navigation systems (GPS) • Office automation • FAX machines / copiers • Robots • Routers • Switches • Cell phones • Printers • Scanners • Chemical plants • Factory automation • Food processing • Video • Broadcasting equipment • HD Televisions And many more
Gerçek Zamanlı Kernel • Gerçek zamanlı kernel bir mikroişlemci, mikro kontrolcü veya Sayısal Sinyal İşlemci (DSP) nin kaynaklarını ve zamanını yöneten yazılımdır. • Gerçek zamanlı uygulamaların tasarım işlemleri her biri işin bir kısmından sorumlu olan görevlere bölmeyi içermektedir. • Görev aynı zamanda bir iş parçacığı (thread) İşlemcinin sadece kendine ait olduğunu düşünen basit bir programdır. • Tek bir işlemci belirlenen herhangi bir zamanda tek bir görevi çalıştırmaktadır. • Bir göre tipik olarak sonsuz bir döngü olarak uygulanmaktadır.
Gerçek Zamanlı İşletim Sistemleri (RTOS) • Gerçek Zamanlı İşletim sistemleri • • • Zamanlama Kaynak yönetimi Senkronizasyon İletişim Belirli zamanlama I/O gibi destekleri sağlamaktadır.
Gerçek zamanlı işletim sistemler ile ne yapılabilir? • Tek kullanıcılı özel sistemlerden, çeşitli amaçlarla geliştirilmiş birçok genel amaçlı işletim sistemleri geliştirilebilir. • Tamamen tahmin edilebilir bir sistem geliştirilebileceği gibi, güvenli kritik uygulamalarda gerçek zamanlı işletim sistemleri ile geliştirilebilir. • Büyük, karmaşık, dağıtık gerçek zamanlı uygulamaların yanı sıra sıklıkla çoklu ortam uygulamaları geliştirilmektedir. • RTOS ile geleneksel işletim sistemlerine yeni fikirler ve yaklaşımlarla farklı gerçek zamanlı işletim sistemleri geliştirilmektedir.
RTOS Çekirdeği • Ensdüstride birçok standart kullanılmaktadır. • • POSIX (en çok kullanılan) (Standart) OSEK (Otomotiv sektöründe ) (İşletim Sistemi) Ada 83 , Ada 95 (Programlama Dilleri) Java
RTOS Örnekleri • Vx. Works (POSIX, Robot İşletim Sistemi, TV Set Box, Uydu Alıcılar, Xerox yazıcı, NASA Mars Araçları) • Free. RTOS OS-Kit (1997) Coyote Linux (1998) (Firewall Router) PURE OS (Debian) MMLite (1998) QNX (12 KB) Windows CE (350 KB) Lynx. OS (Boeing 777 Kabin Servis Hizmetleri, HP Xerox ve Yazıcı, NASA Uydu Sistemleri) • RTLinux, Embeddded Linux (125 -256 KB)dağılımları • •
RTOS ile Genel Amaçlı İşletim Sistemleri Karşılaştırılması • Temel benzerlikler; • Belli oranda multitasking • Yazılım ve donanım kaynaklarının yönetimi • Donanımı yazılımdan soyutlamak • Farklar ise ; RTOS’lar Gömülü uygulamalar için daha güvenilirlerdir. Uygulamanın ihtiyaçlarına göre boyutlandırılabilirler Performansları daha iyidir. Bellek ihtiyaçlarını azaltırlar. Zaman planlama (Scheduling) algoritmaları gerçek zamanlı gömülü sistemler için uyarlanmıştır. • Disksiz gömülü sistemler için ROM yada RAM den doğrudan çalıştırılabilirler. • Farklı donanım platformlarında kullanılabilmek üzere daha iyi taşınabilirliğe sahiptir. • • •
RTOS Nasıl Seçilir? • Hangi İşlemciler destekliyor? • Bellek Gereksinimleri (İşletim Sistemi + Uygulamalar) • Özellikler (Zamanlama Stratejileri, IPC Mekanizmaları, …) • Çalıştırma Zamanları • Destekler (Dokümantasyon, kaynaklar, …)
Gerçek Zamanlı Gömülü Sistemler • Birçok küçük sistem uygulaması Ön plan / Arka plan (foreground/backgorund) olarak adlandırılan bir yazılım mantığı veya süper – döngü yapısı ile tasarlanır. • Küçük gömülü sistemlerin çoğu motor kontrolü, akıllı cihazlar, tüketici elektroniği, robotlar, haberleşme cihazları gerçek zamanlı multitasking işletim sistemlerinden faydalanabilir. • Birçok sistem bir işletim sisteminin dosyalama sistemini, I/O yönetimini ve ağ yönetimi gibi tüm özelliklerinin ne karmaşıklığını ne de maliyetini kaldıramaz. • Bu durumda asgari özelliklere sahip öncelik yapısına dayalı multitasking yapısı olan gerçek zamanlı bir işletim sistemi kullanılabilir.
Free. RTOS • Real Time Engineers LTD. tarafından geliştirildi ve yönetilmektedir. • Şirket dünyada önde gelen chip firmaları ile işbirliği yaparak tamamen açık kaynak yüksek kaliteli bir yazılım geliştirmiştir. • Free. RTOS, mikrodenetleyiciler veya küçük mikroişlemciler kullanan gömülü gerçek zamanlı uygulamalar için idealdir. • Bu tip uygulamalar normalde hem sert hem de yumuşak gerçek zamanlı gereksinimleri karşılayabilmektedir
Free. RTOS - devam • Free. RTOS, gerçek zamanlı gereksinimlerini karşılamak için gömülü uygulamaların oluşturulabildiği gerçek zamanlı bir çekirdektir (veya gerçek zamanlı zamanlayıcıdır). Uygulamaların, bağımsız yürütme iş parçacıklarının bir koleksiyonu olarak düzenlenmesini sağlar. • Yalnızca bir çekirdeği olan bir işlemcide, herhangi bir zamanda yalnızca tek bir iş parçacığı çalıştırılabilir. Çekirdek, uygulama tasarımcısı tarafından her bir iş parçacığına atanan önceliği inceleyerek hangi iş parçacığının yürütülmesi gerektiğine karar verir.
Free. RTOS - Öncelik Belirleme? • En basit durumda, uygulama tasarımcısı zor gerçek zamanlı gereksinimleri uygulayan iş parçacıklarına daha yüksek öncelikler atayabilir ve yumuşak gerçek zamanlı gereksinimleri uygulayan iş parçacıklarına daha düşük öncelikler atayabilir. • Bu, zor gerçek zamanlı iş parçacıklarının her zaman yumuşak gerçek zamanlı iş parçacıklarının önünde yürütülmesini sağlar, ancak öncelik ataması kararları her zaman bu kadar basit değildir.
Free. RTOS - devam • Free. RTOS; • • profesyonel olarak geliştirilmiştir, bağımsızdır, sağlamdır, desteklenmektedir, herhangi bir fikri mülkiyet sahipliği belirsizliği içermez Ticari uygulamalarda kullanılabilir. • Real Time Engineers ltd ile herhangi bir izin almadan Free. RTOS kullanarak bir ürün alabilir, herhangi bir ücret ödemezsiniz. • Ek garantiler almak için lisanslı ürün alabilirsiniz (Open. RTOS)
Neden Free. RTOS Çekirdeği kullanacağız? • Zamanlama bilgilerini soyutlama • Çekirdek yürütme zamanlamasından sorumludur ve uygulamaya zamana bağlı bir API sağlar. Bu, uygulama kodunun yapısının daha basit olmasına ve genel kod boyutunun daha küçük olmasına izin verir. • Kolay bakım / Genişletilebilirlik • Zamanlama detaylarının ayrılması, modüller arasındaki daha az bağımlılık ile sonuçlanır ve yazılımın kontrollü ve öngörülebilir bir şekilde gelişmesini sağlar. Ayrıca, çekirdek zamanlamadan sorumludur, bu nedenle uygulama performansı, temeldeki donanımdaki değişikliklere daha az duyarlıdır. • Modülarite • Görevler, her biri iyi tanımlanmış bir amaca sahip olması gereken bağımsız modüllerdir.
Neden Free. RTOS Çekirdeği kullanacağız? • Takım geliştirme • Görevler ayrıca, ekipler tarafından daha kolay geliştirilmesine izin veren iyi tanımlanmış arayüzlere sahip olmalıdır. • Daha kolay test • Görevler temiz arayüzlere sahip iyi tanımlanmış bağımsız modüller ise, bunlar ayrı test edilebilir. • Kodu yeniden kullan • Daha büyük modülerlik ve daha az bağımlılık, daha az çaba ile yeniden kullanılabilen kodlar oluşturulabilir.
Neden Free. RTOS Çekirdeği kullanacağız? • Verimliliği arttırmak • Bir çekirdeğin kullanılması, yazılımın tamamen olay odaklı olmasına izin verir, bu nedenle gerçekleşmemiş olan olayların yoklanmasıyla işlem süresi boşa harcanmaz. Kod sadece yapılması gereken bir şey olduğunda yürütülür. • Verimlilik tasarrufuna ortadan kaldırmak, RTOS işaret kesintisini işlemek ve yürütmeyi bir görevden diğerine geçirmek gerektiğidir. Bununla birlikte, RTOS kullanmayan uygulamalar normalde bir tür işaret kesmesi içerir. • Boşta kalma süresi • Boşta görev, programlayıcı başlatıldığında otomatik olarak oluşturulur. Yürütülmek istenen uygulama görevleri olmadığında boşta görev yürütülür. Boşta görev, yedek işleme kapasitesini ölçmek, arka plan kontrollerini gerçekleştirmek veya sadece işlemciyi düşük güç moduna geçirmek için kullanılabilir.
Neden Free. RTOS Çekirdeği kullanacağız? • Güç Yönetimi • Bir RTOS kullanılarak elde edilen verimlilik kazançları, işlemcinin düşük güç modunda daha fazla zaman harcamasını sağlar. • Güç tüketimi, boşta görevi her çalıştığında işlemciyi düşük güç durumuna getirerek önemli ölçüde azaltılabilir. Free. RTOS ayrıca özel bir işaretsiz modu vardır. İşaretsiz modun kullanılması, işlemcinin mümkün olandan daha düşük bir güç moduna girmesini ve daha uzun süre düşük güç modunda kalmasını sağlar. • Esnek kesme işlemi • Kesme işleyicileri, uygulama yazarı veya Free. RTOS daemon görevinin oluşturduğu bir göreve ertelenerek çok kısa tutulabilir. • Karışık işlem gereksinimleri • Basit tasarım modelleri, bir uygulamada periyodik, sürekli ve olay odaklı işlemlerin bir karışımını sağlayabilir. Ayrıca, uygun görev ve kesinti önceliklerini seçerek zor ve yumuşak gerçek zamanlı gereksinimler karşılanabilir.
Free. RTOS Özellikleri • Önleyici veya işbirlikçi operasyon • Çok esnek görev önceliği atama • Esnek, hızlı ve hafif görev bildirim mekanizması • Kuyruklar • İkili semaforlar • Sayılabilir Semaforlar • Muteksler • Özyineli Muteksler • Yazılım zamanlayıcıları • Olay grupları • İşaret yakalama fonksiyonları • • Boşta yakalama fonksiyonları Yığın taşma kontrolü İzleme kaydı Görev çalışma zamanı istatistikleri toplama İsteğe bağlı ticari lisans ve destek Tam kesme yerleştirme modeli (bazı mimariler için) Aşırı düşük güç uygulamaları için işaretsiz bir yetenek Uygun olduğunda yazılım tarafından yönetilen kesme yığını (bu RAM'in kurtarılmasına yardımcı olabilir)
- Slides: 26