Neden RTLinux
Önceki RTLinux için Modül Geliştirme NASIL Sonraki
Neden RTLinux
RTLinux tasarımının nedenleri standart Linux çekirdeğinin çalışması incelenerek anlaşılabilir. Linux çekirdeği, donanımı kullanıcı seviyesindeki görevlerden ayırır. İyi bir ortalama başarım sağlamak veya iyi bir iş çıkarmak için çekirdek her göreve birer öncelik atar ve bunlar üzerinde bazı zamanlama algoritmaları kullanır. Bu görev, işlemci tarafından zaman dilimlerine bölüştürülerek dış ortamda çalıştırılır, böylece çekirdek her bir kullanıcı seviyeli görevi geçici olarak durdurabilir. Bu sıralama algoritmaları ile birlikte aygıt sürücüleri, kesintisiz sistem çağrıları, geçersiz durum kesme sinyali kullanımı ve sanal bellek işlemleri sonuçları önceden kestirilemeyen işlem kaynaklardır. Dolayısıyla bu kaynaklar bir görevin gerçek zamanlı başarımı için engel teşkil eder.
'mpg123' ya da başka bir çalıcı kullanarak müzik dinliyorsanız gerçek zamanlı olmayan başarım hakkında bir fikriniz vardır. Önceden belirlenen zaman dilimi için bu süreç çalıştırıldıktan sonra, standart Linux çekirdeği görevin önceliğini hiçe sayıp işlemciyi başka bir göreve verebilir (örneğin; X sunucusunu veya Netscape'i açan bir göreve). Sonuç olarak müziğin sürekliliği kaybolur. Böylece çekirdek, işlemci zamanının bütün süreçler arasında doğru dağılımını sağlamayı denerken bir takım başka olayların meydana gelmesini engelleyebilir.
Bir gerçek zamanlı çekirdek, altındaki süreçlerin zamanlama gereksinimlerini garantileyebilmelidir. RTLinux çekirdeği, yukarıda bahsedilen sonuçları önceden kestirilemeyen işlem kaynaklarının kaldırılmasıyla gerçek zamanlı görevleri gerçekleştirebilir. RTLinux çekirdeğinin standart Linux çekirdeği ve donanım arasında oturduğunu varsayabiliriz. Bu durumda Linux çekirdeği gerçekzaman katmanını asıl donanım olarak görür. Artık, kullanıcı her bir görev için ayrı ayrı olmak üzere bütün görevler için önceliklikleri belirleyebilir ve tanıtabilir. Kullanıcı zamanlama algoritmaları, öncelikler, çalışma sıklığı vb. üstünde kararlar vererek süreçler için doğru zamanlamayı sağlayabilir. RTLinux çekirdeği, en düşük önceliği standart Linux çekirdeğine atar. Böylece kullanıcı görevleri gerçekzamanda çalışabilir.
Güncel gerçek zamanlı çalışma bütün donanım kesme sinyallerinin durdurulması ile elde edilir. Sadece RTLinux ile ilgili kesmeler için rutin kesme servisi çalışır. Bütün diğer kesme sinyalleri, RTLinux çekirdeğinin boşta kalması nedeniyle standart Linux çekirdeği çalışmaya başladığında yazılım kesmeleri olarak Linux çekirdeğine aktarılmak üzere tutulurlar. RTLinux yürütücüsü yürütme gücünü kendi üstüne almaz.
Gerçek zamanlı görevler ayrıcalıklıdır (yani donanıma doğrudan erişirler) ve sanal belleği kullanmazlar. Gerçek zamanlı görevler, belleğe özdevimli yüklenebilen özel Linux modülleri olarak yazılırlar. Bir gerçek zamanlı görev için ilklendirme kodu, gerçek zamanlı görev yapısını ilklendirir ve RTLinux çekirdeğine süre sonu, periyodu ve son anda ortaya çıkan kısıtlamalar hakkında bilgi verir.
RTLinux'un varlığı, Linux çekirdeğinin yapısına dokunmadığından Linux çekirdeği ile birlikte anlamlı olur. Linux çekirdeğinin gelecekteki gelişimine engel olmaksızın, nispeten basit değişikliklerle mevcut Linux çekirdeğini tam bir gerçek zamanlı ortama dönüştürmeyi başarır.
Önceki Üst Ana Başlık Sonraki
RTLinux Kurulumu Başlangıç RTLinux Programları Yazmak
Bir Linux Kitaplığı Sayfası