System czasu rzeczywistego

Wikipedia:Weryfikowalność
Ten artykuł od 2007-12 wymaga zweryfikowania podanych informacji.
Należy podać wiarygodne źródła w formie przypisów bibliograficznych.
Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte.
Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary)
Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu.
Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu.

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: y = a {\displaystyle 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.
z ( t ) = { u t 0 < t < t T t t T {\displaystyle z(t)={\begin{cases}u&t_{0}<t<t_{T}\\-\infty &t\geqslant t_{T}\end{cases}}}
2.
z ( t ) = { u t 0 < t < t T 0 t t T {\displaystyle z(t)={\begin{cases}u&t_{0}<t<t_{T}\\0&t\geqslant t_{T}\end{cases}}}
3.
z ( t ) = { u t 0 < t < t 1 u t T t t T t 1 t 1 < t < t T 0 t t T {\displaystyle z(t)={\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 {\displaystyle t_{0}} to chwila zlecenia zadania systemowi, uznawana za początek realizacji tego zadania,
  • t T {\displaystyle t_{T}} to najpóźniejsza chwila w której przetwarzanie może zostać zakończone (ang. deadline),
  • w przypadku (3) funkcja z ( t ) {\displaystyle z(t)} jest ciągła w punktach t 1 {\displaystyle t_{1}} i t T , {\displaystyle t_{T},}
  • Dla t t 0 {\displaystyle t\leqslant t_{0}} 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 t T . {\displaystyle t_{T}.}

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

Zobacz też

Encyklopedia internetowa (komputerologia):