1 Ewaluacja systemów czasu rzeczywistego

Podobne dokumenty
1 Ewaluacja systemów czasu rzeczywistego

Prezentacja systemu RTLinux

* Wymień typowe standardy sygnałów procesowych: - analogowy - dwustanowe

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

4. Procesy pojęcia podstawowe

Planowanie przydziału procesora CPU scheduling. Koncepcja szeregowania. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler

Planowanie przydziału procesora

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

Jądro systemu operacyjnego

1. Szeregowanie w systemach czasu rzeczywistego

Systemy Czasu Rzeczywistego (SCR)

Planowanie przydziału procesora

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Linux - Real-Time (?)

Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

7. Szeregowanie procesów w systemie QNX6 Neutrino

POSIX ang. Portable Operating System Interface for Unix

5. Model komunikujących się procesów, komunikaty

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Systemy czasu rzeczywistego wstęp

Opis efektów kształcenia dla modułu zajęć

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Podstawowe zagadnienia

Systemy wbudowane - wykład 9. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes.

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Analiza ilościowa w przetwarzaniu równoległym

Czujniki obiektowe Sterowniki przemysłowe

PRZEWODNIK PO PRZEDMIOCIE

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Mechanizmy pracy równoległej. Jarosław Kuchta

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Jesień LinuksowaLinux - Real-Time w systemach wbudowanych

Systemy Czasu Rzeczywistego (SCR)

Planowanie przydziału procesora

REAL-TIME LINUX. ZGODNOŚĆ Z POSIX ( PSE51 (minimal realtime system profile)

Systemy Czasu Rzeczywistego (SCR)

Jedrzej Ułasiewicz Komputerowe systemy sterowania 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

Etapy życia oprogramowania

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

Systemy operacyjne III

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

Laboratorium Komputerowe Systemy Pomiarowe

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.3

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Systemy operacyjne III

Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14

Co to jest system wbudowany?

SLA ORAZ ZASADY ŚWIADCZENIA WSPARCIA I HELPDESK. Wykonawca zobowiązuje się do świadczenia Usług Wsparcia i Helpdesk w odniesieniu do Systemu.

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

Systemy zabezpieczeń

Programowanie współbieżne Wykład 2. Iwona Kochańska

Testowanie i walidacja oprogramowania

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

Planowanie przydziału procesora

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Zarządzanie procesami i wątkami

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

Zarządzanie procesorem

Systemy Czasu Rzeczywistego (SCR)

1 Podstawowe definicje i pojęcia współbieżności

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Automatyki

Zaawansowane programowanie w C++ (PCP)

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

PLAN ZARZĄDZANIA KONFIGURACJĄ OPROGRAMOWANIA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

SYLABUS/KARTA PRZEDMIOTU

Bezpieczeństwo aplikacji i urządzeń mobilnych w kontekście wymagań normy ISO/IEC oraz BS doświadczenia audytora

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Tom 6 Opis oprogramowania

SYSTEMY OPERACYJNE SYLABUS A. Informacje ogólne

projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro

Dobór systemów klasy ERP

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

ARCHITEKTURA PROCESORA,

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Systemy wbudowane - wykład 3

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

Systemy wbudowane. Paweł Pełczyński

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Niniejszy załącznik reguluje sposób monitorowania, raportowania i rozliczenia poziomu świadczenia zakontraktowanych Usług.

Autor: Artur Lewandowski. Promotor: dr inż. Krzysztof Różanowski

Transkrypt:

J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Ewaluacja systemów czasu rzeczywistego 1.1 Kryteria oceny 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 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) Ogólne 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. Worstcase time to detect and correct errors) Średni czas między uszkodzeniami - MTBF, Rezerwa mocy przetwarzania Koszt

J. Ułasiewicz Programowanie aplikacji współbieżnych 2 1.2 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.2.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). Przerwanie Interrupt Latency ISR - Procedura obslugi przerwania Kontynuacj a procesu P1 P1 ISR P1 Start ISR Stop ISR Rys. 1-1 Ilustracja czasu opóźnienia obsługi przerwania

J. Ułasiewicz Programowanie aplikacji współbieżnych 3 Czas opóźnienia obsługi przerwania czynników: zależy od następujących 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.

J. Ułasiewicz Programowanie aplikacji współbieżnych 4 Rys. 1-2 Czas opóźnienia przerwania dla różnych systemów czasu rzeczywistego (Pentium 200 MHz) wg. Dedicated Systems 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 16 15 14 Czas [ µs ] 13 12 11 10 9 8 0 100 200 300 400 500 600 700 800 900 1000 Numer próbki Rys. 1-4 Czas reakcji na przerwanie systemie QNX 6 Neutrino bez obciążenia - praca dypl. Łukasz Biały

J. Ułasiewicz Programowanie aplikacji współbieżnych 5 Czas [ µs ] 18 17 16 15 14 13 12 11 10 0 100 200 300 400 500 600 700 800 900 1000 Numer próbki 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

J. Ułasiewicz Programowanie aplikacji współbieżnych 6 1.2.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. Zawieszenie procesu P1 Context Switching Latency Wznowienie procesu P2 P1 P2 Rys. 1-7 Ilustracja czasu przełączenia kontekstu

J. Ułasiewicz Programowanie aplikacji współbieżnych 7 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] 2 7,527 0,722 10 9,149 0,734 QNX 6 Neutrino 128 10,737 0,745 2 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

J. Ułasiewicz Programowanie aplikacji współbieżnych 8 1.2.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.2.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.

