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

Podobne dokumenty