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[1].
Systemy czasu rzeczywistego najczęściej buduje się w oparciu o systemy mikroprocesorowe (komputery, mikrokontrolery, sterowniki PLC), jednak nie jest to konieczne – można tym pojęciem określić np. regulator pneumatyczny. Rozmiary takich systemów mogą być bardzo różne, począwszy od najmniejszych, na przykład stanowiących system sterowania pojedynczym urządzeniem (np. sterowane przy pomocy prostego mikrokontrolera urządzenia AGD, takie jak pralka czy lodówka) po rozproszone systemy dużej skali zawierające, na przykład, wiele sterowników PLC, mikrokonrolerów, serwerów, systemów SCADA wraz z infrastrukturą komunikacyjną, sterujących, na przykład, elektrownią, zakładem produkcyjnym czy urządzeniami badawczymi (takimi jak akceleratory cząstek elementarnych)[1][2][3].
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: 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
[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
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:
- 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ż
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- 1 2 John A. Stankonic. Real-Time Computing. „BYTE”. Vol. 17, No. 8, s. 155-160, sierpień 1992. (ang.).
- ↑ Marco Pezzetti, Control of large helium cryogenic systems: a case study on CERN LHC, DOI: 10.1140/epjti/s40485-021-00063-w (ang.).
- ↑ P. Gomes i inni, The control system for the cryogenics in the LHC tunnel, [w:] Ho-Myung CHANG i inni red., 22nd International Cryogenic Engineering Conference and 2008 International Cryogenic Materials Conference, The Korea Institute of Applied Superconductivity and Cryogenics, 2009 (ang.).


