Zalety korzystania z RTOS, takich jak QNX lub VxWorks zamiast Linuksa?


15

Kiedy opracowujesz rozwiązanie wymagające systemu operacyjnego w czasie rzeczywistym, jakie zalety miałby system operacyjny taki jak QNX lub VxWorks w stosunku do Linuksa?

Innymi słowy, ponieważ te systemy operacyjne są zaprojektowane specjalnie do wbudowania w czasie rzeczywistym - w przeciwieństwie do Linuksa, który jest bardziej ogólnym systemem, który można dostosować do korzystania w czasie rzeczywistym - kiedy trzeba użyć jednego z te systemy operacyjne zamiast Linuksa?

Odpowiedzi:


14

Niektóre systemy wbudowane (a) muszą spełniać trudne wymagania w czasie rzeczywistym, a jednak (b) mają bardzo ograniczony sprzęt (co jeszcze bardziej utrudnia spełnienie tych wymagań).

Jeśli nie możesz zmienić sprzętu, istnieje kilka sytuacji, w których musisz wykluczyć Linuksa i użyć czegoś innego:

  • Być może procesor nie ma nawet MMU, co uniemożliwia uruchomienie Linuksa (z wyjątkiem uClinux i o ile wiem, uClinux nie działa w czasie rzeczywistym).
  • Być może procesor jest stosunkowo wolny, a opóźnienie przerwania w najgorszym przypadku w Linuksie nie spełnia pewnych twardych wymagań, a niektóre inne RTOS dostrojone pod kątem bardzo niskiego opóźnienia przerwania w najgorszym przypadku mogą spełnić to wymaganie.
  • Być może system ma bardzo mało pamięci RAM. Kilka lat temu minimalna konfiguracja Linuksa wymagała około 2 MB pamięci RAM; minimalna konfiguracja eCos (z warstwą kompatybilności pozwalającą na uruchamianie niektórych aplikacji pierwotnie zaprojektowanych do pracy w systemie Linux) wymagała około 20 kB pamięci RAM.
  • Być może nie ma portu Linuksa na twoim sprzęcie i nie ma wystarczająco dużo czasu na portowanie Linuksa, zanim będziesz musiał uruchomić (pun!) System. Wiele prostszych RTOS zajmuje dużo mniej czasu na przeniesienie na nowy sprzęt niż Linux.

Jaki kod jest przenośny między różnymi RTOS? Słyszałem również, że niektóre rozwiązania są odgórne (przy użyciu RTOS), podczas gdy inne są budowane oddolnie (dodając stopniowo funkcje systemu operacyjnego do gołego metalu w miarę potrzeby).
CMCDragonkai

@CMCDragonkai: Programy napisane w interfejsie API EL / IX mogą działać na dowolnym systemie operacyjnym kompatybilnym z EL / IX. Programy napisane w interfejsie API POSIX mogą działać w dowolnym systemie operacyjnym kompatybilnym z POSIX. Programy napisane w interfejsie API uITRON mogą działać na dowolnym systemie operacyjnym kompatybilnym z uITRON.
David Cary

@CMCDragonkai: Być może programmers.stackexchange.com byłby bardziej odpowiednim miejscem do zadawania pytań na temat różnych RTOS?
David Cary

8

Nie wykonałem żadnej pracy w czasie rzeczywistym, więc weź to z odrobiną soli ...

Powiedziano mi, że istnieją dwie kategorie „w czasie rzeczywistym”: trudny w czasie rzeczywistym i miękki w czasie rzeczywistym.

„Miękki w czasie rzeczywistym” nieformalnie oznacza „zrób to tak szybko, jak to możliwe”. Myślę, że Linux na nowoczesnym procesorze jest do tego odpowiedni.

„Trudny w czasie rzeczywistym” nieformalnie oznacza „zrób to w wymaganym przedziale czasowym”. Okno może być dość małe, milisekundowe lub coś w tym rodzaju. Kanoniczne systemy sterowania lotem pocisków wycieczkowych lub satelitarnych pojazdów nośnych wydają się być kanonicznym przykładem. Potrzebne mogą być również systemy kontroli procesów przemysłowych. Wygląda na to, że robak Stuxnet ingerował w systemy, które wykonują tego rodzaju kontrolę.

W drugiej sytuacji używałbyś RTOS. RTOS często gwarantuje dostarczenie przerwania w mniej niż tak wielu instrukcjach, taktach zegara lub cokolwiek innego.

Innym czynnikiem może być to, że RTOS został zaprojektowany, przetestowany i / lub „udowodniony”, że nie zajmuje miejsca na stosie bez ograniczeń. Może żyć w pewnej minimalnej ilości pamięci, a rzeczy takie jak „OOM Killer” nie istnieją, ponieważ prawdopodobnie nigdy nie są potrzebne. Niektóre z lepszych funkcji wczesnego FORTRAN pochodzą z tego rodzaju wymagań. Kiedy skompilowałeś program FORTRAN II, wiedziałeś dokładnie, ile stosu i ile stosu potrzebuje, ponieważ nie mogłeś powrócić i nie mogłeś dynamicznie przydzielać niczego.

Realistycznie, druga uwaga (gwarantowane maksymalne zużycie pamięci) może być ważniejsza w niektórych krytycznych dla bezpieczeństwa aplikacjach niż „gwarantowane opóźnienie przerw wynoszące 0,001 sekundy”.

Wyobrażam sobie również, że po usunięciu procesu selekcji listka figowego wspierającego verbage, inżynierowie wybiorą RTOS, ponieważ „wymagania mówią”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.