Szeregowanie w systemach czasu rzeczywistego

Szeregowanie w systemach czasu rzeczywistego Witold Paluszyn´ski Katedra Cybernetyki i Robotyki Wydzial Elektroniki, Politechnika Wroclawska http://ww...
26 downloads 0 Views 368KB Size
Szeregowanie w systemach czasu rzeczywistego Witold Paluszyn´ski Katedra Cybernetyki i Robotyki Wydzial Elektroniki, Politechnika Wroclawska http://www.kcir.pwr.edu.pl/~witold/ 2011–2015 Ten utw´or jest doste֒ pny na licencji Creative Commons Uznanie autorstwaNa tych samych warunkach 3.0 Unported Utw´or udoste֒ pniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach. Udziela sie֒ zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji tre´sci utworu zgodnie z zasadami w/w licencji opublikowanej przez Creative Commons. Licencja wymaga podania oryginalnego autora utworu, a dystrybucja material´ow pochodnych moz˙ e odbywa´c sie֒ tylko na tych samych warunkach (nie moz˙ na zastrzec, w jakikolwiek spos´ob ograniczy´c, ani rozszerzy´c praw do nich).

Szeregowanie proces´ ow i watk´ ow ֒ Proces jest dynamicznym obiektem wykonuja֒cym w systemie operacyjnym okre´slony program. Istotna֒ cecha֒ procesu jest izolacja jego ´srodowiska i zasob´ow od innych proces´ow, np. proces posiada wlasny przydzial pamie֒ ci. W systemach z pamie֒ cia֒ wirtualna֒ przestrzen´ adresowa procesu jest adresowana liniowo od zera. Wie֒ kszo´s´c nowoczesnych system´ow wspiera watki, nazywane czasem procesami ֒ lekkimi (lightweight processes). Wa֒tki funkcjonuja֒ w ramach procesu, wykonuja֒ kod procesu, i wsp´oldziela֒ mie֒ dzy soba֒ jego dane globalne i globalnie alokowane zasoby. Kaz˙ dy wa֒tek posiada wlasna֒ sekwencje֒ wykonywanych instrukcji programu, zwana֒ ´sladem wykonania (execution trace). W kontek´scie system´ow czasu rzeczywistego najcze´ ֒ sciej uz˙ ywa sie֒ poje֒ cia zadania (task). W wielu przypadkach zadanie jest identyczne z procesem, aczkolwiek w niekt´orych systemach jest utoz˙ samiane z wa֒tkiem. System operacyjny czasu rzeczywistego moz˙ e wspiera´c tylko procesy, procesy z wa֒tkami, albo tylko wa֒tki. Podstawowa֒ rola֒ systemu w odniesieniu do zadan´ jest ich planowanie (scheduling ), zwane r´owniez˙ szeregowaniem, umoz˙ liwiaja֒ce ich r´ownolegle lub quasi-r´ ownolegle wykonywanie. Planowanie oznacza wyznaczenie zadania, kt´ore powinno naste֒ pnie rozpocza´ ֒c wykonywanie na procesorze. Szeregowanie w systemach czasu rzeczywistego

3

