"real time" nie znaczy szybki
Real-time systemy często są uważane za systemy działające szybko. Jednakże
gwarantowany pesymistyczny czas reakcji nie oznacza szybkiego czasu
reakcji, a jedynie czas reakcji z góry określony.
Niektóre systemy (na przykład system nawigacji statku) mogą sprawiać wrażenie
systemów spoza klasy real-time, gdyż są za wolne. Jednak w tym przypadku real
time oznacza nie "szybki", lecz "przewidywalny".
Przy tym warto zwrócić uwagę na fakt, że "szybki" jest pojęciem względnym.
Chociażby jego znaczenia w robotyce i w naukach geologicznych są w zrozumiały
sposób bardzo odległe od siebie.
Nierzadko real-time system może wydawać się wolniejszy os "zwykłego" systemu
operacyjnego. Wynika to z faktu, ze techniki stosowane do przyspieszania pracy
systemu operacyjnego (pamięć podręczna, wielopotokowe procesory, etc.)
wprowadzają element indeterminizmu. Indeterminizm jest niedopuszczalny w
przypadku real-time systemu, gdyż, zasadniczo, uniemożliwia zapewnienie
przewidywalności systemu.
Aby zapewnić przewidywalność systemu (czyli gwarantowane czasy reakcji), twórcy
real-time systemów często rezygnują z technik używanych w "zwykłych" OSach do
przyspieszania działania.
Pojęcia "real-time system" i "system in real time" nie są równoważne
Zgodnie z przedstawionymi wcześniej definicjami, powyższe pojęcia różnią się
znacząco. "Real-time system" oznacza gwarancje czasu reakcji systemu, natomiast
niekoniecznie szybkie reakcje systemu. Natomiast "system in real time" oznacza
m.in. wrażenie realności, wiec szybkość reakcji i dokładność. Doskonałymi
przedstawicielami systemów w czasie rzeczywistym (system in real time) są
symulacje i gry interaktywne - im większe jest wrażenie ciągłości czasu, tym
lepszy system.
"real-time system" i "embedded system" to nie to samo
Embedded systemy często, ale nie zawsze zapewniają reakcje "real-time".
Analogicznie, nie wszystkie real-time systemy określane są mianem embedded
systemów.
Lepszy sprzęt sprawi, ze wszystkie deadline'y nie będą przekraczane
Chociaż lepszy sprzęt faktycznie może skrócić średni czas reakcji, niemniej
jednak niekoniecznie, a wręcz wątpliwe jest żeby, uczyni system przewidywalnym.
Real-time systemy pisane są w assemblerze, pisze się je trudno i bardzo
niskopoziomowo
Developerzy i designerzy systemu z reguły koncentrują się na wynajdywaniu
algorytmów szeregowania. Stworzone zostało wiele narzędzi wspomagających
implementację i testowanie systemów real-time.
Ponadto implementacja real-time systemu nie wymaga pisania kodu w assemblerze
(bardzo notabene zależącego od architektury) - implementacja w C czy w Adzie jest
dobrym i rozsądnym pomysłem.
Real-time systemy są rozwijane w stylu ad hoc
Istnieje wiele narzędzi wspomagających tworzenie takich systemów. Co jednak
ważniejsze, tworzone są potężne, elastyczne i ustrukturyzowane techniki, które
mają na celu sformalizowanie rozwoju i implementacji real-time systemu.
Poprzednia - Przesądy dotyczace systemow czasu rzeczywistego - Następna