Systemy Czasu Rzeczywistego (SCR)



Podobne dokumenty
Systemy Czasu Rzeczywistego (SCR)

Prezentacja systemu RTLinux

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Systemy Czasu Rzeczywistego (SCR)

Podstawowe zagadnienia

Jądro systemu operacyjnego

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

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

Architektury systemów czasu rzeczywistego RTOS. Wykonał: Bartłomiej Bugański

PRZEWODNIK PO PRZEDMIOCIE

Metody obsługi zdarzeń

Czujniki obiektowe Sterowniki przemysłowe

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Przerwania, polling, timery - wykład 9

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

4. Procesy pojęcia podstawowe

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

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

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

Wprowadzenie do systemów operacyjnych

Systemy Czasu Rzeczywistego (SCR)

SYLABUS/KARTA PRZEDMIOTU

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

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

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

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

4. Procesy pojęcia podstawowe

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

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

Systemy Czasu Rzeczywistego (SCR)

Działanie systemu operacyjnego

Systemy Czasu Rzeczywistego (SCR)

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

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

Sieciowe Systemy Operacyjne

Działanie systemu operacyjnego

4. Procesy pojęcia podstawowe

Działanie systemu operacyjnego

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Systemy operacyjne III

Systemy Czasu Rzeczywistego (SCR)

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

1. Etapy rozwoju systemów komputerowych

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Systemy czasu rzeczywistego wstęp

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

1. Szeregowanie w systemach czasu rzeczywistego

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

POSIX ang. Portable Operating System Interface for Unix

Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia

Metody optymalizacji soft-procesorów NIOS

Simulator of Operating System

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

Systemy operacyjne III

Systemy operacyjne. Paweł Pełczyński

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

WPROWADZENIE Mikrosterownik mikrokontrolery

Systemy czasu rzeczywistego Real Time Systems. Automatyka i Robotyka I stopień ogólnoakademicki

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

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

Sterowniki Programowalne (SP) Wykład 11

System operacyjny System operacyjny

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Bazy danych w sterowaniu

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

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

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

KARTA PRZEDMIOTU. Projektowanie systemów czasu rzeczywistego D1_13

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Budowa systemów komputerowych

Systemy wbudowane. Paweł Pełczyński

Uniwersalny Konwerter Protokołów

dr inż. Jarosław Forenc

Mikroprocesor Operacje wejścia / wyjścia

Planowanie przydziału procesora

Sterowniki Programowalne (SP)

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

Planowanie przydziału procesora

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

System komputerowy. System komputerowy

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

2.2.P.07: Komputerowe narzędzia inżynierii powierzchni

Systemy operacyjne III

Układy czasowo-licznikowe w systemach 80x86

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Materiały dodatkowe. Simulink Real-Time

Transkrypt:

Systemy Czasu Rzeczywistego (SCR) Elementy systemów operacyjnych czasu rzeczywistego 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 1

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 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). Zadania periodyczne mogą się pojawiać równocześnie (w tym samym czasie), przy czym nie może to zaburzyć normalnej pracy systemu. 3

Jądro systemu Szeregowanie zadań model periodyczny (okresowy) 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, od momentu jego zajścia o czas t : czas potrzebny na obsługę zdarzenia (realizacja zadania) zadanie zadanie zadanie zdarzenie okres 1 okres 2 okres 3 zdarzenie zdarzenie 4

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 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 Monotonic Scheduling) o szeregowanie karuzelowe (ang. Round Robin Scheduling) 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 regularnych odcinkach czasu) 2. Zadania nie synchronizują się miedzy sobą w trakcie współdzielenia zasobów i komunikacji 3. Procesor zawsze wykonuje zadanie o najwyższym priorytecie, które jest gotowe 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

Jądro systemu Szeregowanie zadań algorytm RMS 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; E1, E2 E1 E1, E2 E1 E1 zdarzenie wyzwalające zadanie Z1 E2 zdarzenie wyzwalające zadanie Z2 Z1 Z2 Z1 Z1 Z2 Z1 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 czas Całkowite obciążenie procesora: u = (20/50) + (35/100) = 0.75 8