Zadania Utworzenie zadania polega na przydzieleniu mu pamie֒ ci i zaladowaniu don´ kodu programu, oraz zainicjalizowaniu struktury zwanej TCB (Task Control Block). Informacje typowo zawarte w TCB: • ID zadania • adres startowy • kontekst: zawarto´s´c rejestr´ow, 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´scie innych TCB zadan´ 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´ob powtarzalny. Poniewaz˙ kaz˙ dorazowe tworzenie, a naste֒ pnie kasowanie zadania byloby nieefektywne, zatem system operacyjny, kt´ory wspiera zadania okresowe, po zakon´czeniu zadania reinicjalizuje je i umieszcza w kolejce zadan´ oczekuja֒cych, a na pocza֒tku naste֒ pnego okresu wyzwala je (release), tzn. umieszcza w kolejce zadan´ gotowych. Do parametr´ow zadan´ okresowych, dostarczanych w chwili tworzenia zadania, i przechowywanych w TCB zadania nalez˙ a֒: faza, okres, wzgle֒ dny termin, i liczba instancji. Je´sli zadanie okresowe ma skon´czona֒ liczbe֒ instancji, to system moz˙ e je wykasowa´c po uruchomieniu zadana֒ liczbe֒ razy. Wiele system´ow operacyjnych nie wspiera zadan´ okresowych. Moga֒ one by´c zaimplementowane w postaci programu, kt´ory naprzemiennie wykonuje jaki´s 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 zadan´ sa֒ zadania aperiodyczne. Sa֒ one wyzwalane w odpowiedzi na wysta֒pienie okre´slonych zdarzen´. Zdarzenia te wyste֒ puja֒ sporadycznie i moga֒ by´c wyzwolone przez zewne֒ trzne przerwanie. Po zakon´czeniu, zadanie aperiodyczne jest r´owniez˙ reinicjalizowane i zawieszane. Zadania aperiodyczne moga֒ by´c r´oz˙ nego rodzaju, moga֒ pojawia´c sie֒ w dowolnym momencie, i moga֒ mie´c wymagania czasowe zar´owno twarde jak i mie֒ kkie. W´sr´od nich jako specjalny rodzaj wyr´oz˙ nia sie֒ zadania sporadyczne. Zadania sporadyczne maja֒ typowo twarde wymagania czasu rzeczywistego, ale jednocze´snie maja֒ okre´slony maksymalna֒ cze֒ stotliwo´s´c pojawiania sie֒ . Gdyby nie ta gwarancja, to nie daloby sie֒ obliczy´c bilansu czasowego calego systemu, i zapewni´c spelnienie przezen´ ograniczen´ czasu rzeczywistego.

Szeregowanie w systemach czasu rzeczywistego — zadania

6

Planowanie zada´ n Algorytmy planowania maja֒ na celu zapewnienie spelnienia wymagan´ czasowych calego systemu. Musza֒ podejmowa´c decyzje֒ o przydzielaniu zasob´ow systemu biora֒c pod uwage֒ najgorszy moz˙ liwy przypadek, lub czas odpowiedzi. Gl´owne grupy strategii planowania to: planowanie przed wykonaniem, i planowanie w czasie wykonywania. Celem planowania przed wykonaniem, albo inaczej: planowania statycznego, jest wyznaczenie odpowiedniej kolejno´sci wykonywania zapewniaja֒cej spelnienie ograniczen´ i bezkolizyjny doste֒ p do zasob´ow systemu. Planowanie przed wykonaniem moz˙ e r´owniez˙ minimalizowa´c 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´ow. W tym podej´sciu zadania moga֒ generowa´c przerwania i z˙ a֒da´c zasob´ow w dowolny spos´ob. Jednak aby potwierdzi´c poprawno´s´c pracy systemu, konieczne sa֒ testy i symulacje, w tym stochastyczne. Szeregowanie w systemach czasu rzeczywistego

7

Algorytmy planowania og´ olnego przeznaczenia W systemach operacyjnych og´olnego przeznaczenia (GPOS - General Purpose Operating System) rozwaz˙ 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´ocenie czasu oczekiwania dla zadan´ 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´ow planowania moz˙ e by´c stosowane wywlaszczanie.

Szeregowanie w systemach czasu rzeczywistego

8

Priorytety i wywlaszczanie W najprostszym podej´sciu moz˙ na osia֒gna´ ´ stosuja֒c ֒c wymagane szeregowanie zadan priorytety pola֒czone z wywlaszczaniem:

Szeregowanie w systemach czasu rzeczywistego

9

