Kategorie systemów czasu rzeczywistego
Podstawowe definicje
Podstawowe definicje
Standard IEEE / ANSI
System Czasu Rzeczywistego Sensory Sterowniki Otoczenie KOMPUTER
Kategorie SCR
Kategorie SCR
Kategorie SCR
Cechy SCR
Problematyka SCR
JEDNOSTKA PLANUJĄCO - STERUJĄCA Strategia PUSH JEDNOSTKA PLANUJĄCO - STERUJĄCA M M M M Materiały Sterowanie Informacje
Strategia PUSH
JEDNOSTKA PLANUJĄCO - STERUJĄCA Strategia SQUEEZE JEDNOSTKA PLANUJĄCO - STERUJĄCA M B Materiały Sterowanie Informacje
Strategia SQUEEZE
JEDNOSTKA PLANUJĄCO - STERUJĄCA Strategia PULL JEDNOSTKA PLANUJĄCO - STERUJĄCA M Materiały Sterowanie Ssanie
Systemy JIT
Notacja (trójpolowa)
= 1 2
= 1, 2, 3, 4, 5
Dodatkowe zasoby (discretely-additional resources)
Wymagania kolejnościowe zadań. in–tree out–tree
Parametry zadania
Parametry zadania
Kryteria optymalizacji
Kryteria optymalizacji
Zależności między kryteriami wi Ti Lmax wi Ci Ti Ci Cmax Kryteria 1, 2 są w relacji 1 2 jeśli rozwiązanie problemu z kryterium 2 dostarcza rozwiązania problemu z kryterium 1.
System permutacyjny (PF, Permutation Fow-shop) 1 2 m Przepływ zadań Stanowisko obsługi Maszyna
System (F, Flow-shop) Przepływ zadań Stanowisko obsługi Maszyna 1 2 m
System gniazdowy (J, Job-shop) Przepływ zadań Stanowisko obsługi Maszyna 1 2 m
System równoległy (P, Parallel-shop) Przepływ zadań Stanowisko obsługi Maszyny
System gniazdowy równoległy Przepływ zadań Stanowisko obsługi Maszyny
Typy zagadnień szeregowania
Algorytm Johnsona O(nlogn) Cmax(*) = m i n Cmax() *
Problem PF3|P2, no-bottl.|Cmax
Algorytm Johnson O(nlogn)
Zadania podzielne. Procesory równoległe
Zadania podzielne. Procesory równoległe 2 6 4 P1 P2 Z4 Z3 P3 Z2 Z1 Z5
Zadania podzielne. Procesory równoległe 2 6 4 P1 P2 Z5 Z3 Z2 Z1 Z4 Z6 8 10
Zadania zależne. Procesory równoległe
Algorytm Hu, Przykład 1 2 3 4 Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z10 Z11 Z9 2 6 4 P1 P2 Z2 Z1 Z4 Z3 Z6 Z8 Z5 Z7 Z9 Z10 Z11
Zadania niezależne, procesory równoległe LPT P1 P2 P3 RPT
Reguła EDD (Earliest Due Date) Z2 Z1 d1 d2 Z1 Z2 d1
Zadania niezależne, przerywalne.
Zadania zależne, przerywalne.
Zadania zależne, procesory równoległe.
Przykład P| pj=1, in–tree | Lmax 0*, 4 0*, 2 0*, 2 Z1 Z2 Z3 -1*, 2 -1*, 3 Z4 Z5 Z6 -1*, 4 -2*, 3 Z7 Z8 -4*, 5 2 4 P2 P3 Z3 Z2 Z6 Z5 Z7 Z9 Z1 P1 Z4 Z8 L*max= 0 Z10 Z9 -5*, 6 dj*, dj -6*, 7 Z10
Zadania niepodzielne, dodatkowe zasoby
Przykład Ppodz, res11Cmax Zj Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 R(Zj) 1 rj 4 2 3 5 7 2 4 P2 Z4 Z5 Z1 P1 Z7 6 8 10 Z6 Z8 Z3 Z2 P3
Cykliczny algorytm FIFO
Struktura kolejki w algorytmie cyklicznym 1 2 3 4 6 5 7 Kierunek obsługi
Cykliczny algorytm LIFO (Last in First Out) Kolejka Stanowisko obsługi Zadania przerwane Zadania zakończone
Cykliczny algorytm SS (Selfish Scheduling)
System obsługi wg. algorytmu SS Kolejka System kolejek Stanowisko obsługi Zadania wykonane Podstawowy algorytm szeregowania Nowe zadania Zadania oczekujące Zadania wykonywane
Szeregowanie zadań cyklicznych:
Binaryzacja okresów zadań
Binaryzacja niezdominowana T1 T2 T3 T4 T5 1 7 8 14 15 21 22 28 Uszeregowanie dopuszczalne dla binaryzacji B1: [7: 1, 4]
Binaryzacje niezdominowane
Komunikacja między zadaniami
Kolejki komunikatów Kolejka zadań odbierających wysyłających Blok kontrolny kolejki Długość kolejki Rozmiar wiadomości Element
Jednokierunkowa komunikacja Kolejki komunikatów Kopia I Kopia II Bufor zadania wysyłającego Bufor zadania odbierającego Jednokierunkowa komunikacja
Semafor
Rejestry zdarzeń. Flagi zdarzeń. OR /AND 1 ZAD1 ZAD2 Ustawienie flag zdarzeń ZAD3 Użycie rejestru i flag zdarzeń
Potoki ZAD. CZYTAJĄCE PISZĄCE DANE POTOK Deskryptor
Zakleszczenie (deadlock) KOLEJKA (pusta) ZADANIE 2 (czeka na semafor) SEMAFOR ZADANIE 1 (czeka na dane, posiada semafor)
Przeterminowanie (starvation) KOLEJKA ZADANIE 2 SEMAFOR ZADANIE 1 ZADANIE 3
Inwersja priorytetów (priority inversion) ZAD1 ZAD2 NISKI WYSOKI Priorytet t1 t2 t3 t4 t5 Inwersja priorytetów
Inwersja priorytetów Inwersja priorytetów Priorytet Nieznany czas WYSOKI NISKI t3 t4 t5 t6 t1 t2 t7
Usługi jądra systemu czasu rzeczywistego
Jądro z wywłaszczaniem ZADANIE A 1 7 3 5 2 IRS 4 ZADANIE B 6 Czas wykonanie
Stany zadania
ZADANIE 1 Stos STATUS Wskaźnik stosu Priorytet TCB . . . Kontekst Pamięć CPU Rejestry CPU ZADANIE n
Przełączanie kontekstu
Cechy systemu VxWorks
Stany zadania VxWorks WYKONYWANE GOTOWE OCZEKUJĄCE WSTRZYMANE ZAWIESZONE
Mechanizmy Komunikacji między zadaniami
Współdzielona pamięć, wzajemne wykluczanie ZADANIE 1 ZADANIE 2 ZADANIE 3 Wsp_Dane PAMIĘĆ
Semafory VxWorks
Inwersja priorytetów Priorytet Zadanie A Zadanie B Zadanie C w posiadaniu semafora czas wywłaszczenie blokada oddanie semafora pobranie semafora
Dziedziczenie priorytetów Zadanie A Zadanie B czas w posiadaniu semafora wywłaszczenie blokada pobranie semafora C A B oddanie semafora dziedziczenie priorytetu Zadanie C
System RTLinuks
Systemy KURT, MERT
Cechy systemu RTLinuks
Architektura systemu RTLinux Zwykłe procesy Linuksa Funkce systemowe, POSIX Drivery Linux Zadanie czasu rzecz. Zadanie czasu rzecz. RT-Linux Scheduler we/wy Przerwania Sprzęt
Zadania RTLinuksa
Szeregowanie i komunukacja w RTLinuksie
Architektura systemu QNX MIKROJĄDRO Zadania (procesy ) systemowe Zadania (procesy) aplikacyjne Poziom zadań Poziom jądra systemu
Zadania (procesy) systemowe QNX
Funkcje mikrojądra QNX
Struktura mikrojądra QNX ZAD ZAD Mechanizmy komunikacji (IC) SCHEDULER Przekierowania przerwania (IR) Interfejs sieciowy (NI) Przerwania Zarządca sieci (NM)
Zadania (procesy) systemowe Send Receive Reply G W M Z ZReceive ZSend Diagram przejść między zadaniami
Szeregowanie, komunikacja i synchronizacja
Implementacja spotkania Wiadomości Mr M Zadanie T1 Zadanie T2 Send( T2, M, Mr ) Receive(M ) Reply(Mr) Implementacja spotkania
Depozyty (Proxy) DEPOZYT Proces Widomość
Sygnały
Automatyczne przekazanie wiadomości przez połączenie Komunikacja w sieci P VQ Send ( ) ZAD VP Q Receive ( ) Zadania wirtualne Węzeł sieci Automatyczne przekazanie wiadomości przez połączenie
QNX Neutrino Ochrona pamięci System plików Obsługa we-wy Aplikacja Podsystem graficzny Mikrojądro NEUTRINO Ochrona pamięci Procedury obsługi urządzeń Procedury obsługi sieci Procedury obsługi grafiki SPRZĘT
Zastosowanie
Standard POSIX
Standard POSIX
Sieci Petriego
Konwencje graficzne p1 p2 p3 t2 t1
Znakowanie sieci.
Realizacja przejścia t1 p1 p2 p4 p3 p5 3 2
Własności dynamiczne sieci
Czasowe sieci Petriego
Interpretacja miejsc i przejść
Model automatu obsługującego sprzedaż wait 5 10 15 20
Model procesów współbieżnych ParBegin t1 p2 ParEnd p1 p3 p4 t2 t0 t3 p0
Model protokołu z potwierdzeniem Received Receive Sender Receiver Mess_Buff Ack_Buff Ready Wait for ack Send ack mess
Komunikacja za pomocą ograniczonego bufora producer consumer p k p’
Synchronizowany dostęp do obszaru krytycznego p0 t1 t3 p2 p4 t2 t4
Sieciowy model procesu cyklicznego Czasowy znakowany graf TMG (Timed Marked Graph): pP p=1 and p=1 pkc proces k tk i pkb tk i + 1 Operacja oki(h) tranzycja tki T Czas wykonania operacji oki(h) czas palenia tranzycji t = T(t)
Sieciowy model procesu cyklicznego process k .. p c s
Cykliczne procesy współbieżne process 1 process k process n
Czas cyklu Niech będzie sekwencją wzbudzeń ={<ti; si(1), si(2),...,,si(v),...>: tiT} gdzie: si(v) - jest chwilą w której tranzycja ti inicjuje v-te palenie. Liczba C() jest czasem cyklu sieci, jeżeli istnieje sekwencja wzbudzeń ( jest zbiorem możliwych sekwencji wzbudzeń), dla której znakowanie sieci M jest równe znakowaniu początkowemu M0 w chwilach kC(), k=1, 2, ... . C*=C(*)=min {C()}.