Systemy Czasu Rzeczywistego (SCR) -...

49
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

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

Krótka charakterystyka

wybranych

© SCR 2010

wybranych

Systemów Operacyjnych

Czasu Rzeczywistego

37

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

Dziękuję za uwagę !!!

© SCR 2010

Dziękuję za uwagę !!!

49