Poprzednia - Następna

Przesądy dotyczące systemów czasu rzeczywistego


Poniżej rozprawiamy się z kilkoma mylnymi opiniami dotyczącym real time systemów, które niestety egzystują w umysłach nie tylko "szarych" użytkowników systemów operacyjnych, lecz również twórców real-time aplikacji.



"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.




Niektóre z powyższych "nieporozumień" opisane są w publikacji J.Stankovica "Misconceptions about real-time computing.", IEEE Computer, 21(10), October 1988.

Poprzednia - Przesądy dotyczace systemow czasu rzeczywistego - Następna