Systemy Czasu Rzeczywistego (SCR) -...
-
Upload
truongdung -
Category
Documents
-
view
214 -
download
0
Transcript of Systemy Czasu Rzeczywistego (SCR) -...
Systemy Czasu Rzeczywistego
(SCR)
Elementy systemów operacyjnych czasu rzeczywistego
© SCR 2010
Elementy systemów operacyjnych czasu rzeczywistego
1
Politechnika Gdańska
Wydział Elektrotechniki i Automatyki
Kierunek: Automatyka i Robotyka
Studia stacjonarne I stopnia: rok II, semestr IV
Opracowanie: dr inż. Tomasz Rutkowski
Katedra Inżynierii Systemów Sterowania
Jądro systemu
– Szeregowanie zadań – Scheduler
� Integralną i najważniejszą częścią jądra systemu SOCR jest program szeregujący – scheduler
� Program szeregujący jest to zestaw algorytmów określających jakie zadanie będzie wykonywane jako następne oraz kiedy to nastąpi
© SCR 2010
następne oraz kiedy to nastąpi
� Większość systemów SOCR oparta jest na priorytetach –każde zadanie ma przyporządkowany priorytet zależny od ważności zadania, w związku z tym czas CPU zostaje przydzielony do zadania, które jest gotowe i ma najwyższy priorytet
2
Jądro systemu
– Szeregowanie zadań – model periodyczny (okresowy)
Model zadań periodycznych (okresowych) zakłada deterministyczne obciążenie systemu i opisuje właściwości oraz zachowanie wielu klasycznych systemów „hard real-time time” (np. zadania sterowania cyfrowego).
© SCR 2010
time time” (np. zadania sterowania cyfrowego).
Zadania periodyczne mogą się pojawiać równocześnie (w tym samym czasie), przy czym nie może to zaburzyć normalnej pracy systemu.
3
� Każde zadanie opisują następujące parametry:
o okres p : czas pomiędzy kolejnymi zdarzeniami wymagającymi obsługi
o termin d : czas w którym zdarzenie musi być obsłużone, odmomentu jego zajścia
o czas t : czas potrzebny na obsługę zdarzenia (realizacja zadania)
Jądro systemu
– Szeregowanie zadań – model periodyczny (okresowy)
© SCR 2010 4
zadanie zadanie zadanie
zdarzenie zdarzeniezdarzenie
okres 1 okres 2 okres 3
Jądro systemu
– Szeregowanie zadań – model okresowy
� Pomiędzy parametrami p, d, t zachodzi relacja 0 ≤ t ≤ d ≤ p
� Stopień wykorzystania procesora jest równy u = t/p
� Warunkiem koniecznym wykonywalności szeregowania jest by suma
© SCR 2010
� Warunkiem koniecznym wykonywalności szeregowania jest by suma stopni wykorzystania procesora była mniejsza równa jeden, Σu ≤ 1
� Zadanie przekazuje swoje parametry t, d, p planiście (programowi szeregującemu), który podejmuje się wykonania zadania gwarantując dotrzymania terminu albo odrzuca zadanie
5
Jądro systemu
– Szeregowanie zadań – Scheduler
�Przykłady algorytmów szeregujących zadania:
o szeregowanie uwzględniające częstość wykonywania danego zadania - algorytm RMS (ang. Rate MonotonicScheduling)
o szeregowanie karuzelowe (ang. Round Robin Scheduling)
szeregowanie FIFO (ang. First In First Out Scheduling)
© SCR 2010
o szeregowanie FIFO (ang. First In First Out Scheduling)
o szeregowanie sporadyczne (ang. Sporadic Scheduling)
o szeregowanie zegarowe (ang. Clock-Driven)
6
Jądro systemu
– Szeregowanie zadań – algorytm RMS
Założenia algorytmu RMS:
1. Wszystkie zadania są okresowe periodyczne (pojawiają się w regularnychodcinkach czasu)
© SCR 2010
2. Zadania nie synchronizują się miedzy sobą w trakcie współdzieleniazasobów i komunikacji
3. Procesor zawsze wykonuje zadanie o najwyższym priorytecie, które jestgotowe do pracy (powinien być wykorzystany system z wywłaszczaniem)
4. Procesy są planowane na podstawie statycznego priorytetu równego im krótszy okres zadania, tym wyższy jego priorytet
7
Przykład dwóch zadań o następujących parametrach:
�zadanie pierwsze – Z1 : p = 50; d = 50; t = 20;
�zadanie drugie – Z2 : p = 100; d = 100; t = 35;
Jądro systemu
– Szeregowanie zadań – algorytm RMS
E1 – zdarzenie wyzwalaj ące zadanie Z1
© SCR 2010 8
Całkowite obci ążenie procesora: u = (20/50) + (35/100) = 0.75
czas
Z1 Z2
0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250
E1, E2
E1 – zdarzenie wyzwalaj ące zadanie Z1E2 – zdarzenie wyzwalaj ące zadanie Z2
Z1 Z1 Z2 Z1
E1 E1, E2 E1
Zakładamy chwilowo, że zadanie drugie ma większy priorytet od zadania pierwszego
Jądro systemu
– Szeregowanie zadań – algorytm RMS
E1, E2 E1 E1, E2
© SCR 2010 9
czas
Z2
0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250
Z1
Przekroczenie terminu !!!
Przykład dwóch zadań o następujących parametrach:
�zadanie pierwsze – Z1: p = 50; d = 50; t = 25;
�zadanie drugie – Z2: p = 80; d = 80; t = 35;
Jądro systemu
– Szeregowanie zadań – algorytm RMS
© SCR 2010 10
Całkowite obci ążenie procesora: u = (25/50) + (35/80) = 0.94 !!!
czas
Z1 Z2
0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250
E1, E2
Z1
E1
Przekroczenie terminu !!!
Jądro systemu
– Szeregowanie zadań – algorytm RMS
Podstawowe twierdzenie RMS:wszystkie solidne limity czasowe systemu SOCR będą zawsze spełnione jeżeli:
∑
−⋅≤
i
n
i
i np
t12
1
© SCR 2010
gdzie:n – dany zestaw zadań z przypisanymi priorytetami RMS,ti – maksymalny czas wykonania zadania i,pi – okres wykonania zadania i,ti / pi – część czasu procesora wymagana do wykonania zadania i.
Zgodnie ze statycznym doborem priorytetów algorytmem RMS, im krótszy okres zadania, tym wyższy jego priorytet.
11
Jądro systemu
– Szeregowanie zadań – algorytm RMS
Liczba Zadań
−⋅ 12
1
nn
1 1.000
2 0.828
3 0.779
4 0.756
© SCR 2010
4 0.756
5 0.743
... ... ∞ 0.693
Aby spełnić wszystkie limity czasowe systemu o „solidnych” wymaganiach czasowych w oparciu o algorytm RMS, wykorzystanie CPU przez wszystkie
zadania krytyczne czasowo powinno być mniejsze niż 70 procent !!!
Nadal można mieć zadania niekrytyczne czasowo, a więc wykorzystać 100 procent czasu CPU
12
Jądro systemu
– Szeregowanie zadań – algorytm karuzelowy
Algorytm karuzelowy:1. Umożliwia współdzielenie czasu procesora przez zadania o takim samym
priorytecie – tzw. rotacja zadań
2. Określa się przedział czasu (ang. time slice) gdy zadanie się wykonuje,a następnie oddaje procesora zadaniu o takim samym priorytecie, którewykonuje się przez taki sam przedział czasu i oddaje procesor kolejnemu
© SCR 2010
wykonuje się przez taki sam przedział czasu i oddaje procesor kolejnemuzadaniu o takim samym priorytecie
3. W przypadku wywłaszczenia zadania, w trakcie jego przedziału czasu, przezzadanie o wyższym priorytecie, po wykonaniu zadania o wyższym prioryteciezadanie to wykorzystuje pozostały należny mu czas procesora
13
Algorytm przeznaczony do szeregowania zadańw środowisku zdominowanym przez zadania wykonywane współbieżnie
Jądro systemu
– Szeregowanie zadań – algorytm FIFO
Algorytm FIFO:1. Jest podobny do algorytmu karuzelowego z tą różnicą, że zadanie
nie jest wywłaszczane po wyczerpaniu pewnego przedziału czasu
2. Zadanie wykonywane jest aż do czasu gdy:
© SCR 2010
� samoistnie zwolni procesor
� zostanie wywłaszczone przez zadanie o wyższym priorytecie
14
Jądro systemu
– Szeregowanie zadań – algorytm sporadyczny
Algorytm sporadyczny:1. Jest podobny do algorytmu karuzelowego z tą różnicą, że po wyczerpaniu
przedzielonego zadaniu przedziału czasu zadanie jest wywłaszczane i jegopriorytet jest obniżony o 1
2. Jeżeli zadanie nie podejmie pracy w kolejnym, określonym przedziale czasu
© SCR 2010
2. Jeżeli zadanie nie podejmie pracy w kolejnym, określonym przedziale czasujego priorytet jest podwyższony o 1
3. Priorytet zadania nie może być podwyższony powyżej oryginalnegopriorytetu zadania
4. Zadanie zawieszone uzyskuje swój „dawny” priorytet
15
Algorytm przeznaczony do szeregowania zadań sporadycznych pojawiającychsię w środowisku zdominowanym przez zadania cykliczne
Jądro systemu
– Szeregowanie zadań – algorytm zegarowy
Algorytm zegarowy:1. Decyzje, które zadania maja się wykonywać, podejmowane są z góry
w ustalonych momentach czasu
2. Typowo wszystkie parametry zadań typu hard real-time są ustalone i znane
3. Najczęściej decyzje szeregowania podejmowane są periodycznie i
© SCR 2010
3. Najczęściej decyzje szeregowania podejmowane są periodycznie i sterowane hardware-owym zegarem zewnętrznym
16
Algorytm przeznaczony do szeregowania zadańw środowisku zdominowanym przez zadania synchroniczne (cykliczne)
zawierającym kilka aperiodycznych i sporadycznych zadań
Problemy związane z szeregowaniem zadań
W systemach wielozadaniowych, prawie zawsze istnieje pewien podzbiór procesów uruchomionych w danej chwili, które oddziaływają na siebie.
Źle zorganizowany współbieżny dostęp do tych samych zasobów, prowadzi do powstawania niespójności danych, w efekcie którego efektywność systemu może być dalece niezadowalająca.
© SCR 2010
� zjawisko zakleszczenia (ang. impas lub deadlock)
� zjawisko inwersji priorytetów (ang. priority inversion)
17
Zakleszczenie procesów
Zbiór zadań znajduje się w stanie blokady (zakleszczenia), jeśli każde z nich jest wstrzymane w oczekiwaniu na zdarzenie, które może być wywołane przez jakieś inne zadanie z tego zbioru.
Zadania są wstrzymane w oczekiwanie na dostęp do odpowiednich zasobów, które są wykorzystywane przez inne zadania.
© SCR 201018
Zadania: Z1, Z2, Z3Zasoby: R1, R2, R3
Z1 Z2
Z3
R3
R2
R1 Zasóbnależy do …
Zasóbnależy do …
Zadanieżąda dost ępu do …
Zadanieżąda dost ępu do …
Zadanieżąda dost ępu do …
Zakleszczenie procesów (cd.)
Algorytmy wykrywające zakleszczenie oparte są głównieo teorię grafów.
W trakcie projektowania aplikacji należy zadbać o to by zadania sprawdzały czy to czego oczekują jest w danej chwili dostępne, a kiedy już nie korzystają z jakiś zasobów to powinny je zwolnić.
© SCR 2010
Można również zasoby zorganizować w hierarchiczną strukturę i zaimplementować prosty model ich przydziału (protokół), np.:
zadanie które uzyska dostęp do jakiegoś zasobu, w kolejnych krokach albo musi ten zasób zwolnić lub starać się tylko i wyłącznie o zasoby
znajdujące się wyżej w hierarchii
19
Inwersja priorytetów
Inwersja priorytetów występuje w przypadkach gdy zadania o różnych priorytetach wykorzystują te same zasoby (zasoby współdzielone).
Ogólnie zjawisko inwersji priorytetów polegana tym, że zadanie o
© SCR 2010
Ogólnie zjawisko inwersji priorytetów polegana tym, że zadanie o niskim priorytecie, zajmując zasób dzielony, zmusza zadanie o wyższym priorytecie do przejścia w stan „wstrzymane” i oczekiwania na zwolnienie tego zasobu.
20
Inwersja priorytetów (cd.)
priorytet
wysoki
średni
Z2 Z2
Z1
zajm
uje
zasó
b R
1
E2
E1 – zdarzenie wyzwalaj ące zadanie Z1E2 – zdarzenie wyzwalaj ące zadanie Z2INWERSJA
PRIORYTETÓW
Z2
wyw
łasz
cza
Z1
Z2
blok
uje
się
,ty
prz
ez Z
1
Z1
zwal
nia
zasó
b R
1,za
tem
Z2
wch
odzi
w s
tan
goto
we
i wyw
łasz
cza
Z1
Z2
zwal
nia
zasó
b R
1
© SCR 2010
Dwa zadania, zadanie o priorytecie niskim (Z1) i zadanie o priorytecie wysokim (Z2) korzystające z tego samego zasobu (R1)
21
czas
średni
niski Z1 Z1
Z1
zajm
uje
zasó
b R
1
t1 t2 t3 t4 t5 t6 t7 t8
E1Z
2 w
ywła
szcz
a Z
1
Z2
blok
uje
się
bo z
asób
R1
zaję
ty p
rzez
Z1
Z1
zwal
nia
zasó
b R
1,za
tem
Z2
wch
odzi
w s
tan
goto
we
i wyw
łasz
cza
Z1
Z2
zwal
nia
zasó
b R
1
Inwersja priorytetów (cd.)
priorytet
wysoki
średni
Z2 Z2
Z1
zajm
uje
zasó
b R
1
E2
E1 – zdarzenie wyzwalaj ące zadanie Z1E2 – zdarzenie wyzwalaj ące zadanie Z2E3 – zdarzenie wyzwalaj ące zadanie Z3INWERSJA
PRIORYTETÓW
Z2
wyw
łasz
cza
Z1
Z2
blok
uje
się
,ty
prz
ez Z
1
czy
i zw
alni
a za
sób
R1
czy
i zw
alni
a za
sób
R1
nieznany czas !!!
E3
czy
i zw
alni
a za
sób
R1
Z3
wyw
łasz
cza
Z1
© SCR 2010
Trzy zadania, zadanie o priorytecie niskim (Z1), zadanie o priorytecie wysokim (Z2) oraz zadanie o priorytecie średnim (Z3) korzystające z tego samego zasobu (R1)
22
czas
średni
niski Z1 Z1
Z1
zajm
uje
zasó
b R
1
t1 t2 t3 t4 t7 t8
E1Z
2 w
ywła
szcz
a Z
1
Z2
blok
uje
się
bo z
asób
R1
zaję
ty p
rzez
Z1
Z1
się
koń
czy
i zw
alni
a za
sób
R1
Z2
się
koń
czy
i zw
alni
a za
sób
R1
t5
Z3
Z1
t6
Z3
się
koń
czy
i zw
alni
a za
sób
R1
Z3
wyw
łasz
cza
Z1
Inwersja priorytetów (cd.)
Inwersja priorytetów prowadzi do wielu niebezpieczeństw, które w najgorszym wypadku mogą prowadzić do powstania w systemie „sporych” anomalii czasowych.
Całkowite wyeliminowanie zjawiska inwersji priorytetów jest praktycznie niemożliwe.
© SCR 2010
Metody eliminacji tego zjawiska wykorzystują różne modele sterowania dostępem do zasobów (protokoły), np.:
- protokół wykorzystujący dziedziczenie priorytetów (może powodować zakleszczenia),
- protokół pułapów priorytetu (całkowita eliminacja wystąpienia blokad),
- różne modyfikacje powyższych.
23
Inwersja priorytetów
– rozwiązanie przez dziedziczenie priorytetów –
priorytet
wysoki
średni
Z2 Z2
Z1
zajm
uje
zasó
b R
1
E2
INWERSJAPRIORYTETÓW
Z2
wyw
łasz
cza
Z1
Z2
blok
uje
się
,ty
prz
ez Z
1,po
dnie
sien
ie p
riory
tetu
Z1
i zw
alni
a za
sób
R1,
pow
rót d
o pi
erw
otne
go p
riory
tetu
Z1
i zw
alni
a za
sób
R1
Z1
E3
i zw
alni
a za
sób
R1
E1 – zdarzenie wyzwalaj ące zadanie Z1E2 – zdarzenie wyzwalaj ące zadanie Z2E3 – zdarzenie wyzwalaj ące zadanie Z3
© SCR 2010
Zasada jego działania polega na tymczasowym podnoszeniu priorytetu zadania, które zajmuje zasób dzielony, do najwyższego poziomu priorytetów zadań, które zgłaszają żądanie dostępu do
tego zasobu. 24
czas
średni
niski Z1
Z1
zajm
uje
zasó
b R
1
t1 t2 t3 t4 t5 t6 t7 t8
E1
Z2
wyw
łasz
cza
Z1
Z2
blok
uje
się
bo z
asób
R1
zaję
ty p
rzez
Z1,
podn
iesi
enie
prio
ryte
tu Z
1
Z1
koń
czy
się
i zw
alni
a za
sób
R1,
pow
rót d
o pi
erw
otne
go p
riory
tetu
Z1
Z2
koń
czy
się
i zw
alni
a za
sób
R1
Z1
Z3
Z3
koń
czy
się
i zw
alni
a za
sób
R1
E1
Z1
Inwersja priorytetów
– rozwiązanie przez pułap priorytetów –
priorytet
wysoki
średni
Z1
Z1
zajm
uje
zasó
b
Z1
zwal
nia
zasó
b
Każdy zasób ma przypisany tzw. pułap priorytetów.
Jego wartość jest określana przez najwyższy priorytet spośród zadań, które mogą o niego konkurować.
© SCR 2010 25
czas
średni
niski Z1 Z1
t1 t2 t3 t4
Z1
zajm
uje
zasó
b
Z1
zwal
nia
zasó
b
niego konkurować.
Gdy zadanie zarygluje dostęp do takiego zasobu, jego priorytet jest zwiększany do wartości pułapu tego zasobu.
Po zwolnieniu zasobu, zadanie ma przywracany priorytet do wartości początkowej.
Jądro systemu – komunikacja pomiędzy zadaniami
- model przesyłania komunikatów
Fazy przesłania komunikatu:
Klient Serwer
komunikat
odpowied ź
© SCR 2010
Fazy przesłania komunikatu:
1. Wysłanie komunikatu od procesu klienta do procesu serwera. Proces klienta zostaje „zablokowany” a komunikat odblokowuje proces serwera (o ile był „zablokowany”)
2. Serwer przetwarza komunikat i przesyła odpowiedź do klienta.
3. Proces klienta po otrzymaniu odpowiedzi ulega „odblokowaniu”.
Większość SOCR oparta jest o modelu przesyłaniu komunikatów typu klient-serwer
26
Jądro systemu – komunikacja pomiędzy zadaniami
- Semafory (binarny, ogólny)
To jedne z obiektów umożliwiających wzajemne wykluczanie oraz synchronizację zadań.
Semafor, jest obiektem jądra, który może zostać zajęty przez jeden lub kilka wątków w celu sterowania dostępem do np. jakiegoś wspólnego zasobu.
© SCR 2010
Operacje na semaforach, umożliwiające wstrzymanie i wznowienie procesów:
- czekaj: to operacja opuszczająca semafor, zmniejsza jego wartość ojeden (semafor może mieć wartości nieujemne),
- sygnalizuj: jest operacją zwiększającą wartość semafora o jeden,logicznie odpowiada operacji podniesienia semafora
Semafory są globalne : dowolny proces może je opuszczać albopodnosić27
Jądro systemu – komunikacja pomiędzy zadaniami
- muteksy
Muteksy (ang. mutual exclusion semaphores), stanowią szczególny rodzaj semaforów binarnych.
Muteks może być zablokowany (ma wartość 1) lub odblokowany (ma wartość 0).
Jedną z cech muteksów jest zasada posiadania.
© SCR 2010
Jedną z cech muteksów jest zasada posiadania.
Zasada posiadania polega na tym, że jeśli jakieś zadanie zablokuje muteks (nada mu wartość 1), to tylko ono może ten muteks odblokować (nadać mu wartość 0).
Zapobiega to sytuacji, w której jedno z zadań wykona operację czekajaby synchronizować dostęp do jakiegoś zasobu, a później inne zadanieniezwiązane logicznie z tym zasobem, podniesie semafor (potencjalny problem niespójności danych przy wykorzystywaniu jedynie semaforów)
28
Jądro systemu – komunikacja pomiędzy zadaniami
- zmienne warunkowe
Zmienne warunkowe również służą do synchronizacji zadań.
Zmienne warunkowe pozwalają wielokrotnie wstrzymywać wykonanie jakiegoś zadania, aż żądany warunek zostanie spełniony.
© SCR 2010 29
Jądro systemu – komunikacja pomiędzy zadaniami
– kolejki komunikatów
Kolejki komunikatów, to inteligentne bufory, które zazwyczaj działają w oparciu o algorytm „pierwszy przyszedł, pierwszy został obsłużony” (FIFO).
- kolejki jednokierunkowe
© SCR 2010
- kolejki dwukierunkowe
30
Jądro systemu – komunikacja pomiędzy zadaniami
- potoki
Potoki (ang. pipes), służą do przechowywania danych jako strumień pozbawiony jakiejkolwiek struktury.
Potoki są odczytywane według algorytmu „pierwszy przyszedł, pierwszy zostanie obsłużony” (FIFO).
© SCR 2010
Dzięki wskaźnikom (deskryptorom) początku i końca potoku możliwe są operacje zapisu i odczytu.
31
Jądro systemu – komunikacja pomiędzy zadaniami
- rejestry zdarzeń
Bardzo często występuje konieczność, aby zadanie miało możliwość śledzenia wystąpienia jakiś konkretnych zdarzeń oraz podjęcia odpowiednich kroków w celu wypracowania jakiejś odpowiedzi na nie. Obiektami umożliwiającymi takie zachowanie są właśnie rejestry zdarzeń - obiekty, które składają się z szeregu bitów, interpretowanych jako flagi.
© SCR 2010
jako flagi.
32
Jądro systemu – komunikacja pomiędzy zadaniami
– sygnały
Sygnał, to przerwanie programowe, generowane w odpowiedzi na zaistnienie jakiegoś zdarzenia. Przerywa normalny tok wykonywania u jego odbiorcy oraz wymusza wykonanie jakiegoś określonego zadania.
© SCR 2010 33
Wyjątki
Wyj ątek (ang. exception) – jest to dowolne zdarzenie, które przerywanormalny tok obliczeń procesora i wymusza wykonanie określonegozbioru instrukcji w trybie uprzywilejowanym. Najogólniej można jepodzielić na dwie grupy: synchroniczne i asynchroniczne.
Synchroniczne są generowane przez tzw. zdarzenia wewnętrzne jak np.efekt wykonania jakiejś instrukcji procesora. Przykładami mogą być
© SCR 2010
efekt wykonania jakiejś instrukcji procesora. Przykładami mogą byćdzielenie przez zero lub niepoprawny odczyt z pamięci.
Asynchroniczne (przerwania) są generowane przez tzw. zdarzeniazewnętrzne.
34
Przerwania
Przerwanie (ang. interrupt, external interrupt) – to tzw. wyjątkiasynchroniczne i nie są powiązane z instrukcjami wykonywanymi przezprocesor. Ichźródłem są wszelkie zdarzenia zewnętrzne, czyli odnosząsię do różnych sygnałówgenerowanych przez sprzęt. Przykładami mogąbyć wciśnięcie przyciskuresetna płycie głównej lub sygnał urządzeniakomunikacyjnego,którewłaśnieotrzymałopakietz danymi.
© SCR 2010
komunikacyjnego,którewłaśnieotrzymałopakietz danymi.
Można je podzielić na maskowalne, czyli takie, które można wyłączyć programowo oraz niemaskowalne, których nie da się zablokować.
Przerwania niemaskowalne, są zazwyczaj połączone z procesorem przy pomocy specjalnego kanału komunikacyjnego i są obsługiwane natychmiast po ich wystąpieniu.
35
Czas
Aby poprawnie mogły działać proces szeregujący zadania oraz same zadania czasu rzeczywistego, bardzo ważne jest precyzyjne odmierzanie czasu.
Większość systemów wbudowanych dostarcza dwa rodzajemechanizmów odmierzających czas (ang. timer):
© SCR 2010
- timery oparte o rozwiązania sprzętowe (programowalne kontrolery czasu),
- typowe rozwiązania programowe.
36
Popularne systemy SOCR
– QNX Neutrino –
QNX, to zdaniem wielu (np. AMD, IBM, Cisco Systems) najlepszy i jednocześnie najbardziej zaawansowany oraz przyszłościowy,rygorystyczny (realizujący solidne wymagania czasowe) system operacyjny czasu rzeczywistego.
Jest pierwszym w historii systemem wielozadaniowym i wielodostępnym przeznaczonym dla mikrokomputerów IBM PC.
© SCR 2010
przeznaczonym dla mikrokomputerów IBM PC.
Wykorzystuje architekturę mikrojądra, które od wersji 6.0 systemu zajmuje 8kB (jądro systemu UNIX to co najmniej 700kB).
QNX ma strukturę modułową oraz architekturę opartą o przesyłanie komunikatów (model klient – serwer).
Wysoko posunięta modularność i skalowalność systemu.
Komunikacja pomiędzy procesami znajdującymi się na odległych węzłach sieci jest tak samo prosta, jak w obrębie jednego komputera. 38
Popularne systemy RTOS
– QNX Neutrino – (cd.)
QNX daje możliwość zdeterminowania czasu reakcji na zdarzenia występujące w systemie.
QNX dzięki rozbudowanym możliwościom definiowania priorytetów, jest stosowany jako system służący do sterowania automatyką przemysłową, gdzie pewne zdarzenia są krytyczne (np. otwarcie zaworu bezpieczeństwa w zbiorniku kiedy gwałtownie wzrasta ciśnienie) i
© SCR 2010
bezpieczeństwa w zbiorniku kiedy gwałtownie wzrasta ciśnienie) i muszą być zawsze obsłużone na czas.
Na bazie QNX opracowywane są również systemy SCADA.
QNX jest również wykorzystywany jako platforma dla baz danych.
39
Popularne systemy RTOS
– VxWorks -
Jeden z najbardziej profesjonalnych systemów czasu rzeczywistego firmy Wind River Systems.
Należy do grupy nowoczesnych systemów operacyjnych opartych na koncepcji wielozadaniowości, komunikacji między zadaniami, mikrojądrze oraz procedurach obsługi przerwań.
© SCR 2010
Posiada zaimplementowane funkcje komunikacji sieciowej.
Możliwość rozwoju systemu docelowego zgodnie ze standardem ANSI C i C++ oraz POSIX.
Bogaty zestaw dodatkowych pakietów oprogramowania: wykorzystanie wieloprocesorowości, biblioteki graficzne, narzędzia do testowania i uruchamiania aplikacji, wirtualne maszyny Javy, symulator środowiska docelowego
40
Popularne systemy SOCR
– RTLinux –
Występuje w dwóch wersjach, komercyjnej RT Linux PRO i w ogólnodostępnej GPL – RTLinux (darmowy i udostępniany wraz z całym kodem źródłowym).
Jego cechą charakterystyczną jest to, że współistnieją w nim: jądro czasu rzeczywistego RTCore i jądro Linuksa.
© SCR 2010
RTLinux „szybko” potrafi obsługiwać przerwania w warunkach dużego obciążenia obliczeniami, przy jednoczesnych znikomych operacjach dyskowych.
Architektura RTLinux wymusza jednak pewien styl programowania(podział na dwie części: obliczeniową i operacje dyskowe, sieciowe).
Typowa aplikacja składa się z zadań czasu rzeczywistego, które współpracują bezpośrednio ze sprzętem, a zadania Linuxa wykonują obliczenia nie wymagające reżimu czaus rzeczywistego. 41
Popularne systemy SOCR
– OS-9 –
To wielozadaniowy system operacyjny opracowany przez firmę Microware dla wbudowanych systemów sterujących opartych o procesory rodziny Motorola.
System OS-9 ma strukturę warstwową, złożoną z jądra, niezależnej od sprzętu warstwy podprogramów zarządzającej zbiorami (plikami) oraz warstwy podprogramów sterujących pracą urządzeń zewnętrznych.
© SCR 2010
warstwy podprogramów sterujących pracą urządzeń zewnętrznych.
Jedynym obowiązkowym elementem systemu jest jądro.
Podstawowymi językami programowania aplikacji są C i asembler, dodatkowo są dostępne kompilatory Basic i Pascal.
OS-9 nie można zakalikować do systemu rozproszonego ponieważ mechanizmy komunikacji i synchronizacji zadań są ograniczone do pojedynczego komputera.
42
Popularne systemy SOCR
– Windows CE –
Systemem czasu rzeczywistego Microsoftu o słabych wymaganiach czasowych.
Posiada architekturę modułową.
Zoptymalizowany dla urządzeń o niewielkiej ilości pamięci – jądro systemu wymaga do uruchomienia około 1MB RAM.
© SCR 2010
systemu wymaga do uruchomienia około 1MB RAM.
Microsoft opracował dedykowaną wersję systemu do układów elektronicznych urządzeń instalowanych w samochodach (np. zarządza sprzętem audio auta)
Szerokie pole do popisu wszędzie tam, gdzie konieczne jest wykorzystanie wszelkich najnowszych technologii, a zwłaszcza tych związanych z multimediami. Można tworzyć bardzo wydajne konsole służące do gier oraz instalować w nich różne pakiety biurowe.
43
Popularne systemy SOCR
– Windows XP Embendded –
Windows XP Embedded, nie jest zasadniczo przeznaczony do przetwarzania wczasie rzeczywistym. Jego budowa jest jednak tak zorganizowana, że łatwo można go wzbogacić o takie możliwości. Służą do tego specjalne komponenty oraz rozwiązania firmtrzecich.
Windows XP Embedded składa się dokładnie z tych samych plików binarnych, co jego brat, przeznaczony na komputery typu desktop, tyle
© SCR 2010
binarnych, co jego brat, przeznaczony na komputery typu desktop, tyle że niektóre zostały nieznacznie zmodyfikowane lub uproszczone.
Posiada architekturę modułową.
Znajduje zastosowanie u producentów bankomatów, terminale graficzne, urządzeń przenośnych, konsoli do gier oraz tych którzy wykorzystują najnowsze technologie multimedialne.
44
Popularne systemy SOCR
µC/OS-II : przenośny skalowalny, z wywłaszczeniem,wielozadaniowe jądro ładowane z ROM, platformadocelowa to m.in. MS-Win, DOS, x86, 68HC11, ARM
eCOS : wysoce konfigurowalny, 32 lub 64 bitowy, oparty nakoncepcji kodu źródłowego (nie jest to kolejny Linux),wysoce zoptymalizowany, zawiera bogatą bibliotekę
© SCR 2010
wysoce zoptymalizowany, zawiera bogatą bibliotekę matematyczną, komunikacyjną i system plików, platforma docelowa to m. in.: Windows, Sun, Linux,x86, ARM7
Przykłady darmowych SOCR dla rodziny AVR:
AvrX, EtherNut - Nut/OS, FreeRTOS, TinyOS,
XMK - eXtreme Minimal Kernel45
Systemy SOCR - obecnie
Obecnie dostępnych jest ponad kilkadziesiąt systemów SOCR lub mających znamiona systemów operacyjnych czasu rzeczywistego.
Część z nich to kompletne systemy operacyjne, w skład których wchodzą jądro, sterowniki I/O, systemy plików, usługi sieciowe ...
Niektóre dostępne są na licencji GPL a niektóre odpłatnie.
© SCR 2010
Niektóre dostępne są na licencji GPL a niektóre odpłatnie.
Ceny wahają się od kilkuset do kilkuset tysięcy zł, przy czym cena zależy od dodatkowych modułów.
46
Systemy SOCR – małe zestawienie
3779 Architektura (RTOS)
3458Instalacja i konfiguracja
2579Wydajność
RedHat Linux 1.1
VXWorks AE 1.1
WinCE .NET
QNX Neutrino 6.2
© SCR 2010 47
4.46.46.98.0Średni wynik
2457Dokumentacja i wsparcie tech.
8888Narzędzia
8998Obsługa internetu
5877Ilość API
(RTOS)
Źródło: Dedicated Systems Experts, sierpień 2002
Bibliografia:
[1] P.Szymczyk (2003). Systemy Operacyjne Czasu Rzeczywistego.Uczelniane Wydawnictwa Naukowo-Dydaktyczne, Kraków.
[2] J.Ułasiewicz (2007). System czasu Rzeczywistego QNX6 Neutrino.
© SCR 2010
[2] J.Ułasiewicz (2007). System czasu Rzeczywistego QNX6 Neutrino.Wydawnictwo BTC, Legionowo.
[3] K.Lal, T.Rak, K.Orkisz (2003). RTLinux system czasu rzeczywistego.Helion, Gliwice.
48