Problemy z priorytetami Przykladem zadania, kt´oremu trudno przypisa´c wla´sciwy priorytet w systemie z wywlaszczaniem sterowanym priorytetami jest zadanie watchdoga. Zadanie takie wykonuje sie֒ okresowo i bardzo dlugo. Jego szeregowanie (cykliczne) moz˙ na op´o´znia´c w czasie, ale tylko do pewnego momentu. Nadanie mu zbyt niskiego priorytetu w oczywisty spos´ob moz˙ e doprowadzi´c do jego zaglodzenia przez inne zadania. Jednak nadanie mu wysokiego priorytetu moz˙ e spowodowa´c, z˙ e watchdog wywlaszczy jaki´s istotnie krytyczny wa֒tek. Przykladem innych zadan´ trudnych do szeregowania metoda֒ priorytet´ow sa֒ zadania typowo obliczeniowe. Zadania te zajmuja֒ duz˙ o czasu procesora, i jakkolwiek moga֒ by´c okresowo wywlaszczane przez zadania o krytycznych wymaganiach czasowych, to trudno zapewni´c, by wiele takich zadan´ poprawnie sie֒ wykonywalo. Wla´sciwym sposobem szeregowania dla nich bylby algorytm typu RR (Round-Robin — rotacyjny) ignoruja֒cy priorytety. Innym sposobem, zgodnym z szeregowaniem priorytetowym, byloby okresowe dobrowolne zwalnianie procesora przez takie zadania, jednak taka֒ metode֒ trudno jest poprawnie zaimplementowa´c.

Szeregowanie w systemach czasu rzeczywistego

10

Zadania okresowe W systemach czasu rzeczywistego cze֒ sto mamy do czynienia z zadaniami okresowymi. Zadania takie musza֒ by´c wykonywane cyklicznie w nieskon´czonej pe֒ tli powt´orzen´. Zadaniem systemu jest albo uruchamianie takich zadan´ z okre´slonym okresem, albo — bardziej typowo — okresowe wznawianie takich zadan´, kt´ore nigdy sie֒ nie kon´cza֒, tylko po wznowieniu wykonuja֒ swoje obliczenia i same zawieszaja֒ sie֒ zwalniaja֒c procesor.

Moz˙ emy traktowa´c instancje danego zadania jako oddzielne zadania, kt´ore podlegaja֒ szeregowaniu przez system.

Szeregowanie w systemach czasu rzeczywistego

11

Szeregowanie w systemach czasu rzeczywistego

12

Szeregowanie czestotliwo´ sciowe ֒ Cze֒ sto stosowana֒ strategia֒ dla zadan´ okresowych w RTS jest szeregowanie czestotliwo´ sciowe monotoniczne RMS (Rate Monotonic Scheduling). Metoda ֒ polega na przypisaniu zadaniom statycznych priorytet´ow proporcjonalnych do ich cze֒ stotliwo´sci wykonywania. Zadanie o wyz˙ szej cze֒ stotliwo´sci ma zawsze priorytet nad zadaniem o cze֒ stotliwo´sci niz˙ szej. Wykonuja֒ce sie֒ zadanie jest wywlaszczane gdy uwolniona zostala kolejna instancja zadania o wyz˙ szej cze֒ stotliwo´sci.

Szeregowanie w systemach czasu rzeczywistego

13

Szeregowanie czestotliwo´ sciowe (RMS) — wlasno´sci ֒ RMS jest algorytmem optymalnym po´sr´od algorytm´ow z priorytetami statycznymi. Je´sli zbi´or zadan´ da sie֒ szeregowa´c algorytmem z priorytetami statycznymi, to RMS r´owniez˙ be֒ dzie je poprawnie szeregowa´c. Twierdzenie (Liu): dla zestawu zadan´ okresowych, i planowania priorytetowego z wywlaszczaniem, przydzial priorytet´ow nadaja֒cy wyz˙ sze priorytety zadaniom z kr´otszym okresem wykonywania, daje optymalny algorytm planowania.

Szeregowanie w systemach czasu rzeczywistego

14

