Analiza harmonogramów systemów czasu rzeczywistego
Termin analiza planowania w obliczeniach czasu rzeczywistego obejmuje analizę i testowanie systemu planowania oraz algorytmów używanych w aplikacjach czasu rzeczywistego. W informatyce analiza planowania w czasie rzeczywistym to ocena, testowanie i weryfikacja systemu planowania i algorytmów używanych w operacjach w czasie rzeczywistym. W przypadku operacji krytycznych system czasu rzeczywistego musi zostać przetestowany i zweryfikowany pod kątem wydajności.
System planowania w czasie rzeczywistym składa się z harmonogramu, zegara i elementów sprzętowych do przetwarzania. W systemie czasu rzeczywistego proces lub zadanie można zaplanować; zadania są przyjmowane przez system czasu rzeczywistego i realizowane zgodnie z określonym terminem wykonania zadania w zależności od charakterystyki algorytmu szeregowania. Modelowanie i ocena systemu planowania w czasie rzeczywistym polega na analizie zdolności algorytmu do dotrzymania terminu realizacji procesu. Termin definiuje się jako czas potrzebny do wykonania zadania.
Na przykład w algorytmie planowania w czasie rzeczywistym termin można ustawić na pięć nanosekund. W operacji krytycznej zadanie musi zostać wykonane w czasie określonym terminem (tj. pięć nanosekund). Zadanie w systemie czasu rzeczywistego musi zostać zakończone „ani za wcześnie, ani za późno;..”. Mówi się, że system jest nieplanowalny, gdy zadania nie mogą dotrzymać określonych terminów. Zadanie można sklasyfikować jako proces okresowy lub nieokresowy.
Klasyfikacje
Kryteria czasu rzeczywistego można podzielić na twarde , twarde lub miękkie . Harmonogram ustawia algorytmy wykonywania zadań według określonej kolejności. Istnieje wiele modeli matematycznych reprezentujących system planowania, większość implementacji algorytmu planowania w czasie rzeczywistym jest modelowana pod kątem implementacji konfiguracji jednoprocesorowych lub wieloprocesorowych. Bardziej wymagający algorytm planowania występuje w wieloprocesorach, nie zawsze jest możliwe zaimplementowanie algorytmu planowania jednoprocesorowego w wieloprocesorze. Algorytmy stosowane w analizie planowania „można sklasyfikować jako wywłaszczające lub nie wywłaszczające” .
Algorytm planowania określa, w jaki sposób zadania są przetwarzane przez system planowania. Ogólnie rzecz biorąc, w algorytmie systemu planowania czasu rzeczywistego każdemu zadaniu przypisany jest opis, termin wykonania oraz identyfikator (wskazujący priorytet). Wybrany algorytm planowania określa, w jaki sposób priorytety są przydzielane poszczególnym zadaniom. Algorytm planowania w czasie rzeczywistym można sklasyfikować jako statyczny lub dynamiczny. W przypadku harmonogramu statycznego priorytety zadań są określane przed uruchomieniem systemu. Dynamiczny harmonogram określa priorytety zadań w trakcie działania. Zadania są przyjmowane przez elementy sprzętowe w systemie planowania czasu rzeczywistego ze środowiska komputerowego i przetwarzane w czasie rzeczywistym. Sygnał wyjściowy wskazuje stan przetwarzania. Termin zadania wskazuje czas ustawiony na ukończenie każdego zadania.
Nie zawsze jest możliwe dotrzymanie wymaganego terminu; stąd dalsza weryfikacja algorytmu szeregowania musi być przeprowadzona. Za pomocą algorytmu planowania dynamicznego można zaimplementować dwa różne modele; termin realizacji zadania można przypisać zgodnie z priorytetem zadania (najwcześniejszy termin) lub czas realizacji każdego zadania można przypisać, odejmując od terminu czas przetwarzania (najmniejsza pobłażliwość). Terminy i wymagany czas wykonania zadania muszą być wcześniej zrozumiane, aby zapewnić efektywne wykorzystanie czasu wykonania elementów przetwarzających.
Testowanie i weryfikacja
Weryfikacja wydajności i wykonanie algorytmu szeregowania w czasie rzeczywistym odbywa się poprzez analizę czasów wykonania algorytmu. Weryfikacja wydajności programu planującego w czasie rzeczywistym będzie wymagała przetestowania algorytmu planowania w różnych scenariuszach testowych, w tym w najgorszym przypadku czas wykonania . Te scenariusze testowania obejmują najgorsze przypadki i niekorzystne przypadki, aby ocenić wydajność algorytmu. Obliczenia czasu wymagane do analizy systemów szeregowania wymagają oceny algorytmu na poziomie kodu.
Do testowania systemu planowania w systemie czasu rzeczywistego można zastosować różne metody. Niektóre metody obejmują: weryfikacje wejścia/wyjścia i analizę kodu. Jedną z metod jest testowanie każdego warunku wejściowego i obserwacja danych wyjściowych. W zależności od liczby danych wejściowych takie podejście może wymagać dużego wysiłku. Inną szybszą i bardziej ekonomiczną metodą jest podejście oparte na ryzyku, w którym do testów wybiera się reprezentatywne krytyczne dane wejściowe. Ta metoda jest bardziej ekonomiczna, ale może skutkować mniej niż optymalnymi wnioskami dotyczącymi ważności systemu, jeśli zastosowane zostanie niewłaściwe podejście. Wymagania dotyczące ponownego testowania po zmianach w systemie planowania są rozpatrywane indywidualnie dla każdego przypadku.
Testowanie i weryfikacja systemów czasu rzeczywistego nie powinna ograniczać się do weryfikacji wejść/wyjść i kodów, ale jest przeprowadzana również w uruchomionych aplikacjach metodami inwazyjnymi lub nieinwazyjnymi.
Zobacz też
Linki zewnętrzne
- Komitet techniczny IEEE ds. systemów czasu rzeczywistego
- Obliczenia czasu rzeczywistego (temat Elsevier)
- https://www.cs.rutgers.edu/~pxk/416/notes/08-rt_scheduling.html
- RT.js: Praktyczne planowanie w czasie rzeczywistym dla aplikacji internetowych