J. Ułasiewicz Programowanie aplikacji współbieżnych 9 W tym czasie system wykonuje następujące czynności: 1. Szeregowanie wątków. 2. Wznowienie przerwanego lub też innego wątku. Przerwanie ISR - Procedura obslugi przerwania Zawiadomienie decyzja szeregująca Wznowienie procesu P2 P1 ISR P2 Czas szeregowania Rys. 1-10 Ilustracja czasu szeregowania 1.2.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. 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

J. Ułasiewicz Programowanie aplikacji współbieżnych 10 1.2.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. 1.2.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

J. Ułasiewicz Programowanie aplikacji współbieżnych 11 System Maksymalny Obciążenie 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 1.2.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ą. t0 t1 t2 t3 t4 t5 priorytet 1 < priorytet 2 < priorytet 3 wątek W1 priorytet 1 1 1 Z1 wątek W2 priorytet 2 Z2 Z3 wątek W3 priorytet 3 3 W1 wznowiony W1 mutex_lock() W3 odblokowanie W3 mutex_lock() W2 wywłaszcza W1 2 T t6 t7 t8 Czas 1 zablokowany 3 W2 blokuje się W1 mutex_unlock() W3 mutex_unlock() 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.

J. Ułasiewicz Programowanie aplikacji współbieżnych 12 1.2.9 Czas opóźnienia komunikacji międzyzadaniowej Czas opóźnienia komunikacji międzyzadaniowej to czas jaki mija pomiędzy wysłaniem komunikatu przez jeden proces P1 a odbiorem komunikatu przez inny proces P2. 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). Proces P1 wysyla komunikat Czas opóżnienia komunikatu Procesu P2 odbiera komunikat P2 P1 Rys. 1-13 Czas opóźnienia komunikacji

J. Ułasiewicz Programowanie aplikacji współbieżnych 13 1.3 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

J. Ułasiewicz Programowanie aplikacji współbieżnych 14 1.3.1 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

J. Ułasiewicz Programowanie aplikacji współbieżnych 15 1.3.2 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: ( t + )/ 6 1 t + 2 t + 3 t + 4 t5 t6 t = + Czasy wyrażone są w sekundach. Tak zwaną wartość Rhealstone definiujemy jako odwrotność wyliczonej średniej 1 t 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.

J. Ułasiewicz Programowanie aplikacji współbieżnych 16 1.3.3 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. 1.3.4 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:

J. Ułasiewicz Programowanie aplikacji współbieżnych 17 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. 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.

J. Ułasiewicz Programowanie aplikacji współbieżnych 18 1.4 Certyfikaty Certyfikaty stanowią pewien rodzaj referencji i mogą pomóc przy wyborze systemu operacyjnego. Norma ISO 9001:2000 Dotyczy zarządzania jakością oferowanych usług oraz produktów i definiuje wszystko od odpowiedzialności kierownictwa, przez zarządzanie zasobami aż do realizacji wyrobu. Certyfikat nadany przez ISO gwarantuje ona powtarzalność procesu produkcji, a także ciągłe ulepszanie produktów i usług na rzecz zadowolenia klientów. POSIX PSE52 Realtime Controller 1003.13-2003 Certyfikat ten nadawany przez IEEE oraz The Open Group zapewnia zarówno przenoszalność kodu a także spełnia kryteria czasu rzeczywistego wymagane przez systemy militarne, sieciowe oraz motoryzacyjne. Common Criteria (ISO/IEC 15408) EAL4+ Common Criteria to norma pozwalająca w sposób formalny weryfikować bezpieczeństwo systemów teleinformatycznych. Udostępnia ona procedury pozwalające na zdefiniowanie zagrożeń oraz zabezpieczeń, które na te zagrożenia odpowiadają, a następnie przeprowadzenie formalnej weryfikacji ich faktycznego działania w produkcie. Certyfikacją według normy CC zajmują się niezależne, akredytowane laboratoria badawcze na całym świecie. Wynikiem procesu certyfikacji jest tzw. "profil ochrony" (PP ang. protection profile), który definiuje zabezpieczenia stosowane przez produkt oraz certyfikat, potwierdzający ich faktyczną skuteczność. Proces certyfikacji może być prowadzony według różnych poziomów szczegółowości i weryfikacji formalnej (EAL ang. Evaluation Assurance Level), począwszy od EAL1 (tylko testy funkcjonalne) aż do EAL7 (formalna weryfikacja projektu oraz testy). System QNX Neutrino w wersji 6.4 posiada certyfikat na poziomie EAL4+. Przeprowadzone testy dotyczyły jądra systemu, przetwarzania wieloprocesorowego oraz bezpiecznego partycjonowania.

J. Ułasiewicz Programowanie aplikacji współbieżnych 19 IEC Safety Integrity Level (SIL) Certyfikat nadawany przez IEC (ang. International Electrotechnical Commision) w zakresie bezpieczeństwa systemu. Potwierdza on najwyższą możliwą redukcję ryzyka osiągalną przy używaniu systemu jednoprocesorowego w takich gałęziach przemysłu jak motoryzacja, przemysł ciężki, górnictwo oraz w innym gdzie bezpieczeństwo jest priorytetem. Dla zapewnienia wiarygodności certyfikat jest regularnie weryfikowany. System QNX Neutrino spełnia wymagania poziomie SIL3 (SIL ang. Safety Integrity Level). 1.5 Ź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. [3] Michał Stangret, Praca dyplomowa, Ocena wybranych systemów operacyjnych czasu rzeczywistego, Wrocław 2009