Szeregowanie czestotliwo´ sciowe (RMS) — wlasno´sci (cd.) ֒ Be֒ dziemy sie֒ poslugiwa´c warto´scia֒ maksymalnego wykorzystania procesora U : U=

n X ei i=1

pi

gdzie dla n zadan´, ei jest czasem wykonania a pi okresem i-tego zadania. Twierdzenie (o kresie dla algorytmu RMS): dla dowolnego zestawu n istnieje poprawny harmonogram planowania je´sli: U ≤ n(21/n − 1)

Szeregowanie w systemach czasu rzeczywistego

15

Szeregowanie czestotliwo´ sciowe (RMS) — wlasno´sci (cd.) ֒ Przedstawione twierdzenie okre´sla, z˙ e im wie֒ cej zadan´, tym trudniej be֒ dzie znale´z´c harmonogram planowania wykorzystuja֒cy pelna֒ wydajno´sci procesora. Moz˙ na obliczy´c limit teoretyczny wykorzystania procesora dla nieskon´czonego zestawu zadan´. Wynosi on ln 2 ≈ 0.69. Co wie֒ cej, juz˙ dla kilku zadan´ zbliz˙ a sie֒ on do 70%. Dokladniej: n zadan´ kres RMS

1 1.0

2 0.83

3 0.78

4 0.76

5 0.74

6 0.73

... ...

∞ 0.69

Strategia RMS pozwala z g´ory obliczy´c czy system be֒ dzie w stanie wykonywa´c wszystkie zadania zgodnie z ich wymaganiami, a takz˙ e, je´sli byloby to niemoz˙ liwe, to moz˙ na obliczy´c kt´ore zadania nie zmieszcza֒ sie֒ w swoich rez˙ imach czasowych. Zauwaz˙ my, z˙ e je´sli uruchomione w systemie zadania okresowe obcia˙ ֒zaja֒ mniej niz˙ 0.69 procesora, to moz˙ na uruchomi´c dodatkowe zadania, niedzialaja֒ce w czasie rzeczywistym, kt´ore moga֒ wykorzysta´c pozostale wolne 30% mocy procesora.

Szeregowanie w systemach czasu rzeczywistego

16

Szeregowanie czestotliwo´ sciowe (RMS) — wlasno´sci (cd.) ֒ RMS nie jest strategia֒ globalnie optymalna֒. Okre´slony w twierdzeniu warunek jest tylko warunkiem wystarczaja֒cym, ale nie jest koniecznym dla realizowalno´sci danego zestawu zadan´. W okre´slonych przypadkach jest moz˙ liwe planowanie zestawu zadan´, kt´orych wykorzystanie procesora przekracza podany limit teoretyczny. Zloz˙ one systemy czasu rzeczywistego osia֒gaja֒ cze֒ sto wykorzystanie procesora rze֒ du 80% bez wie֒ kszych problem´ow. Dla losowo wygenerowanego zestawu zadan´ okresowych szeregowanie jest moz˙ liwe do warto´sci okolo 0.85 (ale bez gwarancji).

Szeregowanie w systemach czasu rzeczywistego

17

Planowanie RMS — przyklad

Szeregowanie w systemach czasu rzeczywistego

18

Szeregowanie terminowe Istota֒ przetwarzania w RTOS jest aby okre´slone zdarzenia wyste֒ powaly w okre´slonym czasie. Je´sli zdefiniujemy poz˙ a֒dany czas rozpocze֒ cia i/lub zakon´czenia wszystkich zadan´, to system moz˙ e obliczy´c wla´sciwe szeregowanie zapewniaja֒ce spelnienie wszystkich ograniczen´. Taka metoda jest nazywana szeregowaniem terminowym (deadline scheduling). Stosowana jest skr´otowa nazwa tego algorytmu EDF (earliest deadline first).

