System czasu rzeczywistego
System czasu rzeczywistego (ang. real-time system, real-time computing, RTC) – urządzenie techniczne, którego wynik i efekt działania jest zależny od chwili wypracowania tego wyniku. Istnieje wiele różnych definicji naukowych takiego systemu. Ich wspólną cechą jest zwrócenie uwagi na równoległość w czasie zmian w środowisku oraz obliczeń realizowanych na podstawie stanu środowiska. Z tego wyścigu dwóch stanów: zewnętrznego i wewnętrznego, wynikają kryteria ograniczające czas wypracowywania wyniku.
Systemy czasu rzeczywistego najczęściej buduje się w oparciu o komputery, jednak nie jest to konieczne – można tym pojęciem określić np. regulator pneumatyczny.
Teoria
Funkcja zysku
Dla teorii i praktyki systemów czasu rzeczywistego przydatne jest pojęcie funkcji zysku. Funkcja zysku jest funkcją zależną przede wszystkim od czasu i określa korzyść ze zrealizowania zadania przez system. Korzyść niekoniecznie jest wielkością wymiarowaną. Źródłem ograniczeń czasowych są zazwyczaj zjawiska fizyczne zachodzące w świecie rzeczywistym.
Zadanie zostało przez system zrealizowane poprawnie, jeśli z chwilą zakończenia tego zadania wartość funkcji zysku jest większa od zera.
Funkcję zysku można określać nie tylko dla systemów czasu rzeczywistego. Następująca funkcja zysku: jest typowym przykładem dla systemu innego niż czasu rzeczywistego – zysk jest zawsze taki sam, niezależnie od momentu uzyskania wyniku.
W zdecydowanej większości praktycznie rozpatrywanych przypadków funkcja zysku jest nierosnąca – korzyść z wykonania zadania nie rośnie z upływem czasu. Szczególnym przypadkiem, gdy nie jest to spełnione, mogą być na przykład operacje giełdowe. Dla systemów czasu rzeczywistego charakterystyczne są trzy funkcje zysku:
1. |
2. |
3. |
Z tych trzech funkcji wyprowadza się przedstawiony dalej podział systemów czasu rzeczywistego na „hard” (1), „firm” (2) i „soft” (3).
- to chwila zlecenia zadania systemowi, uznawana za początek realizacji tego zadania,
- to najpóźniejsza chwila w której przetwarzanie może zostać zakończone (ang. deadline),
- w przypadku (3) funkcja jest ciągła w punktach i
- Dla wartości funkcji zysku nie określa się, gdyż oczywiście nie jest to sytuacja realizowalna fizycznie.
Praktyczne uproszczenie
W systemie czasu rzeczywistego przekształcanie danych przesyłanych do lub z zewnętrznego środowiska zachodzi w deterministycznie określonym czasie. Stosuje się pojęcie terminu (ang. deadline), oznaczające najdłuższy dopuszczalny czas reakcji systemu na wystąpienie zdarzenia.
System czasu rzeczywistego nie musi być szybki – istotne jest jedynie, aby jego działania spełniały narzucone ograniczenia czasowe.
Praktyka
System informatyczny czasu rzeczywistego
Często pod pojęciem „system czasu rzeczywistego” rozumie się systemy zbudowane z wykorzystaniem komputera, pracującego pod kontrolą systemu operacyjnego czasu rzeczywistego. W skład takiego systemu włącza się także jego niezbędne otoczenie, takie jak deterministyczne sieci transmisyjne (np. Fip, Modbus, Genius, CAN i in.), układy wejściowe i wyjściowe oraz urządzenia kontrolowane przez komputer (np. roboty).
Aby system składający się z komponentów był systemem czasu rzeczywistego, konieczne jest spełnianie wymogów systemu czasu rzeczywistego przez każdy z komponentów. W przypadku systemów informatycznych oznacza to, że zarówno sprzęt, system operacyjny, jak i oprogramowanie aplikacyjne muszą gwarantować dotrzymanie zdefiniowanych ograniczeń czasowych.
W realizacji oprogramowania działającego w czasie rzeczywistym niezbędna jest analiza wydajności działania aplikacji.
Podział
Praktyczny podział systemów czasu rzeczywistego wynika z opisanych wcześniej trzech charakterystycznych teoretycznych funkcji zysku.
- systemy o ostrych ograniczeniach czasowych (ang. hard real-time) – gdy przekroczenie terminu powoduje poważne, a nawet katastrofalne skutki, jak np. zagrożenie życia lub zdrowia ludzi, uszkodzenie lub zniszczenie urządzeń, przy czym nie jest istotna wielkość przekroczenia terminu a jedynie sam fakt jego przekroczenia,
- systemy o mocnych ograniczeniach czasowych (ang. firm real-time) – gdy fakt przekroczenia terminu powoduje całkowitą nieprzydatność wypracowanego przez system wyniku, jednakże nie oznacza to zagrożenia dla ludzi lub sprzętu; pojęcie to stosowane jest głównie w opisie teoretycznym baz danych czasu rzeczywistego,
- systemy o miękkich lub łagodnych ograniczeniach czasowych (ang. soft real-time) – gdy przekroczenie pewnego czasu powoduje negatywne skutki tym poważniejsze, im bardziej ten czas został przekroczony; w tym przypadku przez „negatywne skutki” rozumie się spadek funkcji zysku aż do osiągnięcia wartości zero w chwili
Kwestie sporne
Niektórzy autorzy negują powyższy podział, uznając za systemy czasu rzeczywistego wyłącznie te o ostrych ograniczeniach czasowych.
Część autorów za systemy czasu rzeczywistego uznaje tylko te, które są weryfikowalne metodami formalnymi lub zawężając jeszcze bardziej: tylko te, które już zostały zweryfikowane pozytywnie. Dlatego w tym ujęciu powszechnie stosowane określenie, że dane zadanie jest wykonywane „w czasie rzeczywistym”, jest traktowane jako nadużycie.
Zastosowanie
Systemy czasu rzeczywistego znajdują zastosowanie:
- w przemyśle do nadzorowania procesów technologicznych,
- do nadzorowania eksperymentów naukowych,
- w urządzeniach powszechnego użytku, jak sterowniki układów ABS i ESP czy wtrysku paliwa do silników samochodowych, bądź też urządzenia gospodarstwa domowego,
- w medycynie,
- w lotnictwie, zastosowaniach wojskowych i kosmicznych.
- w kasach biletowych (na przykład sprzedaży biletów lotniczych), oprogramowaniu bibliotek i podobnych usługach realizowanych w wielodostępnych systemach rozproszonych