Szeregowanie w systemach czasu rzeczywistego

Transkrypt

Szeregowanie w systemach czasu rzeczywistego
Szeregowanie w systemach czasu rzeczywistego
Witold Paluszyński
Katedra Cybernetyki i Robotyki
Wydzial Elektroniki, Politechnika Wroclawska
http://www.kcir.pwr.edu.pl/~witold/
2011–2015
Ten utwór jest doste֒ pny na licencji
Creative Commons Uznanie autorstwaNa tych samych warunkach 3.0 Unported
Utwór udoste֒ pniany na licencji Creative Commons: uznanie autorstwa, na tych
samych warunkach. Udziela sie֒ 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 materialów pochodnych może odbywać sie֒ 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 wykonuja֒cym w systemie operacyjnym
określony program. Istotna֒ cecha֒ procesu jest izolacja jego środowiska i zasobów
od innych procesów, np. proces posiada wlasny przydzial pamie֒ ci. W systemach
z pamie֒ cia֒ wirtualna֒ przestrzeń adresowa procesu jest adresowana liniowo od zera.
Wie֒ kszość nowoczesnych systemów wspiera watki,
nazywane czasem procesami
֒
lekkimi (lightweight processes). Wa֒tki funkcjonuja֒ w ramach procesu, wykonuja֒
kod procesu, i wspóldziela֒ mie֒ dzy soba֒ jego dane globalne i globalnie alokowane
zasoby. Każdy wa֒tek posiada wlasna֒ sekwencje֒ wykonywanych instrukcji programu,
zwana֒ śladem wykonania (execution trace).
W kontekście systemów czasu rzeczywistego najcześ
֒ ciej używa sie֒ poje֒ cia zadania
(task). W wielu przypadkach zadanie jest identyczne z procesem, aczkolwiek
w niektórych systemach jest utożsamiane z wa֒tkiem. System operacyjny czasu
rzeczywistego może wspierać tylko procesy, procesy z wa֒tkami, albo tylko wa֒tki.
Podstawowa֒ rola֒ systemu w odniesieniu do zadań jest ich planowanie
(scheduling ), zwane również szeregowaniem, umożliwiaja֒ce ich równolegle lub
quasi-równolegle wykonywanie. Planowanie oznacza wyznaczenie zadania, które
powinno naste֒ pnie rozpoczać
֒ wykonywanie na procesorze.
Szeregowanie w systemach czasu rzeczywistego
3
Zadania
Utworzenie zadania polega na przydzieleniu mu pamie֒ ci i zaladowaniu 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 planiste֒ zadania w kolejce oznacza umieszczenie TCB tego
zadania na liście innych TCB zadań w tej kolejce.
Usunie֒ cie zadania z systemu polega na wykasowaniu jego TCB i dealokacji
zajmowanej pamie֒ ci.
Szeregowanie w systemach czasu rzeczywistego — zadania
4
Zadania okresowe
Zadania okresowe wykonuja֒ sie֒ w sposób powtarzalny. Ponieważ każdorazowe
tworzenie, a naste֒ pnie kasowanie zadania byloby nieefektywne, zatem system
operacyjny, który wspiera zadania okresowe, po zakończeniu zadania reinicjalizuje je
i umieszcza w kolejce zadań oczekuja֒cych, a na pocza֒tku naste֒ pnego 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, wzgle֒ dny termin, i liczba
instancji. Jeśli zadanie okresowe ma skończona֒ liczbe֒ instancji, to system może je
wykasować po uruchomieniu zadana֒ liczbe֒ 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 pocza֒tku naste֒ pnego okresu. Przykladowe
systemy wspieraja֒ce 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 wysta֒pienie określonych zdarzeń. Zdarzenia te wyste֒ puja֒
sporadycznie i moga֒ być wyzwolone przez zewne֒ trzne przerwanie. Po zakończeniu,
zadanie aperiodyczne jest również reinicjalizowane i zawieszane.
Zadania aperiodyczne moga֒ być różnego rodzaju, moga֒ pojawiać sie֒ w dowolnym
momencie, i moga֒ mieć wymagania czasowe zarówno twarde jak i mie֒ kkie. Wśród
nich jako specjalny rodzaj wyróżnia sie֒ zadania sporadyczne. Zadania
sporadyczne maja֒ typowo twarde wymagania czasu rzeczywistego, ale jednocześnie
maja֒ określony maksymalna֒ cze֒ stotliwość pojawiania sie֒ . Gdyby nie ta gwarancja,
to nie daloby sie֒ obliczyć bilansu czasowego calego systemu, i zapewnić spelnienie
przezeń ograniczeń czasu rzeczywistego.
Szeregowanie w systemach czasu rzeczywistego — zadania
6
Planowanie zadań
Algorytmy planowania maja֒ na celu zapewnienie spelnienia wymagań czasowych
calego systemu. Musza֒ podejmować decyzje֒ o przydzielaniu zasobów systemu
biora֒c pod uwage֒ najgorszy możliwy przypadek, lub czas odpowiedzi.
Gló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 zapewniaja֒cej spelnienie
ograniczeń i bezkolizyjny doste֒ p do zasobów systemu. Planowanie przed
wykonaniem może również minimalizować pewne narzuty systemowe, takie jak
przela֒czanie kontekstu, co zwie֒ ksza szanse na wyznaczenie poprawnego porza֒dku
wykonania.
Planowanie w czasie wykonywania, inaczej: planowanie dynamiczne, zadaniom
przyznawane sa֒ priorytety, i zasoby sa֒ naste֒ pnie przydzielane wedlug tych
priorytetów. W tym podejściu zadania moga֒ generować przerwania i ża֒dać 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 sie֒ 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 maksymalizacje֒ 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
wywlaszczanie.
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 podzialem czasu, każde zadanie dostaje kwant czasu na wykonanie,
i jeśli nie zakończy sie֒ w ramach tego czasu, to generowane jest przerwanie, po
którym zadanie jest skladowane 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 pola֒czyć z planowaniem priorytetowym
z wywlaszczaniem.
Szeregowanie w systemach czasu rzeczywistego
10
Strategie szeregowania RTOS – priorytety i wywlaszczanie
W najprostszym podejściu można osia֒gnać
֒ wymagane szeregowanie zadań stosuja֒c
priorytety pola֒czone z wywlaszczaniem:
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
sie֒ ono na uwzgle֒ dnieniu wymagań wszystkich zadań sformulowanych w postaci
nieprzekraczalnych terminów wykonania. Moga֒ to być terminy zakończenia lub
terminy rozpocze֒ cia.
Sam algorytm bywa nazywany EDF (Earliest Deadline First) i określa, że
w pierwszej kolejności wykonywane jest zadanie, którego termin (rozpocze֒ cia lub
zakończenia) przypada najwcześniej.
Algorytm jest bardzo intuicyjny, ponieważ ludzie cze֒ sto podejmuja֒ decyzje
w podobny sposób. Czlowiek, który jest obciaż
֒ ony duża֒ liczba֒ zadań, do tego
stopnia, że nie wie za co sie֒ zabrać najpierw, cze֒ sto zabiera sie֒ 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 wystarczaja֒co dlugi
aby wykonać wszystkie zadania okresowe jest nazywany ramka֒. Dlugość 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 czestotliwościowe
(RMS)
֒
Szeregowanie czestotliwościowe
(Rate-Monotonic Scheduling, RMS) polega
֒
na przydziale zadaniom stalych priorytetów, odpowiadaja֒cych ich okresom
wykonywania. Poniższe twierdzenie, jedno z najważniejszych osia֒gnieć
֒ teoretycznych
RTOS, określa optymalny algorytm planowania dla zestawu zadań okresowych.
Twierdzenie (Liu): dla zestawu zadań okresowych, i planowania priorytetowego
z wywlaszczaniem, przydzial priorytetów nadaja֒cy 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
Wlasności algorytmu planowania RM
Be֒ dziemy sie֒ poslugiwać wartościa֒ maksymalnego wykorzystania procesora U :
U=
n
X
ei
i=1
pi
gdzie dla n zadań, ei jest czasem wykonania a pi okresem i-tego zadania.
Twierdzenie (o kresie dla algorytmu RM): dla dowolnego zestawu n istnieje
poprawny harmonogram planowania jeśli:
U ≤ n(21/n − 1)
Szeregowanie w systemach czasu rzeczywistego
19
Wlasności algorytmu planowania RM (cd.)
Przedstawione twierdzenie określa, że im wie֒ cej zadań, tym trudniej be֒ dzie znaleźć
harmonogram planowania wykorzystuja֒cy pelna֒ wydajności procesora. Można
obliczyć limit teoretyczny wykorzystania procesora dla nieskończonego zestawu
zadań. Wynosi on ln 2 ≈ 0.69. Co wie֒ cej, już dla kilku zadań zbliża sie֒ on do 70%.
Dokladniej:
n
kres RMA
1
1.0
2
0.83
3
0.78
4
0.76
5
0.74
6
0.73
...
...
∞
0.69
Określony w twierdzeniu warunek jest jednak tylko warunkiem wystarczaja֒cym.
W określonych przypadkach jest możliwe planowanie zestawu zadań, których
wykorzystanie procesora przekracza powyższy limit teoretyczny. Zlożone systemy
czasu rzeczywistego osia֒gaja֒ cze֒ sto wykorzystanie procesora rze֒ du 80% bez
wie֒ kszych problemów.
Szeregowanie w systemach czasu rzeczywistego
20
Planowanie RMS — przyklad
Szeregowanie w systemach czasu rzeczywistego
21
Szeregowanie w systemach czasu rzeczywistego
22
Planowanie dynamiczne
W przypadku gdy zestaw zadań nie ma stalego, okresowego charakteru, metody
planowania przed wykonaniem nie maja֒ zastosowania. Planowanie w czasie
wykonania, inaczej planowanie dynamiczne, musi brać pod uwage֒ wszystkie
ograniczenia aktualnie istnieja֒cych zadań.
Szeregowanie w systemach czasu rzeczywistego
23
Szeregowanie w systemach czasu rzeczywistego
24
Zwróćmy uwage֒ , że szeregowanie terminowe (okresowe lub nie) ma sens bez
stosowania wywlaszczania w przypadku uwzgle֒ dniania nieprzekraczalnych terminów
rozpocze֒ cia, natomiast w przypadku nieprzekraczalnych terminów zakończenia
zwykle wlaściwa jest strategia szeregowania z wywlaszczaniem.
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 (rozpocze֒ cia lub zakończenia).
Można sformulować naste֒ puja֒ce 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
X
ei
i=1
pi
≤1
Algorytm EDF jest optymalny dla pojedynczego procesora z wywlaszczaniem.
Inaczej, jeśli istnieje poprawny harmonogram, to EDF be֒ dzie dzialal poprawnie.
Szeregowanie w systemach czasu rzeczywistego
26
Zadania sa֒ uwalniane równocześnie, lecz τ1 jest uruchamiane jako pierwsze ze
wzgle֒ du na bliższy termin.
Szeregowanie w systemach czasu rzeczywistego
27

Podobne dokumenty