Jądro systemu Szeregowanie zadań algorytm RMS Zakładamy chwilowo, że zadanie drugie ma większy priorytet od zadania pierwszego E1, E2 E1 E1, E2 Z2 Z1 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 czas Przekroczenie terminu!!! 9

Jądro systemu Szeregowanie zadań algorytm RMS 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; E1, E2 E1 Przekroczenie terminu!!! Z1 Z2 Z1 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 czas Całkowite obciążenie procesora: u = (25/50) + (35/80) = 0.94!!! 10

Jądro systemu Szeregowanie zadań algorytm RMS Podstawowe twierdzenie RMS: wszystkie solidne limity czasowe systemu SOCR będą zawsze spełnione jeżeli: i ti p i n 2 1 n 1 gdzie: n dany zestaw zadań z przypisanymi priorytetami RMS, t i maksymalny czas wykonania zadania i, p i okres wykonania zadania i, t i / p i 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ń 1 n n 2 1 1 1.000 2 0.828 3 0.779 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óre wykonuje się przez taki sam przedział czasu i oddaje procesor kolejnemu zadaniu o takim samym priorytecie 3. W przypadku wywłaszczenia zadania, w trakcie jego przedziału czasu, przez zadanie o wyższym priorytecie, po wykonaniu zadania o wyższym priorytecie zadanie to wykorzystuje pozostały należny mu czas procesora Algorytm przeznaczony do szeregowania zadań w środowisku zdominowanym przez zadania wykonywane współbieżnie 13

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: 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 jego priorytet jest obniżony o 1 2. Jeżeli zadanie nie podejmie pracy w kolejnym, określonym przedziale czasu jego priorytet jest podwyższony o 1 3. Priorytet zadania nie może być podwyższony powyżej oryginalnego priorytetu zadania 4. Zadanie zawieszone uzyskuje swój dawny priorytet Algorytm przeznaczony do szeregowania zadań sporadycznych pojawiających się w środowisku zdominowanym przez zadania cykliczne 15

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 sterowane hardware-owym zegarem zewnętrznym Algorytm przeznaczony do szeregowania zadań w środowisku zdominowanym przez zadania synchroniczne (cykliczne) zawierającym kilka aperiodycznych i sporadycznych zadań 16

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. 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. Z1 Zadanie żąda dostępu do R2 Z2 Zadanie żąda dostępu do Zasób należy do R3 R1 Zadanie żąda dostępu do Z3 Zasób należy do Zadania: Z1, Z2, Z3 Zasoby: R1, 18R2, R3

Zakleszczenie procesów (cd.) Algorytmy wykrywające zakleszczenie oparte są głównie o 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ć. 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 polega na 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 E2 INWERSJA PRIORYTETÓW E1 zdarzenie wyzwalające zadanie Z1 E2 zdarzenie wyzwalające zadanie Z2 wysoki średni Z2 Z2 Z2 wywłaszcza Z1 Z1 zajmuje zasób R1 Z2 blokuje się, bo zasób R1 zajęty przez Z1 Z1 zwalnia zasób R1, zatem Z2 wchodzi w stan gotowe i wywłaszcza Z1 Z2 zwalnia zasób R1 E1 niski Z1 Z1 t1 t2 t3 t4 t5 t6 t7 t8 czas Dwa zadania, zadanie o priorytecie niskim (Z1) i zadanie o priorytecie wysokim (Z2) korzystające z tego samego zasobu (R1) 21

