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ą”.