background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         1 

 

  Miary-efektywno

ści-RTS1.doc 

1  Ewaluacja systemów czasu rzeczywistego 

Kryteria jako

ściowe stopniowalne oceny systemów czasu 

rzeczywistego. 

• 

Bezpiecze

ństwo (ang. Safety

• 

Dyspozycyjno

ść – (ang. Dependability

• 

Przewidywalno

ść, nawet w przypadku wystąpienia błędów – 

(ang. Behavioural predictability, even in error situations

• 

Prostota – (ang. simplicity  - the simpler the better

• 

Niezawodno

ść - (ang. Reliability

• 

Odporno

ść – (ang. Robustness) 

• 

Tolerowanie b

łędów - (ang. Fault tolerance) 

• 

W

łasność stopniowej degradacji w przypadku wystąpienia 

niesprawno

ści - (ang. Graceful degradation upon malfunctions

• 

Przeno

śność – (ang. Portability

• 

Elastyczno

śc – (ang. Flexibility) 

 

Kryteria jako

ściowe binarne oceny systemów czasu rzeczywistego. 

• 

Spe

łnienie ograniczeń czasowych – (ang. ability to meet all 

deadlines

• 

Brak nieograniczonych w czasie opó

źnień i czasów wykonania 

– (ang. no unbounded delays nor arbitrarily long executions

• 

Licencje bezpiecze

ństwa – (ang. safety license

• 

Poprawno

ść funkcjonalna – (ang. functional correctness

• 

Deterministyczne zachowanie – (ang. deterministic behaviour

• 

Spe

łnienie ograniczeń fizycznych – (ang. physical constraints 

met

• 

Zapobieganie zakleszczeniom – (ang. deadlocks prevented

 
Kryteria ilo

ściowe oceny systemów czasu rzeczywistego. 

• 

Najd

łuższy czas odpowiedzi na zdarzenie – (ang. Worst-case 

response times to occurring events

• 

Najd

łuższy czas wykrycia i skorygowania błędów – (ang. Worst-

case time to detect and correct errors

• 

Średni czas między uszkodzeniami - MTBF,  

• 

Rezerwa mocy przetwarzania  

• 

Koszt  

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         2 

 

  Miary-efektywno

ści-RTS1.doc 

1.1  Ilo

ściowe miary efektywności systemów operacyjnych 

czasu rzeczywistego 

Prezentowane dalej wyniki dotycz

ą systemów: 

• 

QNX6 Neutrino 

• 

Linux PREEMPT_RT 

 
Linux PREEMPT_RT 

Linux PREEMPT_RT jest projektem rozwijanym przez Ingo 
Molnar’a (RedHat) oraz Thomas’a Gleixner’a. Jest to 

łatka która 

modyfikuje j

ądro Linux’a, w taki sposób aby stało się w pełni 

wyw

łaszczane. Dokonano tego poprzez zamianę „spinlocków” w 

j

ądrze na wywłaszczane „rtmuteksy”, przez co sekcje krytyczne 

staja si

ę wywłaszczane. Wprowadza także obsługę Timerów 

POSIX o wysokiej rozdzielczo

ści. Dzięki temu otrzymano 

rygorystyczny system czasu rzeczywistego. 
 

Testy wykonane na procesorze Intel Pentium IV Mobile o 
cz

ęstotliwości 2 GHz. 

 

1.1.1 Czas opó

źnienia przerwania 

Czas opó

źnienia przerwania  (ang. Interrupt Latency) jest to czas 

pomi

ędzy wystąpieniem przerwania a wykonaniem pierwszej 

instrukcji procedury obs

ługi tego przerwania (ang. Interrupt Service 

Routine – ISR).  
 

P1

ISR - Procedura

obslugi przerwania

Przerwanie

Start ISR

ISR

Interrupt

Latency

P1

Kontynuacj

a procesu

P1

Stop ISR

 

Rys. 1-1 Ilustracja czasu obs

ługi przerwania 

 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         3 

 

  Miary-efektywno

ści-RTS1.doc 

Czas opó

źnienia przerwania  zależy od następujących czynników: 

1.  Zablokowania przerwa

ń - przerwania w procesorze mogą być 

chwilowo zablokowane przez inny w

ątek lub handler w celu 

ochrony sekcji krytycznych. 

2.  Obs

ługi innych przerwań - kontroler przerwań może nie 

dopu

ścić do przyjęcia przerwania gdyż przerwanie o wyższym 

priorytecie jest w trakcie obs

ługi 

 
Czas opó

źnienia przerwania zależy od aktualnego stanu systemu. 

Przerwania w danym momencie czasu mog

ą być zablokowane lub 

te

ż nie. W związku z tym definiuje się maksymalny czas 

opó

źnienia przerwania. 

 

 Maksymalny czas opó

źnienia przerwania (ang. worst case 

interrupt latency) 

Maksymalny czas opó

źnienia przerwania to czas opóźnienia 

przerwania otrzymany dla najmniej korzystnego przypadku. 

 
 

W  systemie  operacyjnym  czasu  rzeczywistego  najd

łuższy 

czas  w  którym  przerwania  pozostaj

ą  zablokowane  powinien  być 

jak najkrótszy.  
 

 

 

Rys. 1-2 Czas  opó

źnienia przerwania  dla różnych systemów 

czasu rzeczywistego (Pentium 200 MHz) wg. Dedicated Systems 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         4 

 

  Miary-efektywno

ści-RTS1.doc 

 

Przypadek 

Maksymalny czas 

[µs] 

Średni czas [µs] 

System nie 

obci

ążony 

14,807 

12,339 

System  obci

ążony 

17,194 

14,640 

Rys. 1-3 Czas reakcji na przerwanie systemu QNX6 Neutrino - 
praca dypl. 

Łukasz Biały 

 

8

9

10

11

12

13

14

15

16

0

100

200

300

400

500

600

700

800

900

1000

Numer próbki

C

z

as

  

[ µ

s

 ]

 

Rys. 1-4 Czas reakcji na przerwanie systemie QNX 6 Neutrino bez 
obci

ążenia - praca dypl. Łukasz Biały 

 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         5 

 

  Miary-efektywno

ści-RTS1.doc 

10

11

12

13

14

15

16

17

18

0

100

200

300

400

500

600

700

800

900

1000

Numer próbki

C

z

a

s

 [ 

µ

s

 ] 

 

Rys. 1-5 Czas reakcji na przerwanie systemie QNX 6 Neutrino pod 
obci

ążeniem - praca dypl. Łukasz Biały 

 

 

Rys. 1-6 Histogram czasu reakcji na przerwanie w systemie QNX6 
Neutrino – praca dypl. 

Łukasz Biały 

  

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         6 

 

  Miary-efektywno

ści-RTS1.doc 

1.1.2 Czas prze

łączania kontekstu  

Czas prze

łączania zadań (ang. task switch time) jest to czas, w 

którym system operacyjny jest w stanie prze

łączyć aktualnie 

wykonywane zadanie na inne zadanie w systemie o tym samym 
priorytecie. Na ten czas sk

łada się czas potrzebny na zachowanie 

kontekstu procesu bie

żącego P1 i odtworzenie kontekstu procesu 

P2 podlegaj

ącego zaszeregowaniu. 

 
D

ługość czasu przełączania zadań uzależniona jest od: 

• 

z

łożoności struktur danych opisujących zadania  

• 

efektywno

ści procedur zmieniających kontekst zadań.  

 

Poniewa

ż pomiar dokonywany jest dla zadań o równym 

priorytecie, wymaga si

ę aby system realizował odpowiedni 

algorytm szeregowania, który przydziela

ć będzie czas procesora 

pomi

ędzy zadania o najwyższym priorytecie. Przykładem takiego 

algorytmu jest FIFO (ang. First In First Out) lub algorytm 
karuzelowy RR. 
 

P1

Context

Switching

Latency

P2

Wznowienie

procesu P2

Zawieszenie

procesu P1

 

Rys. 1-7 Ilustracja czasu prze

łączenia kontekstu 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         7 

 

  Miary-efektywno

ści-RTS1.doc 

 

Rys. 1-8 Czas prze

łączenia kontekstu dla różnych systemów 

czasu rzeczywistego (Pentium 200 MHz) – wg. Dedicated Systems 

 

System 

Ilo

ść 

w

ątków 

Maksymalny 

czas [µs] 

Średni czas[µs] 

7,527 

0,722 

10 

9,149 

0,734 

QNX 6 Neutrino 

128 

10,737 

0,745 

45,906 

2,234 

10 

46,244 

2,270 

PREEMPT_RT 

128 

47,802 

2,286 

Tab. 1-1 Wyniki pomiarów czasu prze

łączania wątków  – praca 

dypl. 

Łukasz Biały 

 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         8 

 

  Miary-efektywno

ści-RTS1.doc 

1.1.3 Czas wyw

łaszczania  

Czas wyw

łaszczania (ang. preemption time) jest to średni czas 

potrzebny na wyw

łaszczenie zadania o niższym priorytecie, przez 

zadanie o wy

ższym priorytecie.  

 

 

Rys. 1-9 Ilustracja czasu wyw

łaszczenia tp procesu T1 o niższym 

priorytecie przez proces T2 o priorytecie wy

ższym 

 
Na czas ten sk

łada się: 

1.  Czas opó

źnienia przerwania 

2.  Podj

ęcie decyzji szeregującej 

3.  Czas zachowanie kontekstu procesu bie

żącego  i 

przywrócenia kontekstu procesu wyw

łaszczającego 

 

1.1.4 Opó

źnienie szeregowania (ang. Scheduling Latency

Opó

źnienie szeregowania (ang. scheduling latency

Opó

źnienie szeregowania jest czasem który upływa pomiędzy 

wykonaniem ostatniej instrukcji procedury obs

ługi przerwania a 

wykonaniem pierwszej instrukcji przerwanego w

ątku lub też 

nast

ępnego gotowego wątku w kolejce. 

 

 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         9 

 

  Miary-efektywno

ści-RTS1.doc 

W tym czasie system wykonuje nast

ępujące czynności: 

1.  Szeregowanie w

ątków.  

2.  Wznowienie przerwanego lub te

ż innego wątku. 

 

P1

ISR - Procedura

obslugi

przerwania

Przerwanie

ISR

P2

Wznowienie

procesu P2

decyzja

szereguj

ąca

Zawiadomienie

Czas szeregowania

 

Rys. 1-10 Ilustracja czasu szeregowania 

 
 

Procesor 

Opó

źnienie 

przerwania 

[

µ

s] 

Opó

źnienie 

szeregowania 

[

µ

s] 

166 MHz Pentium 

4.3  

3.1 

100 MHz Pentium 

4.4  

3.9 

100 MHz 486DX4 

5.6  

33 MHz 386EX 

22.5  

26 

Tabela 1-1 Niektóre parametry czasowe systemu QNX6 Neutrino 

 

1.1.5 Czas utworzenia i ko

ńczenia nowego zadania 

Czas  utworzenia  nowego  zadania    (ang.  Task  creation  and 

termination

) to

 czas potrzebny do stworzenia nowego zadania oraz 

do  usuni

ęcia  istniejącego  zadania.  Są  to  dwie  bardzo  istotne 

operacje dla wielozadaniowego systemu czasu rzeczywistego. 

 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         10 

 

  Miary-efektywno

ści-RTS1.doc 

System 

Maksymalny czas 

[µs] 

Średni czas[µs] 

QNX 6 Neutrino 

72,254 

56,144 

PREEMPT_RT 

497,243 

61,995 

     Tab. 1-2  Czas tworzenia i usuwania w

ątków 

 
 

 

1.1.6 Czas inicjalizacji systemu 

Czas  inicjalizacji  systemu  (ang. 

Initialisation  time

)  to  czas 

mierzony  od  momentu  uruchomienia  systemu  do  momentu 

uzyskania  przez  system  operacyjny  pe

łnej  funkcjonalności.  W 

przypadku  awarii,  restartu  system  powinien  by

ć  gotowy  do  pracy 

tak szybko jak to tylko mo

żliwe. 

 

 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         11 

 

  Miary-efektywno

ści-RTS1.doc 

1.1.7 Czas prze

łączenia semafora 

Czas prze

łączenia semafora (ang. Semaphore shuffling time) to 

średni czas pomiędzy zwolnieniem semafora przez aktualnie 
wykonywane zadanie, a uruchomieniem pierwszej instrukcji 
zadania oczekuj

ącego na ten semafor. Czas 

ten zale

ży głównie od sposobu implementacji mechanizmu 

semaforów w danym systemie operacyjnym. W systemie czasu 
rzeczywistego, gdzie wiele aplikacji korzysta ze wspólnych 
zasobów, krótki czas operacji semaforowych jest bardzo wa

żnym 

czynnikiem. 

 

Rys. 1-11 Ilustracja czasu prze

łączenia semafora 

 
 

System 

Obci

ążenie 

Maksymalny 
czas [µs] 

Średni czas[µs] 

NIE 

7,862 

1,021 

QNX 6 Neutrino  TAK 

10,653 

1,049 

PREEMPT_RT 

NIE 

53,135 

10,167 

Tab. 1-3 Wyniki pomiarów czasu operacji semaforowych - praca 
dypl. 

Łukasz Biały 

 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         12 

 

  Miary-efektywno

ści-RTS1.doc 

1.1.8 Czas likwidacji inwersji priorytetów (ang. deadlock breaking 

time

Sytuacj

ę, w której zadanie o wyższym priorytecie wywłaszczy 

zadanie o ni

ższym priorytecie, które przetrzymuje zasób 

wymagany przez zadanie o wy

ższym priorytecie, nazywamy 

inwersj

ą priorytetów.  Czas likwidacji inwersji jest to średni czas, w 

którym system sobie poradzi z inwersj

ą. 

W3
odblokowanie

w

ątek W1

priorytet 1

w

ątek W2

priorytet 2

w

ątek W3

priorytet 3

zablokowany

T

Czas

t5

t1

t2

W3 mutex_lock()

t3

W2 wyw

łaszcza

W1

t4

W1 mutex_lock()

t0

1

W1 wznowiony

3

1

2

W2 blokuje si

ę

1

W1 mutex_unlock()

3

W3 mutex_unlock()

t6

t7

t8

Z1

Z2

Z3

priorytet 1 <  priorytet 2   <  priorytet 3

 

Rys. 1-12  Ilustracja czasu T likwidacji inwersji priorytetów 

Czas likwidacji zakleszczenia to czas pomi

ędzy zażądaniem 

zasobu przez w

ątek o najwyższym priorytecie a jego otrzymaniem. 

Zale

ży on od jakości mechanizmu zapobiegania inwersji 

priorytetów. 
 

1.1.9 Przepustowo

ść komunikacji międzyzadaniowej 

Przepustowo

ść komunikacji międzyzadaniowej (ang. Datagram 

throughput ) to ilo

ść bajtów na sekundę, jakie mogą zostać 

przes

łane pomiędzy dwoma zadaniami przy pomocy komunikatów 

(ang. Message passing). 
 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         13 

 

  Miary-efektywno

ści-RTS1.doc 

1.2  Testy 

Testy (ang. benchmark) to programy lub zestawy programów

1

które zosta

ły wybrane lub zaprojektowane w celu testowania i/lub 

pomiaru wydajno

ści obliczeniowej systemów informatycznych. 

Powinny one pomaga

ć podczas projektowania systemu lub w 

podj

ęciu decyzji o zakupie danego systemu informatycznego. 

 

Kelvin Obenland podzieli

ł zestaw kryteriów porównawczych, 

istotnych dla systemów zgodnych z POSIX, na dwie kategorie.   

• 

Testy które mierz

ą determinizm danego systemu operacyjnego,  

• 

Testy które mierz

ą opóźnienia szczególnie ważnych operacji 

 

Pierwsza  kategoria  oprogramowania  mierzy  czas  odpowiedzi 

systemu, rozstrzyga czy w

ątki działają w sposób przewidywalny.  

 

Druga  kategoria  mierzy  czas  zmiany  kontekstu  pomi

ędzy  wątkami 

i  procesami.  Mierzy  przepustowo

ść  danych  pomiędzy  procesami  i 

w

ątkami oraz opóźnienie sygnałów POSIX. 

 

Szerzej znane s

ą następujące testy: 

• 

Oszacowanie trójwymiarowe 

• 

Rhealstones 

• 

MiBench 

• 

Hardstones 

 
 

                                       

 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         14 

 

  Miary-efektywno

ści-RTS1.doc 

1.1.10 

Oszacowanie trójwymiarowe 

Bierze si

ę pod uwagę: 

• 

MIPS1 - Liczba milionów operacji na sekund

ę   

• 

MIPS2 - Liczba milionów przerwa

ń na sekundę 

• 

NIOPS - Liczba milionów operacji we/wy na sekund

ę 

 
Wynik = (MIPS1  * MIPS2 * NIOPS) 

1/3 

 

 

 

1.1.11 

Rhealstone 

Rhealstone jest zestawem sze

ściu programów napisanych w 

j

ęzyku C. Każdy z nich mierzy czas operacji charakterystycznej dla 

systemów czasu rzeczywistego: 

1.   Czas prze

łączenia zadań - task-switch time

2. 

 

Czas wyw

łaszczenia - preemption time, 

3. 

 

Czas opó

źnienia przerwania  - interrupt latency , 

4. 

 

Czas prze

łączenia semafora - semaphore-shuffle time

5. 

 

Czas likwidacji zakleszczenia  - deadlock-break time

6. 

 

Opó

źnienie  przesyłania komunikatów - intertask message 

latency. 

 
Z otrzymanych czasów obliczana jest warto

ść średnia na 

podstawie wzoru  

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         15 

 

  Miary-efektywno

ści-RTS1.doc 

(

)

6

/

6

5

4

3

2

1

t

t

t

t

t

t

t

+

+

+

+

+

=

 

Czasy wyra

żone są w sekundach. Tak zwaną wartość Rhealstone 

definiujemy jako odwrotno

ść wyliczonej średniej 

t

1

 

Im wi

ększa jest wartość tym system szybszy. 

 
Wady testu Rhealstones: 

• 

Mierzy warto

ści średnie a nie dla najgorszego przypadku. 

• 

Wynik jest sum

ą ważoną składników, nie ma jednoznacznych 

ustale

ń co do wag. 

 

1.1.12 

MiBench 

MiBench jest zestawem 35 aplikacji typowych dla systemów 

wbudowanych. Zosta

ły one podzielone na sześć zestawów, z 

których ka

żdy celuje w specyficzny obszar  systemów 

wbudowanych: 

• 

sterowania motoryzacyjnego i przemys

łowego, 

• 

urz

ądzeń konsumenckich,  

• 

automatyki biurowej, 

• 

sieciowy, 

• 

bezpiecze

ństwa, 

• 

telekomunikacyjny. 

Źródła wszystkich programów dostępne są w standardowym 

j

ęzyku C. Dzięki temu kod jest w pełni przenośny i może zostać 

skompilowany prawie na ka

żdej platformie. Dostępne są również 

dedykowane zbiory danych do poszczególnych testów. Do 

testowania systemów rygorystycznych nadaje si

ę jedynie pierwszy 

zestaw. 

 

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         16 

 

  Miary-efektywno

ści-RTS1.doc 

1.1.13 

Hartstone 

Test Hartstone zosta

ł zaprojektowany w celu sprawdzenia 

wymogów czasowych rygorystycznych systemów czasu 

rzeczywistego. Ca

łość napisana w języku ADA na uniwersytecie 

Carnegie Mellon. Nazwa testu pochodzi od angielskiego 

okre

ślenia systemów rygorystycznych „HArd Real-Time” . 

Hartstone, zosta

ł określony jako duża liczba małych procesów z 

dok

ładnie określonym obciążeniem procesora jak i terminami 

zako

ńczenia. Zostały one podzielone na pięć serii testowych 

sk

ładających się z kilku eksperymentów. Każda seria uruchamia 

inne procesy: 

1.  Cykliczne zadania, harmoniczne cz

ęstotliwości, 

2.  Cykliczne zadania, nieharmoniczne cz

ęstotliwości, 

3.  Cykliczne zadania, harmoniczne cz

ęstotliwości z niecyklicznym 

przetwarzaniem, 

4.  Cykliczne zadania, harmoniczne cz

ęstotliwości z 

synchronizacj

ą, 

5.  Cykliczne zadania, harmoniczne cz

ęstotliwości z niecyklicznym 

przetwarzaniem i synchronizacj

ą 

 

Dla ka

żdej serii został określony „zestaw podstawowych 

zada

ń”, ze ściśle określonym obciążeniem obliczeniowym, 

ograniczeniami czasowymi oraz d

ługością okresu. Przy każdej 

nast

ępnej iteracji, zmieniane są parametry lub zwiększane jest 

obci

ążenie procesora. Raz uruchomiony test działa, dopóki nie 

zostanie przekroczony który

ś z terminów albo przewidziany czas 

odpowiedzi. Wynikiem poszczególnej serii testów, jest zestaw 

parametrów, dla których program zako

ńczył swoje działanie oraz 

najwy

ższe zarejestrowane obciążenie obliczeniowe.  

PDF created with pdfFactory trial version 

www.pdffactory.com

background image

J. U

łasiewicz      Programowanie aplikacji współbieżnych         17 

 

  Miary-efektywno

ści-RTS1.doc 

Dok

ładna interpretacja tak otrzymanych wyników pozwala na 

ocen

ę całej platformy, zarówno sprzętu jaki i oprogramowania 

systemowego, przydatno

ści do użytku z aplikacjami czasu 

rzeczywistego. Podczas gdy Hartstone zosta

ł zaprojektowany 

z my

ślą o pojedynczo-procesorowych systemach. W późniejszym 

czasie zosta

ł rozszerzony o możliwość pomiaru systemów 

rozproszonych.  

 

1.2 

Żródła 

[1] Roman Gumzej, Wolfgang A. Halay; Real Time Systems 

Quality of Service, wyd Springer 2010. 

[2] 

Łukasz Biały, Praca dyplomowa, Politechnika Wrocławska 

2010. 

 

 

 

PDF created with pdfFactory trial version 

www.pdffactory.com