Organizacja oprogramowania 1. Cykliczny program sekwencyjny RS232 a/c µc (regulator) c/a Zadania czas wykonania cykl (a) pomiar 1 ms 10 ms (b) obliczenie 2 ms 10 ms (c) wyjście 1 ms 10 ms 4 ms (a) (b) 10ms (c) Rts2F.doc 1
Program sekwencyjny ręczne rozplanowanie zadań Zadania: czas wyk. cykl 0 1 2 3 (a) pomiar 1 ms 5 ms 20% (b) obliczenie 2 ms 10 ms 20% (c) wyjście 1 ms 10 ms 10% (d) komunikacja 4 ms 20 ms 20% 8 ms 4 1 4 4 70% pre-run scheduling t= t+ 1(mod 4) pomiar t= 0 t= 2 N T obliczenie wyjście 5ms t= 3 N T komunikacja Rts2F.doc 2
Program sekwencyjny z uwzględnieniem zdarzeń Zadania: czas wyk. cykl 0 1 2 3 (a) pomiar 1 ms 5 ms 20% (b) obliczenie 2 ms 10 ms 20% (c) wyjście 1 ms 10 ms 10% (d) komunikacja 4 ms 20 ms 20% (e) przekroczenie 3 ms 20 ms 15% 11 ms 4 4 4 5 85% t= t+ 1(mod 4) pomiar t= 0 t= 2 N T obliczenie wyjście t= 3 N t= 1 N T T N komunikacja T zdarzenie? obsługa 5ms Rts2F.doc 3
Przykład: sterownik PLC Zmienne wejściowe Zmienne robocze Zmienne wyjściowe Wejścia Czytaj wejścia Oblicz nowy stan Ustaw wyjścia Komunikacja i diagnostyka Wyjścia Siemens, Simatic S5 Alerton, VLC-853 Rts2F.doc 4
2. System dwuplanowy (Foreground/ackground) Zadania: czas wyk. cykl (a) pomiar 1 ms 10 ms 10% (b) obliczenie 2 ms 10 ms 20% (c) wyjście 1 ms 10 ms 10% (d) diagnostyka 100 ms 2 s 5% (d) raport 500 ms 30 s 1,5% 46,5% Zadania planu pierwszego Zadania tła Foreground zegar 10 ms pomiar obliczenie wyjście ackground 2 s? diagnostyka 30 s? raport Rts2F.doc 5
Przykład: komunikacja zadań Lokalizacja pociągów przerwanie 3 1 6 5 4 3 4 2 6 7 8 9 Przekaz do centrali 3 1 6 Lokalizacja pociągów 4 2 6 7 8 9 Przekaz do centrali 3 1 6 7 8 9 Rts2F.doc 6
3. System wielozadaniowy (Multitasking) Wiele zadań o różnych charakterystykach czasowych: - sterowanie - komunikacja w sieci - archiwizacja i dokumentacja - GUI Zadania nie zawsze gotowe A C początek koniec czas Złożona synchronizacja i komunikacja zadań Rts2F.doc 7
Sformułowanie problemu Szeregowanie zadań Dany zbiór zadań do wykonania Dla każdego zadania z i określone: - czas wykonania t i - okres cyklu c i Znaleźć właściwą kolejność wykonania zadań Algorytmy szeregowania RMS (Rate Monotonic Scheduling) EDF (Earliest Deadline First) Rts2F.doc 8
Przykłady Zadanie Długość Cykl Obciążenie A 8 16 8/16 = 50% 10 25 10/25 = 40% = 90% Rate monotonic scheduling (RMS) A 8 8 8 2 0 8 16 24 32 Earliest deadline first (EDF) A 8 0 8 2 6 2 8 6 4 8 16 24 32 40 48 Rts2F.doc 9
Szeregowalność RMS Twierdzenie (Liu, Layland, 1973) Jeżeli: n t i i=1 c i 1 n (2 1) Σ n oraz szeregowanie jest zgodne z pilnością (RMS) to wszystkie zadania zostaną wykonane w terminie EDF Twierdzenie (Spuri, utazzo, Sensini, 1995) Jeżeli: n t i i=1 c i Σ 1 oraz szeregowanie jest zgodne z terminami (EDF) to wszystkie zadania zostaną wykonane w terminie Rts2F.doc 10
Przewidywalność Zadanie Długość Cykl Obciążenie A 2 5 2/5 = 40% 8 12 8/12 = 66% = 106% Rate monotonic scheduling (RMS) A 0 A(5) (12) 4 8 12 16 20 A(10) A(15) A(20) A(25) (24) 24 A(30) (36) 28 32 A(35) 36 A(40) Earliest deadline first (EDF) zmienne priorytety A 0 A(5) (12) 4 8 12 16 20 24 28 A(10) A A(15) A(20) A(25) A(30) (24) (36) A(35) 32 36 A(40) Rts2F.doc 11
Zadania sporadyczne Zadanie obsługujące Algorytm Sporadic Server (Sprunt, Sha, Lehoczky, 1989) Przykład zadania cykliczne: czas wykonania 18, okres 30 serwer sporadyczny: zapas czasu 5, okres odnawiania 15 zadania sporadyczne: czas obsługi 4, zgłoszenia 1, 2, 8, 10, 39 Priorytet replenishment period Serwer 5 5 4 1 3 Cykliczne 1 10 7 1 4 6 Tło 2 6 16 21 28 31 35 40 46 50 Czas Rts2F.doc 12
Synchronizacja zadań Dla każdego zadania z i określone dodatkowo: - maksymalny czas zablokowania przez zadania o niższym priorytecie b i Twierdzenie (Sha, Rajkunur, Lehoczky, 1990) n Jeżeli: Σ t i b c + max i n 1 i n (2 1) i=1 i=1..n c i oraz szeregowanie jest zgodne z pilnością (RMS) to wszystkie zadania zostaną wykonane w terminie A C start zadania A Rts2F.doc 13
Podejście praktyczne 1. Zadania o ostrych ograniczeniach czasowych (krytyczne) 2. Zadania o łagodnych ograniczeniach czasowych 3. Zadania sporadyczne 4. Szeregowalność zadań krytycznych 5. Szeregowalność wszystkich zadań Chwilowe przeciążenia systemu (transient overload) Rts2F.doc 14