Szeregowanie terminowe moz˙ e uwzgle֒ dnia´c terminy rozpocze֒ cia lub zakon´czenia zadan´. Typowym, cze֒ sto spotykanym terminem wykonania (zakon´czenia) instancji zadania jest moment czasowy uwolnienia naste֒ pnej jego instancji. Algorytm jest bardzo intuicyjny, poniewaz˙ ludzie cze֒ sto podejmuja֒ decyzje w podobny spos´ob. Czlowiek, kt´ory jest obcia˙ ´, do tego ֒zony duz˙ a֒ liczba֒ zadan stopnia, z˙ e nie wie za co sie֒ zabra´c najpierw, cze֒ sto zabiera sie֒ za zadanie, kt´orego nieuchronny termin wykonania nadchodzi najpierw. Szeregowanie w systemach czasu rzeczywistego

19

Szeregowanie terminowe dla zada´ n okresowych

Szeregowanie w systemach czasu rzeczywistego

20

Szeregowanie terminowe — wlasno´sci Algorytm szeregowania terminowego EDF dla pojedynczego procesora z wywlaszczaniem jest optymalny w takim sensie, z˙ e je´sli dany zbi´or zadan´, kaz˙ de z okre´slonym okresem, czasem uwolnienia, czasem obliczen´, i terminem zakon´czenia, jest szeregowalny jakimkolwiek algorytmem zapewniaja֒cym dotrzymanie czas´ow ukon´czenia, to EDF r´owniez˙ be֒ dzie poprawnie szeregowa´c ten zbi´or zadan´. Je´sli terminy zakon´czenia zadan´ sa֒ r´owne kon´cowi ich okres´ow, to EDF be֒ dzie je poprawnie szeregowal wlacznie do wsp´olczynnika wykorzystania procesora U = 100%. Zatem warunkiem szeregowalno´sci zestawu zadan´ algorytmem EDF jest nieprzekroczenie 100% wykorzystania procesora, co stanowi przewage֒ tego algorytmu nad RMS. Jednak gdy system zaczyna by´c przecia˙ ֒zony to nie jest moz˙ liwe wyznaczenie zadania, kt´ore przekroczy sw´oj termin (bo zalez˙ y to od konkretnych zadan´ termin´ow, oraz momentu, w kt´orym wysta֒pi przecia˙ ֒zenie). Stanowi to istotna֒ wade֒ tego algorytmu, w odr´oz˙ nieniu od algorytmu RMS. Zwr´o´cmy uwage֒ , z˙ e szeregowanie terminowe (okresowe lub nie) ma sens (r´owniez˙ ) bez stosowania wywlaszczania w przypadku uwzgle֒ dniania nieprzekraczalnych termin´ow rozpocze֒ cia, natomiast w przypadku nieprzekraczalnych termin´ow zakon´czenia nalez˙ y stosowa´c wywlaszczanie. Szeregowanie w systemach czasu rzeczywistego

21

Szeregowanie w systemach czasu rzeczywistego

22

Planowanie dynamiczne — procesy nieokresowe W przypadku gdy zestaw zadan´ nie ma stalego, okresowego charakteru, metody planowania przed wykonaniem nie maja֒ zastosowania. Planowanie w czasie wykonania, inaczej planowanie dynamiczne, musi bra´c pod uwage֒ wszystkie ograniczenia aktualnie istnieja֒cych zadan´. Moz˙ emy wtedy zastosowa´c algorytm EDF.

Szeregowanie w systemach czasu rzeczywistego

23

Zwr´o´cmy uwage֒ , z˙ e szeregowanie terminowe (okresowe lub nie) ma sens bez stosowania wywlaszczania w przypadku uwzgle֒ dniania nieprzekraczalnych termin´ow rozpocze֒ cia, natomiast w przypadku nieprzekraczalnych termin´ow zakon´czenia zwykle wla´sciwa jest strategia szeregowania z wywlaszczaniem.

Szeregowanie w systemach czasu rzeczywistego

24

