Linux yerine QNX veya VxWorks gibi bir RTOS kullanmanın avantajları?


14

Gerçek zamanlı bir işletim sistemi gerektiren bir çözüm geliştirirken, QNX veya VxWorks gibi bir işletim sisteminin Linux üzerinde ne gibi avantajları olacaktır?

Bu işletim sistemi gerçek zamanlı için özel olarak tasarlanmış bu yana Veya, o gömülü kullanımını başka bir yol koymak için - Linux aksine gerçek zamanlı kullanımına uyarlanabilir daha genel bir sistem olan - sen ne zaman ihtiyaç birini kullanmak Linux yerine bu işletim sistemleri?

Yanıtlar:


13

Bazı gömülü sistemlerin (a) zor gerçek zamanlı gereklilikleri karşılaması gerekir ve henüz (b) çok sınırlı donanıma (bu gereksinimleri karşılamayı daha da zorlaştırır) sahiptir.

Donanımı değiştiremezseniz, Linux'u ekarte etmek ve bunun yerine başka bir şey kullanmak zorunda kaldığınız çeşitli durumlar vardır:

  • Belki de CPU'nun bir MMU'su bile yoktur, ki bu Linux'u çalıştırmayı imkansız kılar (uClinux hariç ve uClinux'un gerçek zamanlı olmadığını bildiğim kadarıyla).
  • Belki de CPU nispeten yavaştır ve Linux'taki en kötü durumdaki kesme gecikmesi, bazı zorlu gereklilikleri yerine getirmekte başarısız olur ve aşırı düşük en kötü durum kesme gecikmesi için ayarlanan diğer bazı RTOS'lar gereksinimi karşılayabilir.
  • Belki de sistemin RAM'i çok azdır. Birkaç yıl önce, 2 MB RAM civarında bir Linux kurulumu gerekliydi; 20 kB RAM civarında bir minimum eCos kurulumu (başlangıçta Linux'ta çalışacak şekilde tasarlanmış bazı uygulamaları çalıştırmasına izin veren bir uyumluluk katmanı ile) gerekliydi.
  • Belki de donanımınızda Linux portu yoktur ve sisteminizi başlatmanız (cezalandırmanız) gerekmeden önce Linux'u yerleştirmek için yeterli zaman yoktur. Daha basit olan RTOS'ların çoğu, yeni donanıma bağlantı sağlamak için Linux'tan çok daha az zaman alır.

Farklı RTOS'lar arasında ne tür bir kod taşınabilir? Ayrıca bazı çözümlerin yukarıdan aşağıya doğru geldiğini (RTOS kullanarak), diğerlerinin aşağıdan yukarıya doğru inşa edildiğini duydum (ihtiyaç duyduğunuzda metali artımlı olarak çıplak hale getirmek için işletim sistemi özellikleri ekleyerek).
CMCDragonkai

@ CMCDragonkai: EL / IX API'sine yazılan programlar EL / IX uyumlu herhangi bir işletim sisteminde çalışabilir. POSIX API'sine yazılan programlar POSIX uyumlu herhangi bir işletim sisteminde çalışabilir. UITRON API'sine yazılan programlar , herhangi bir uITRON uyumlu işletim sistemi üzerinde çalışabilir.
David Cary

@ CMCDragonkai: Belki de programmers.stackexchange.com farklı RTOS'lar hakkında sorular sormak için daha uygun bir yer olabilir mi?
David Cary

8

Hiç gerçek zamanlı bir iş yapmadım, bu yüzden bunu bir tuz tuzu ile alın ...

Bana iki tür "gerçek zamanlı" olduğu söyleniyor: zor gerçek zamanlı ve yumuşak gerçek zamanlı.

“Yumuşak gerçek zamanlı” gayrı resmi olarak “mümkün olduğunca çabuk halletmek” anlamına gelir. Modern bir CPU'daki Linux'un bu tür şeyler için iyi olduğunu düşünüyorum.

“Zor gerçek zamanlı” gayrı resmi olarak “gerekli bir zaman aralığında yapılması” anlamına gelir. Pencere oldukça küçük, milisaniye veya bir şey olabilir. Cruise füzeleri veya uydu fırlatma araçları için uçuş kontrol sistemleri kanonik bir örnek gibi gözüküyor. Endüstriyel proses kontrol sistemleri de buna ihtiyaç duyabilir. Stuxnet solucanı, bu tür kontrolleri yapan sistemlere müdahale etmiş görünüyor.

İkinci durumda RTOS kullanırdın. RTOS çoğu zaman, bu kadar çok talimat veya saat tikasından veya her neyse, bir kesinti yapmayı garanti eder.

Bir başka husus, bir RTOS'un sınırlandırılmadan istif alanı kullanmayacak şekilde tasarlanması, test edilmesi ve / veya "kanıtlanması" olabilir. Asgari miktarda hafıza içinde yaşayabilir ve "OOM Killer" gibi şeyler mevcut olamaz, çünkü kesinlikle hiçbir zaman gerekli değildir. Erken FORTRAN'ın goofier özelliklerinden bazıları bu tür gereksinimlerden kaynaklanmaktadır. Bir FORTRAN II programını derlerken, ne kadar yığın ve ne kadar yığına ihtiyaç duyduğunu tam olarak biliyordunuz, çünkü tekrarlayamadığınızdan ve dinamik olarak hiçbir şey ayıramadınız.

Gerçekçi olarak, ikinci değerlendirme (garantili maksimum bellek tüketimi), bazı kritik güvenlik uygulamalarında "0,001 saniyelik garantili kesinti gecikmesi" nden daha önemli olabilir.

Aynı zamanda, destek verbiljisinin incir yaprağının seçim sürecinin sıyrılmasının, mühendislerin bir RTOS seçtiklerini çünkü “şartların söylediğini” olduğunu hayal ediyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.