Inwersja priorytetów (cd.) priorytet E2 INWERSJA PRIORYTETÓW E1 zdarzenie wyzwalające zadanie Z1 E2 zdarzenie wyzwalające zadanie Z2 E3 zdarzenie wyzwalające zadanie Z3 wysoki średni E3 Z2 Z2 Z2 wywłaszcza Z1 Z1 zajmuje zasób R1 Z2 blokuje się, bo zasób R1 zajęty przez Z1 Z3 się kończy i zwalnia zasób R1 Z1 się kończy i zwalnia zasób R1 Z2 się kończy i zwalnia zasób R1 nieznany czas!!! Z3 wywłaszcza Z1 E1 niski Z1 Z1 Z3 Z1 czas t1 t2 t3 t4 t5 t6 t7 t8 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

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. 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 E2 INWERSJA PRIORYTETÓW E1 zdarzenie wyzwalające zadanie Z1 E2 zdarzenie wyzwalające zadanie Z2 E3 zdarzenie wyzwalające zadanie Z3 wysoki średni Z2 Z1 Z2 Z1 zajmuje zasób R1 Z2 wywłaszcza Z1 Z2 blokuje się, bo zasób R1 zajęty przez Z1, podniesienie priorytetu Z1 Z1 kończy się i zwalnia zasób R1, powrót do pierwotnego priorytetu Z1 Z2 kończy się i zwalnia zasób R1 Z3 kończy się i zwalnia zasób R1 E1 niski Z1 E3 Z1 Z3 E1 Z1 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 t1 t2 t3 t4 t5 t6 t7 t8 czas

Inwersja priorytetów rozwiązanie przez pułap priorytetów priorytet 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ć. 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. wysoki średni Z1 zajmuje zasób niski Z1 Z1 t1 t2 t3 t4 Z1 Z1 zwalnia zasób czas 25

Jądro systemu komunikacja pomiędzy zadaniami - model przesyłania komunikatów komunikat Klient Serwer odpowiedź 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. Operacje na semaforach, umożliwiające wstrzymanie i wznowienie procesów: - czekaj: to operacja opuszczająca semafor, zmniejsza jego wartość o jeden (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ć albo podnosić 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. 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ę czekaj aby synchronizować dostęp do jakiegoś zasobu, a później inne zadanie niezwią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. 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 - 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). 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. 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. 33

Wyjątki Wyjątek (ang. exception) jest to dowolne zdarzenie, które przerywa normalny tok obliczeń procesora i wymusza wykonanie określonego zbioru instrukcji w trybie uprzywilejowanym. Najogólniej można je podzielić 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ć dzielenie przez zero lub niepoprawny odczyt z pamięci. Asynchroniczne (przerwania) są generowane przez tzw. zdarzenia zewnętrzne. 34

Przerwania Przerwanie (ang. interrupt, external interrupt) to tzw. wyjątki asynchroniczne i nie są powiązane z instrukcjami wykonywanymi przez procesor. Ich źródłem są wszelkie zdarzenia zewnętrzne, czyli odnoszą się do różnych sygnałów generowanych przez sprzęt. Przykładami mogą być wciśnięcie przycisku reset na płycie głównej lub sygnał urządzenia komunikacyjnego, które właśnie otrzymało pakiet z 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 rodzaje mechanizmów odmierzających czas (ang. timer): - timery oparte o rozwiązania sprzętowe (programowalne kontrolery czasu), - typowe rozwiązania programowe. 36

Krótka charakterystyka 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. 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 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ń. 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. 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. 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. 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 w czasie 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 firm trzecich. Windows XP Embedded składa się dokładnie z tych samych plików 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 ecos : przenośny skalowalny, z wywłaszczeniem, wielozadaniowe jądro ładowane z ROM, platforma docelowa to m.in. MS-Win, DOS, x86, 68HC11, ARM : wysoce konfigurowalny, 32 lub 64 bitowy, oparty na koncepcji kodu źródłowego (nie jest to kolejny Linux), 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 Kernel 45

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. 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 QNX Neutrino 6.2 WinCE.NET VXWorks AE 1.1 RedHat Linux 1.1 Wydajność 9 7 5 2 Instalacja i konfiguracja 8 5 4 3 Architektura (RTOS) 9 7 7 3 Ilość API 7 7 8 5 Obsługa internetu 8 9 9 8 Narzędzia 8 8 8 8 Dokumentacja i wsparcie tech. 7 5 4 2 Średni wynik 8.0 6.9 6.4 4.4 Źródło: Dedicated Systems Experts, sierpień 2002 47

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. Wydawnictwo BTC, Legionowo. [3] K.Lal, T.Rak, K.Orkisz (2003). RTLinux system czasu rzeczywistego. Helion, Gliwice. 48

Dziękuję za uwagę!!! 49