System czasu rzeczywistego
Transkrypt
System czasu rzeczywistego
Systemy Czasu Rzeczywistego Krzysztof Sacha System operacyjny czasu rzeczywistego Wymagania • Znany czas operacji systemowych • Kontrola czasu, w tym operacji potencjalnie nieskończonych • Kontrola programisty nad szeregowaniem zadań • Wspomaganie współpracy zadań • Ograniczanie niedeterminizmu synchronizacji • Dostęp do przerwań i układu we/wy • Konfigurowalność Rts3F.doc 1 Systemy Czasu Rzeczywistego Krzysztof Sacha Model budowy i działania systemu • Program • Proces • Reprezentacja procesu w systemie • Wykonanie procesów Obszar programu Obszar programu Obszar danych Obszar danych Obszar danych Tablica stanu Tablica stanu Tablica stanu identyfikator pid1 identyfikator pid2 identyfikator pid3 Rts3F.doc 2 Systemy Czasu Rzeczywistego Krzysztof Sacha • Stan procesu - Gotowy Wykonywany Zawieszony Martwy • Graf stanów utwórz wznów G wykonaj Z wstrzymaj usuń M zakończ W zawieś • Zdarzenia - Zewnętrzne Czasowe Wewnętrzne Programowe Rts3F.doc 3 Systemy Czasu Rzeczywistego Krzysztof Sacha Model systemu operacyjnego z mikrojądrem Procesy systemowe Procesy aplikacyjne .... System operacyjny .... Mikrojądro: egzekutor wielozadaniowy Poziom procesów Poziom egzekutora • Podział funkcji • Architektura klient-serwer • Mechanizm działanie Rts3F.doc 4 Systemy Czasu Rzeczywistego Krzysztof Sacha Model budowy egzekutora (mikrojądra) Zdarzenia Egzekutor Monitor przerwań Obsługa zdarzeń Podprogramy zmian stanu zadań Tablice systemowe Program szeregujący Do wybranego zadania • Przejęcie sterowania • Obsługa zdarzeń • Szeregowanie i przełączenie kontekstu Rts3F.doc 5 Systemy Czasu Rzeczywistego Krzysztof Sacha Tablice systemowe • Tablica stanu procesu − − − − − − priorytet stan bieżący kontekst identyfikatory przydzielone obszary pamięci inne przydzielone zasoby • Lista procesów gotowych • Listy zadań zawieszonych • Tablice stanu zasobów • Identyfikator procesu pid Rts3F.doc 6 Systemy Czasu Rzeczywistego Krzysztof Sacha Model działania egzekutora (1) wznów G wykonaj usuń Utwórz proces T Przydziel zasoby, utwórz tablicę stanu i identyfikator M Z wstrzymaj zakończ W zawieś Zawieś proces T Wznów proces T Znajdź tablicę stanu Znajdź tablicę stanu Stan=Z Stan=G Usuń zadanie z listy RL Wpisz zadanie na listę RL Szeregowanie Szeregowanie Inicjuj kontekst, stan=G W pisz zadanie na listę RL Szeregowanie Rts3F.doc 7 Systemy Czasu Rzeczywistego Krzysztof Sacha Model działania egzekutora (2) utwórz wykonaj M wznów G wstrzymaj W zakończ Z zawieś P rogram szeregujący Zakończ proces T W ybierz z listy RL zadanie T o m aks. priorytecie Znajdź tablicę stanu Zw olnij zasoby T=R T ? TAK Stan=M NIE W pisz kontekst zadania R T do tablicy stanu U suń zadanie z listy RL Usuń proces T O dtwórz kontekst zadania T z jego tablicy stanu S zeregow anie Znajdź tablicę stanu RT=T Usuń tablicę stanu i identyfikator W róć do zadania R T W róć Rts3F.doc 8 Systemy Czasu Rzeczywistego Krzysztof Sacha Model systemu z jądrem monolitycznym Procesy Poziom procesów .... Pliki danych Urządzenia Pamięć Poziom jądra Procesor • Graf stanów G – User wykonaj W – User opuść jądro wznów wstrzymaj W – System wejdź do jądra Rts3F.doc Z – System zawieś 9 Systemy Czasu Rzeczywistego Krzysztof Sacha Porównanie architektur • Wydajność (przepustowość) • Czas reakcji - interrupt latency - context switch - scheduling latency • Modularyzacja i bezpieczeństwo • Łatwość rekonfiguracji Rts3F.doc 10 Systemy Czasu Rzeczywistego Krzysztof Sacha Niepodzielność operacji jądra • system jednoprocesorowy A B C D Procesy 1 Jądro – egzekutor Lista zadań gotowych RL B C D 1 Jądro – egzekutor Tablice systemowe 2 1 RT=B 2 RT=C 2 Rts3F.doc 11 Systemy Czasu Rzeczywistego Krzysztof Sacha • system wieloprocesorowy 1 2 CPU1 CPU2 MEMORY Lista zadań gotowych RL B C D 1 RT=B +1+1 2 RT=B 3 ⎧ 1 – zasób wolny S = ⎨ 0 – zasób zajęty ⎩ R=0; do { exchange ( R , S ) } while ( R==0 ); ..... ..... // dostęp do tablic ..... S=1; do { } while ( S==0 ); S=0; ..... ..... // dostęp do tablic ..... S=1; Rts3F.doc 12 Systemy Czasu Rzeczywistego Krzysztof Sacha Synchronizacja procesów • Konkurencja o wspólne zasoby - obszar pamięci - urządzenie (np. port szeregowy, przetwornik a/c) - oprogramowanie Proces A Proces B ..... select_channel ( 5); delay ( ∆t ); x=read ( ); ..... ..... select_channel ( 7); delay ( ∆t ); x=read ( ); ..... Rts3F.doc 13 Systemy Czasu Rzeczywistego Krzysztof Sacha • Semafor Zmienna systemowa z niepodzielnymi operacjami: Wait(S): if (S>0) then S=S−1 else zawieś wykonywany proces Post(S): if (brak procesów zawieszonych) then S=S+1 else wznów proces • Wzajemne wykluczanie Proces A Proces B ..... wait(S); select_channel ( 5); delay ( ∆t ); x=read ( ); post(S); ..... ..... wait(S); select_channel ( 7); delay (∆t ); x=read ( ); post(S); ..... Rts3F.doc 14 Systemy Czasu Rzeczywistego Krzysztof Sacha • Implementacja semafora - zmienna całkowita S - kolejka procesów QS wait ( S ) TAK S>0 ? NIE S=S-1 W pisz proces RT na listę QS W róć Zawieś proces RT post ( S ) TAK QS pusta ? NIE S=S+1 Usuń pierwszy proces T z listy QS W róć W znów proces T Rts3F.doc 15 Systemy Czasu Rzeczywistego Krzysztof Sacha Anomalia synchronizacji • Zakleszczenie (deadlock) Proces A S=0 1 zawieszenie 3 S=T=1 ..... wait(S); ..... wait(T); ..... ..... post(T); post(S); ..... Proces B ..... wait(T); ..... wait(S); ..... ..... post(T); post(S); ..... Rts3F.doc 2 T=0 4 zawieszenie 16 Systemy Czasu Rzeczywistego Krzysztof Sacha Graf zależności Proces A Proces B Proces C ..... wait(S); ..... ..... post(T); ..... ..... wait(T); ..... ..... post(R); ..... ..... wait(R); ..... ..... post(S); ..... czeka na A B warunek konieczny czeka na C czeka na Rts3F.doc 17 Systemy Czasu Rzeczywistego Krzysztof Sacha • Inwersja priorytetu (priority inversion) A: prt=max ..... wait(S); ..... ..... post(S); ..... 2 B: prt=min ..... 1 wait(S); S=0 ..... 3 ..... post(S); ..... C: prt=średni 3 ..... ..... ..... ..... ..... ..... Twierdzenie (Sha, Rajkunur, Lehoczky, 1990) n 1 ti bi max c ≤ n (2n− 1) Jeżeli: i=1 ci +i=1..n i oraz szeregowanie jest zgodne z pilnością (RMS) Σ to wszystkie zadania zostaną wykonane w terminie A B C start zadania A Rts3F.doc 18 Systemy Czasu Rzeczywistego Krzysztof Sacha Procesy i wątki (thread) • Procesy jednowątkowe • Procesy wielowątkowe - proces - wątek • Zgodność modeli • Implementacja - wątki systemu - wątki użytkownika • Problemy Rts3F.doc 19 Systemy Czasu Rzeczywistego Krzysztof Sacha Przegląd systemów RT • Platforma sprzętowa Producent Platforma sprzętowa POSIX ARM, MIPS, PowerPC, x86, SH4, 68K, Sparc TAK QNX Neutrino QNX Software Systems ARM, MIPS, PowerPC, x86, SH4, xScale TAK Windows CE Microsoft ARM, MIPS, PowerPC, x86, SH4 NIE LynxOS Lynux Works ARM, MIPS, PowerPC, x86, 68K, MPC8xx, Sparc TAK RT Linux Open Source ARM, MIPS, PowerPC, x86, SH4 TAK eCOS Open Source ARM, MIPS, PowerPC, x86, SH4, 68K, MPC8xx, Sparc TAK VxWorks Wind River Systems Rts3F.doc 20 Systemy Czasu Rzeczywistego Krzysztof Sacha • Porównanie QNX VxWorks Windows CE RT Linux Instalacja i konfiguracja 7 4 5 3 Architektura systemu 9 7 7 3 Bogactwo API programisty 7 8 7 5 Wsparcie Internetu 8 9 9 8 Narzędzia programistyczne 7 8 8 8 Dokumentacja i wsparcie 5 4 5 2 Testy wydajnościowe 9 5 7 2 okres przerwań 10 25 11 60 Średnia 7,4 6,4 6,9 4,4 Dedicated Systems Expert, RTOS Evaluation Project, 2002r (QNX v. 6.1) Rts3F.doc 21