Algorytm EDF — wlasno´sci Moz˙ na sformulowa´c naste֒ puja֒ce twierdzenie dla algorytmu EDF zastosowanego do zestawu zadan´ okresowych: Twierdzenie (o kresie dla algorytmu EDF): zestaw n zadan´ okresowych, kt´orych termin wykonania jest r´owny ich okresowi, moz˙ e by´c poprawnie planowany algorytmem EDF je´sli: n X ei i=1

pi

≤1

Algorytm EDF jest optymalny dla pojedynczego procesora z wywlaszczaniem. Inaczej, je´sli istnieje poprawny harmonogram, to EDF be֒ dzie dzialal poprawnie.

Szeregowanie w systemach czasu rzeczywistego

25

Zadania sa֒ uwalniane r´ownocze´snie, lecz τ1 jest uruchamiane jako pierwsze ze wzgle֒ du na bliz˙ szy termin.

Szeregowanie w systemach czasu rzeczywistego

26

Szeregowanie przez partycjonowanie Innym podej´sciem do algorytm´ow szeregowania RTOS jest partycjonowanie, czyli podzial na podsystemy, kt´ore otrzymuja֒ z g´ory okre´slona֒, gwarantowana֒ cze´ c ֒ s´ czasu procesora.

W tej architekturze system zapewnia przydzial procesora, ochrone֒ pamie֒ ci, i komunikacje֒ mie֒ dzyprocesowa֒ pomie֒ dzy partycjami, natomiast w ramach danej partycji funkcjonuje szeregowanie priorytetowe.

Szeregowanie w systemach czasu rzeczywistego

27

Szeregowanie przez partycjonowanie (cd.) Metoda partycjonowania dziala poprawnie i bardzo niezawodnie, i jest szeroko stosowana w silnych systemach RT, szczeg´olnie wojskowych, naprowadzania rakiet, awioniki, itp. Jej typowe zastosowania to sa֒ systemy statyczne, gdzie wykonano bardzo dokladne analizy (np. analizy RMS) weryfikuja֒ce poprawno´s´c dzialania, i nie wprowadza sie֒ juz˙ z˙ adnych modyfikacji do kodu. W przypadku cze֒ stych zmian metoda staje sie֒ kosztowna. Innymi oczywistymi wadami tej metody sa֒: nieefektywne wykorzystanie procesora, oraz niemoz˙ no´s´c obslugi przerwan´ z op´o´znieniem mniejszym niz˙ okres przydzialu procesora dla danej partycji.

Szeregowanie w systemach czasu rzeczywistego

28

Partycjonowanie adaptacyjne

W partycjonowaniu adaptacyjnym system operacyjny zapewnia w kaz˙ dej partycji przydzial CPU zgodny ze specyfikacja֒, jednak w przypadku zwalniania procesora w jednej partycji system stopniowo przydziela ten czas innym partycjom zglaszaja֒cym zapotrzebowanie na CPU.

Szeregowanie w systemach czasu rzeczywistego

29

Kr´ otkie podsumowanie — pytania sprawdzajace ֒ 1. Jakie strategie szeregowania stosowane sa֒ w systemach czasu rzeczywistego? Wymien´ te wla´sciwe dla zadan´ okresowych i nieokresowych? 2. Kt´ore strategie szeregowania czasu rzeczywistego wymagaja֒ wywlaszczania? 3. Kiedy strategia szeregowania moz˙ e by´c stosowana bez wywlaszczania? 4. Przeanalizuj prace֒ algorytmu RMS dla dw´och zadan´ z parametrami: C1 = 25, T1 = 50, C2 = 30, T2 = 75. Jak ma sie֒ uzyskany wynik do podanego wyz˙ ej warunku teoretycznego szeregowalno´sci zbioru zadan´? 5. Zastosuj do przykladowych zadan´ z poprzedniego pytania algorytm EDF z czasami uwolnienia zadan´ r´ownymi pocza֒tkom ich okres´ow, i terminami zakon´czenia r´ownymi kon´com okres´ow.

Szeregowanie w systemach czasu rzeczywistego

30