System czasu rzeczywistego

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

System czasu rzeczywistego (ang. real-time system), to 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[edytuj | edytuj kod]

Funkcja zysku[edytuj | edytuj kod]

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: y=a 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.
RTOS hard.png

z \left(t \right)=\begin{cases}
u & t_{0} < t < t_{T}\\
- \infty & t \geqslant t_{T} \end{cases}
2.
RTOS firm.png

z \left(t \right)=\begin{cases}
u & t_{0} < t < t_{T}\\
0 & t \geqslant t_{T} \end{cases}
3.
RTOS soft.png

z \left(t \right)=\begin{cases}
u & t_{0} < t < t_{1}\\
u\,\frac {t_T - t}{t_T - t_1} & t_{1} < t < t_{T}\\
0 & t \geqslant t_{T} \end{cases}

Z tych trzech funkcji wyprowadza się przedstawiony dalej podział systemów czasu rzeczywistego na "hard"(1.), "firm"(2.) i "soft"(3.).

  • t_{0} to chwila zlecenia zadania systemowi, uznawana za początek realizacji tego zadania,
  • t_{T} to najpóźniejsza chwila w której przetwarzanie może zostać zakończone (ang. deadline),
  • w przypadku (3.) funkcja z\left(t\right) jest ciągła w punktach t_{1} i t_{T},
  • Dla t \leqslant t_{0} wartości funkcji zysku nie określa się, gdyż oczywiście nie jest to sytuacja realizowalna fizycznie.

Praktyczne uproszczenie[edytuj | edytuj kod]

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[edytuj | edytuj kod]

System informatyczny czasu rzeczywistego[edytuj | edytuj kod]

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ł[edytuj | edytuj kod]

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

Kwestie sporne[edytuj | edytuj kod]

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[edytuj | edytuj kod]

Systemy czasu rzeczywistego znajdują zastosowanie:

Zobacz też[edytuj | edytuj kod]