Szeregowanie w systemach czasu rzeczywistego Witold Paluszyński Katedra Cybernetyki i Robotyki Wydzia l Elektroniki, Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2011 2015 Ten utwór jest dost epny na licencji Creative Commons Uznanie autorstwa- Na tych samych warunkach 3.0 Unported Utwór udost epniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach. Udziela si e zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji treści utworu zgodnie z zasadami w/w licencji opublikowanej przez Creative Commons. Licencja wymaga podania oryginalnego autora utworu, a dystrybucja materia lów pochodnych może odbywać si e tylko na tych samych warunkach (nie można zastrzec, w jakikolwiek sposób ograniczyć, ani rozszerzyć praw do nich).
Szeregowanie procesów i watków Proces jest dynamicznym obiektem wykonujacym w systemie operacyjnym określony program. Istotna cecha procesu jest izolacja jego środowiska i zasobów od innych procesów, np. proces posiada w lasny przydzia l pami eci. W systemach z pami eci a wirtualna przestrzeń adresowa procesu jest adresowana liniowo od zera. Wi ekszość nowoczesnych systemów wspiera watki, nazywane czasem procesami lekkimi (lightweight processes). Watki funkcjonuja w ramach procesu, wykonuja kod procesu, i wspó ldziela mi edzy soba jego dane globalne i globalnie alokowane zasoby. Każdy watek posiada w lasna sekwencj e wykonywanych instrukcji programu, zwana śladem wykonania (execution trace). W kontekście systemów czasu rzeczywistego najcz eściej używa si e poj ecia zadania (task). W wielu przypadkach zadanie jest identyczne z procesem, aczkolwiek w niektórych systemach jest utożsamiane z watkiem. System operacyjny czasu rzeczywistego może wspierać tylko procesy, procesy z watkami, albo tylko watki. Podstawowa rola systemu w odniesieniu do zadań jest ich planowanie (scheduling), zwane również szeregowaniem, umożliwiajace ich równoleg le lub quasi-równoleg le wykonywanie. Planowanie oznacza wyznaczenie zadania, które powinno nast epnie rozpoczać wykonywanie na procesorze. Szeregowanie w systemach czasu rzeczywistego 3
Zadania Utworzenie zadania polega na przydzieleniu mu pami eci i za ladowaniu doń kodu programu, oraz zainicjalizowaniu struktury zwanej TCB (Task Control Block). Informacje typowo zawarte w TCB: ID zadania adres startowy kontekst: zawartość rejestrów, PC, rejestru stanu, itp. informacje do planowania: typ zadania, faza, okres, termin, liczba instancji, itp.... Umieszczenie przez planist e zadania w kolejce oznacza umieszczenie TCB tego zadania na liście innych TCB zadań w tej kolejce. Usuni ecie zadania z systemu polega na wykasowaniu jego TCB i dealokacji zajmowanej pami eci. Szeregowanie w systemach czasu rzeczywistego zadania 4
Zadania okresowe Zadania okresowe wykonuja si e w sposób powtarzalny. Ponieważ każdorazowe tworzenie, a nast epnie kasowanie zadania by loby nieefektywne, zatem system operacyjny, który wspiera zadania okresowe, po zakończeniu zadania reinicjalizuje je i umieszcza w kolejce zadań oczekujacych, a na poczatku nast epnego okresu wyzwala je (release), tzn. umieszcza w kolejce zadań gotowych. Do parametrów zadań okresowych, dostarczanych w chwili tworzenia zadania, i przechowywanych w TCB zadania należa: faza, okres, wzgl edny termin, i liczba instancji. Jeśli zadanie okresowe ma skończona liczb e instancji, to system może je wykasować po uruchomieniu zadana liczb e razy. Wiele systemów operacyjnych nie wspiera zadań okresowych. Moga one być zaimplementowane w postaci programu, który naprzemiennie wykonuje jakiś fragment swojego kodu, i zasypia do poczatku nast epnego okresu. Przyk ladowe systemy wspierajace zadania okresowe: Real-Time Mach, EPIQ. Szeregowanie w systemach czasu rzeczywistego zadania 5
Zadania aperiodyczne i sporadyczne Innym specyficznym rodzajem zadań sa zadania aperiodyczne. Sa one wyzwalane w odpowiedzi na wystapienie określonych zdarzeń. Zdarzenia te wyst epuj a sporadycznie i moga być wyzwolone przez zewn etrzne przerwanie. Po zakończeniu, zadanie aperiodyczne jest również reinicjalizowane i zawieszane. Zadania aperiodyczne moga być różnego rodzaju, moga pojawiać si e w dowolnym momencie, i moga mieć wymagania czasowe zarówno twarde jak i mi ekkie. Wśród nich jako specjalny rodzaj wyróżnia si e zadania sporadyczne. Zadania sporadyczne maja typowo twarde wymagania czasu rzeczywistego, ale jednocześnie maja określony maksymalna cz estotliwość pojawiania si e. Gdyby nie ta gwarancja, to nie da loby si e obliczyć bilansu czasowego ca lego systemu, i zapewnić spe lnienie przezeń ograniczeń czasu rzeczywistego. Szeregowanie w systemach czasu rzeczywistego zadania 6
Planowanie zadań Algorytmy planowania maja na celu zapewnienie spe lnienia wymagań czasowych ca lego systemu. Musza podejmować decyzj e o przydzielaniu zasobów systemu biorac pod uwag e najgorszy możliwy przypadek, lub czas odpowiedzi. G lówne grupy strategii planowania to: planowanie przed wykonaniem, i planowanie w czasie wykonywania. Celem planowania przed wykonaniem, albo inaczej: planowania statycznego, jest wyznaczenie odpowiedniej kolejności wykonywania zapewniajacej spe lnienie ograniczeń i bezkolizyjny dost ep do zasobów systemu. Planowanie przed wykonaniem może również minimalizować pewne narzuty systemowe, takie jak prze laczanie kontekstu, co zwi eksza szanse na wyznaczenie poprawnego porzadku wykonania. Planowanie w czasie wykonywania, inaczej: planowanie dynamiczne, zadaniom przyznawane sa priorytety, i zasoby sa nast epnie przydzielane wed lug tych priorytetów. W tym podejściu zadania moga generować przerwania i żadać zasobów w dowolny sposób. Jednak aby potwierdzić poprawność pracy systemu, konieczne sa testy i symulacje, w tym stochastyczne. Szeregowanie w systemach czasu rzeczywistego 7
Algorytmy planowania ogólnego przeznaczenia W systemach operacyjnych ogólnego przeznaczenia (GPOS - General Purpose Operating System) rozważa si e szereg modeli planowania, takich jak: algorytm FCFS First-Come-First-Served algorytm SJTF Shortest-Job-Time-First algorytm SRTF Shortest-Remaining-Time-First Algorytmy te sa zorientowane na maksymalizacj e wykorzystania procesora oraz skrócenie czasu oczekiwania dla zadań typowo obliczeniowych. W systemach czasu rzeczywistego nie maja one zastosowania. Do pewnego stopnia stosowane sa natomiast algorytmy: algorytm Round-Robin, inaczej planowania rotacyjnego algorytmy planowania oparte na priorytetach W przypadku wszystkich algorytmów planowania może być stosowane wyw laszczanie. Szeregowanie w systemach czasu rzeczywistego 8
Planowanie rotacyjne W najprostszym podejściu, planowanie rotacyjne (Round-Robin), zwane również karuzelowym, polega na sekwencyjnym uruchamianiu wszystkich zadań po kolei, aż do zakończenia każdego z nich. W wersji z podzia lem czasu, każde zadanie dostaje kwant czasu na wykonanie, i jeśli nie zakończy si e w ramach tego czasu, to generowane jest przerwanie, po którym zadanie jest sk ladowane i umieszczane na końcu kolejki zadań gotowych. Pierwsze zadanie z kolejki jest odtwarzane, i jego wykonywanie wznawiane. W efekcie, planowanie rotacyjne przydziela czas procesora sprawiedliwie wszystkim zadaniom o tym samym priorytecie. Szeregowanie w systemach czasu rzeczywistego 9
Planowanie rotacyjne plus priorytety Planowanie rotacyjne można po l aczyć z planowaniem priorytetowym z wyw laszczaniem. Szeregowanie w systemach czasu rzeczywistego 10
Strategie szeregowania RTOS priorytety i wyw laszczanie W najprostszym podejściu można osiagn ać wymagane szeregowanie zadań stosujac priorytety po laczone z wyw laszczaniem: Szeregowanie w systemach czasu rzeczywistego 11
Szeregowanie w systemach czasu rzeczywistego 12
Szeregowanie terminowe Jednym z popularnych i przydatnych podejść do szeregowania zadań w systemach czasu rzeczywistego jest szeregowanie terminowe (deadline scheduling). Opiera si e ono na uwzgl ednieniu wymagań wszystkich zadań sformu lowanych w postaci nieprzekraczalnych terminów wykonania. Moga to być terminy zakończenia lub terminy rozpocz ecia. Sam algorytm bywa nazywany EDF (Earliest Deadline First) i określa, że w pierwszej kolejności wykonywane jest zadanie, którego termin (rozpocz ecia lub zakończenia) przypada najwcześniej. Algorytm jest bardzo intuicyjny, ponieważ ludzie cz esto podejmuja decyzje w podobny sposób. Cz lowiek, który jest obciażony duża liczba zadań, do tego stopnia, że nie wie za co si e zabrać najpierw, cz esto zabiera si e za zadanie, którego nieuchronny termin wykonania nadchodzi najpierw. Szeregowanie w systemach czasu rzeczywistego 13
Szeregowanie terminowe dla zadań okresowych Decyzje planistyczne sa podejmowane okresowo. Odcinek czasu wystarczajaco d lugi aby wykonać wszystkie zadania okresowe jest nazywany ramka. D lugość ramki musi być równa co najmniej sumie czasów wykonywania wszystkich zadań gotowych. Szeregowanie w systemach czasu rzeczywistego 14
Szeregowanie w systemach czasu rzeczywistego 15
Szeregowanie w systemach czasu rzeczywistego 16
Szeregowanie cz estotliwościowe (RMS) Szeregowanie cz estotliwościowe (Rate-Monotonic Scheduling, RMS) polega na przydziale zadaniom sta lych priorytetów, odpowiadajacych ich okresom wykonywania. Poniższe twierdzenie, jedno z najważniejszych osiagni eć teoretycznych RTOS, określa optymalny algorytm planowania dla zestawu zadań okresowych. Twierdzenie (Liu): dla zestawu zadań okresowych, i planowania priorytetowego z wyw laszczaniem, przydzia l priorytetów nadajacy wyższe priorytety zadaniom z krótszym okresem wykonywania, daje optymalny algorytm planowania. Algorytm określania priorytetów zgodnie z powyższym twierdzeniem zwany jest algorytmem Rate-Monotonic. Szeregowanie w systemach czasu rzeczywistego 17
Szeregowanie w systemach czasu rzeczywistego 18
W lasności algorytmu planowania RM B edziemy si e pos lugiwać wartościa maksymalnego wykorzystania procesora U: U = n i=1 e i p i gdzie dla n zadań, e i jest czasem wykonania a p i okresem i-tego zadania. Twierdzenie (o kresie dla algorytmu RM): dla dowolnego zestawu n istnieje poprawny harmonogram planowania jeśli: U n(2 1/n 1) Szeregowanie w systemach czasu rzeczywistego 19
W lasności algorytmu planowania RM (cd.) Przedstawione twierdzenie określa, że im wi ecej zadań, tym trudniej b edzie znaleźć harmonogram planowania wykorzystujacy pe ln a wydajności procesora. Można obliczyć limit teoretyczny wykorzystania procesora dla nieskończonego zestawu zadań. Wynosi on ln2 0.69. Co wi ecej, już dla kilku zadań zbliża si e on do 70%. Dok ladniej: n 1 2 3 4 5 6... kres RMA 1.0 0.83 0.78 0.76 0.74 0.73... 0.69 Określony w twierdzeniu warunek jest jednak tylko warunkiem wystarczajacym. W określonych przypadkach jest możliwe planowanie zestawu zadań, których wykorzystanie procesora przekracza powyższy limit teoretyczny. Z lożone systemy czasu rzeczywistego osiagaj a cz esto wykorzystanie procesora rz edu 80% bez wi ekszych problemów. Szeregowanie w systemach czasu rzeczywistego 20
Planowanie RMS przyk lad Szeregowanie w systemach czasu rzeczywistego 21
Szeregowanie w systemach czasu rzeczywistego 22
Planowanie dynamiczne W przypadku gdy zestaw zadań nie ma sta lego, okresowego charakteru, metody planowania przed wykonaniem nie maja zastosowania. Planowanie w czasie wykonania, inaczej planowanie dynamiczne, musi brać pod uwag e wszystkie ograniczenia aktualnie istniejacych zadań. Szeregowanie w systemach czasu rzeczywistego 23
Szeregowanie w systemach czasu rzeczywistego 24
Zwróćmy uwag e, że szeregowanie terminowe (okresowe lub nie) ma sens bez stosowania wyw laszczania w przypadku uwzgl edniania nieprzekraczalnych terminów rozpocz ecia, natomiast w przypadku nieprzekraczalnych terminów zakończenia zwykle w laściwa jest strategia szeregowania z wyw laszczaniem. Szeregowanie w systemach czasu rzeczywistego 25
Planowanie dynamiczne algorytm EDF Jednym z prostych i dobrze znanych algorytmów planowania dynamicznego jest algorytm najbliższego terminu Earliest-Deadline-First (EDF). Najwyższy priorytet ma zawsze zadanie z najbliższym terminem (rozpocz ecia lub zakończenia). Można sformu lować nast epuj ace twierdzenie dla algorytmu EDF zastosowanego do zestawu zadań okresowych: Twierdzenie (o kresie dla algorytmu EDF): zestaw n zadań okresowych, których termin wykonania jest równy ich okresowi, może być poprawnie planowany algorytmem EDF jeśli: n i=1 e i p i 1 Algorytm EDF jest optymalny dla pojedynczego procesora z wyw laszczaniem. Inaczej, jeśli istnieje poprawny harmonogram, to EDF b edzie dzia la l poprawnie. Szeregowanie w systemach czasu rzeczywistego 26
Zadania sa uwalniane równocześnie, lecz τ 1 jest uruchamiane jako pierwsze ze wzgl edu na bliższy termin. Szeregowanie w systemach czasu rzeczywistego 27