TEMAT 01 / 06
System czasu rzeczywistego
System czasu rzeczywistego – def, klasyfikacja, kryteria czasowe
Definicja (IEEE)
System czasu rzeczywistego to system komputerowy, w którym poprawność działania zależy nie tylko od poprawności logicznej wyników, ale przede wszystkim od czasu, w jakim te wyniki zostaną dostarczone. Wynik spóźniony jest często traktowany jako wynik błędny.
3 elementy analizy (kryteria)
element 1
System komputerowy
Wykonuje obliczenia i realizuje sterowania
element 2
Otoczenie (obiekt)
Generuje zdarzenia i przyjmuje sygnały z systemu
element 3
Czas
Narzuca rygorystyczne ograniczenia (deadlines)
Klasyfikacja czasowa
Hard Real-Time / Ostre
Ostre ograniczenia
Przekroczenie terminu = awaria systemu, katastrofalne skutki, zagrożenie życia lub zniszczenie mienia.
Użyteczność odpowiedzi po tT = 0 (wykres prostokątny — wynik albo jest przed terminem, albo jest bezwartościowy).
Użyteczność odpowiedzi po tT = 0 (wykres prostokątny — wynik albo jest przed terminem, albo jest bezwartościowy).
Przykłady: ABS, rozrusznik serca, sterowanie lotem
Firm Real-Time / Mocne
Mocne ograniczenia
Przekroczenie terminu = wynik całkowicie nieprzydatny (odrzucony), ale nie ma katastrofy fizycznej. Funkcja zysku spada do zera natychmiast po tT.
Przykłady: systemy giełdowe, prognozowanie pogody dla nawigacji
Soft Real-Time / Miękkie
Miękkie ograniczenia
Przekroczenie terminu = spadek jakości. Im większe opóźnienie, tym mniejsza wartość wyniku (funkcja zysku opada stopniowo aż do zera).
Przykłady: odtwarzanie wideo online, gry sieciowe
Parametry funkcji zysku: t0 = chwila zlecenia zadania, tT = najpóźniejsza chwila zakończenia, z(t) = użyteczność odpowiedzi, u = maksymalna użyteczność
Cechy charakterystyczne SCR
- Uzależnienie od wymagań czasowych — rytm pracy obiektu dyktuje wymagania
- Ciągłość działania — praca bez przerwy, stany oczekiwania na zdarzenia
- Niezawodność — bezbłędne i stabilne działanie
- Zależność od otoczenia — ścisłe uzależnienie od zdarzeń zewnętrznych
- Współbieżność — zdarzenia w otoczeniu pojawiają się jednocześnie i losowo
- Przewidywalność — deterministyczna reakcja na zdarzenia
- Punktualność — reakcja w ściśle określonych momentach
- Zapewnienie bezpiecznej pracy w przypadku awarii — stan fail-safe
TEMAT 02 / 06
Klasyczne metody szeregowania zadań
Klasyczne metody szeregowania zadań
Czym jest algorytm szeregowania?
Algorytm szeregowania zadań rozdziela czas procesora i dostęp do zasobów pomiędzy zadania. W SCR kluczowe jest nie tylko czy zadanie zostanie wykonane, ale czy wykona się w określonym czasie. Poprawne szeregowanie = podstawa działania całego systemu czasu rzeczywistego.
Stany zadania
Wykonywane
Gotowe do wykonania
Oczekujące na czas
Oczekujące na zdarzenie
Przerwane / wywłaszczone
Uśpione
Schematy kolejkowania
Kooperacyjne (bez wywłaszczania)
Non-preemptive
Zadanie pracuje aż samo dobrowolnie odda procesor. Bardzo ryzykowne — jedno długie zadanie może zablokować całą resztę i doprowadzić do przekroczenia deadline'ów.
Z wywłaszczaniem (Preemptive)
Preemptive
OS ma pełną kontrolę. Jeśli pojawi się zadanie o wyższym priorytecie, OS natychmiast przerywa bieżące zadanie. Gwarantuje reakcję na zdarzenia krytyczne.
W systemach Hard Real-Time: przerwania (ISR) dla krytycznych zadań, polling tylko tam gdzie dane zmieniają się powoli (np. temperatura co 1s)
Podział ze względu na rodzaj zadań
Periodyczne → statyczne
Zadania periodyczne
Wiemy z góry: czas trwania, częstotliwość. Planowanie kolejności odbywa się przed uruchomieniem systemu (a priori). → RMS
Aperiodyczne → dynamiczne
Zadania aperiodyczne
Pojawiają się nieregularnie. Planowanie na bieżąco w trakcie działania systemu. Trudniejsze do zaplanowania. → EDF
Rodzaje algorytmów (6 szt.)
FCFS / FIFO
First Come, First Serve
Kto pierwszy, ten lepszy. Zadania wykonywane dokładnie w kolejności przybycia. Brak wywłaszczania.
Wada w SCR: jedno długie zadanie blokuje wszystkie krytyczne procesy.
niewywłaszczający
Wada w SCR: jedno długie zadanie blokuje wszystkie krytyczne procesy.
Round-Robin
Algorytm rotacyjny
Każde zadanie dostaje kwant czasu (np. 10ms). Jeśli nie skończy — ląduje na końcu kolejki. Sprawiedliwy podział, brak głodzenia. Wszystkie zadania mają ten sam priorytet.
wywłaszczający
SJF
Shortest Job First
Procesor bierze zadanie z najkrótszym przewidywanym czasem. Minimalizuje średni czas oczekiwania.
Wada: długie zadania mogą być w nieskończoność spychane (zjawisko głodzenia).
wywłaszczający
Wada: długie zadania mogą być w nieskończoność spychane (zjawisko głodzenia).
EDF
Earliest Deadline First
Algorytm dynamiczny — system na bieżąco sprawdza, któremu zadaniu zostało najmniej czasu do deadline'u i nadaje mu najwyższy priorytet. Działa przy każdym przerwaniu zegarowym.
dynamiczny
RMS
Rate Monotonic Scheduling
Algorytm statyczny dla zadań periodycznych. Złota zasada: im krótszy okres → wyższy priorytet. Priorytety przypisywane raz, przed uruchomieniem systemu. Używany powszechnie w przemyśle.
statyczny
Zapamiętaj: EDF = dynamiczny (deadline ma znaczenie) | RMS = statyczny (okres = priorytet, tylko periodyczne)
Szeregowanie kolejek (wieloprocesorowe)
- Wielopoziomowe planowanie kolejek — zadania na stałe przypisane do kolejek. Problem: zadanie z najniższej kolejki może nigdy nie dostać procesora (głodzenie)
- MLFQ – Kolejki ze sprzężeniem zwrotnym — zadania mogą zmieniać kolejki. Długie/ciężkie spadają na dół, długo czekające awansują wyżej. Elastyczne.
- Zcentralizowane — jeden planista rozdziela zadania na wszystkie procesory
- Zdecentralizowane — każdy procesor ma własnego planistę i kolejki (szybsze, ale trudniejsze do synchronizacji)
Inwersja priorytetów (priority inversion)
Zadanie o niskim priorytecie, zajmując zasób dzielony, zmusza zadanie o wyższym priorytecie do oczekiwania. Rozwiązanie: dziedziczenie priorytetów — zadanie o niskim priorytecie tymczasowo przejmuje priorytet blokowanego zadania.
TEMAT 03 / 06
Samo modyfikujące się zadania
Samo modyfikujące się zadania (elastyczne aplikacje)
Definicja
Elastyczne aplikacje składają się z zadań o samo-modyfikującym się przebiegu, które wykorzystują elastyczne (niedokładne, rozmyte) obliczenia. Cel: osiągnięcie wyniku o jak najlepszej jakości przy zachowaniu ograniczeń czasowych. W czasie wykonania mogą balansować między jakością wyników a ilością czasu.
Kluczowa zasada
mechanizm adaptacji
Ciągła kontrola czasu
Na określonych etapach wykonania porównuje się Tr (czas rzeczywisty) z Tp (czas planowany). Wynik porównania definiuje stan zadania.
efekt
Degradacja kontrolowana
Aplikacja może się degradować gdy brakuje czasu — obniża funkcjonalność, byleby dotrzymać deadline'u. Jakość nie musi być zerowa.
Trzy stany i akcje
Tr < Tp
przyspieszone
przyspieszone
Wybierz wersję bardziej czasochłonną — rozbudowana funkcjonalność, lepszy wynik
Tr = Tp
punktualne
punktualne
Brak modyfikacji — zadanie idzie zgodnie z planem
Tr > Tp
opóźnione
opóźnione
Wybierz wersję o zredukowanej funkcjonalności (mniej czasochłonną). Dla wielu opóźnionych zadań — wymiana całych zadań na prostsze.
Przykład – pętla regulatora prądu
- Normalny przebieg: pomiar wartości zadanej → pomiar rzeczywistej → wyznaczenie uchybu → 5× powtórzenie i uśrednienie → dokładne nastawy PID → sygnał PWM
- Brak czasu (poziom 1): rezygnacja z pkt 4 (uśredniania) — szybszy wynik, mniejsza dokładność
- Brak czasu (poziom 2): zastąpienie PID sterowaniem rozmytym FLC — zamiast liczb, przedziały (mniej obliczeń)
- Brak czasu (poziom 3): rezygnacja z całego obliczenia — powtórzenie poprzedniej wartości sterowania
TEMAT 04 / 06
Internet Rzeczy – definicja i struktura
Internet Rzeczy – def., struktura
Definicja
Internet Rzeczy (IoT) to globalny, rozproszony ekosystem czasu rzeczywistego, w którym fizyczne obiekty (maszyny) komunikują się ze sobą i z siecią globalną bez ingerencji człowieka. System nie tylko zbiera dane, ale potrafi ciągle się uczyć i automatycznie reagować na zmiany w otoczeniu.
Termin stworzony w 1999 r. przez Kevina Ashtona. Narodziny IoT: przełom 2008/2009 — liczba urządzeń w sieci przekroczyła liczbę ludzi na Ziemi.
Struktura IoT – 3 warstwy (filary)
1
Wejście Warstwa fizyczna / pomiarowa
Sensory (czujniki) — zbierają informacje bezpośrednio z otoczenia. Przykłady: czujniki temperatury, drgań, wilgotności, ruchu, GPS. Mikrokontrolery (np. ARM Cortex-M4), moduły STM32 Nucleo.
2
Przesył Warstwa komunikacyjna
Środek komunikacji — protokoły sieciowe i sprzęt: Wi-Fi, Bluetooth, 5G, NFC, Z-Wave. Dla inteligentnego miasta: 6LoWPAN (IPv6 + niskoenergetyczne sieci bezprzewodowe — obsługuje miliony urządzeń). Bramki IoT koordynują setki węzłów.
3
Wyjście Warstwa obliczeniowa / sterująca
Chmura obliczeniowa (Microsoft Azure, Amazon AWS, IBM Watson) — odbiera sygnał, analizuje, podejmuje decyzję. Efektory (urządzenia wykonawcze) — wywołują fizyczną reakcję: włączenie alarmu, zamknięcie zaworu, sterowanie sygnalizacją świetlną.
3 warunki działania IoT
- Urządzenie wyposażone w sensor zbierający dane z otoczenia
- Urządzenie odbierające i przetwarzające sygnał (smartfon, komputer, chmura)
- Środek komunikacji — protokół przesyłający dane między nimi
Obszary zastosowań
- Inteligentny budynek — oświetlenie, ogrzewanie, klimatyzacja, rolety (standard EIB/KNX)
- Inteligentne miasto — sygnalizacja świetlna, parkowanie, zarządzanie energią, monitoring mostu
- Przemysł — monitoring maszyn, auto-diagnostyka, kontrola procesów produkcyjnych
- Zdrowie — czujniki EKG, tętna, pulsoksymetry, zdalna diagnostyka
TEMAT 05 / 06
Systemy wbudowane – cechy charakterystyczne
Systemy wbudowane – cechy charakterystyczne
Definicja
System wbudowany to specjalistyczny system komputerowy (połączenie sprzętu i oprogramowania), który jest całkowicie zintegrowany z maszyną, którą steruje. Nie jest to zwykły komputer osobisty — jest dedykowany do jednego zadania. Złożoność systemów przemysłowych jest bardzo duża.
Cechy wyróżniające na tle innych systemów
- Stosowanie wielu komponentów sprzętowych, układów pomiarowych i wykonawczych
- Wysoka jakość oprogramowania i zabezpieczeń — intensywnie testowane
- Dedykowany charakter — zaprojektowany do konkretnej aplikacji przemysłowej
Cechy charakterystyczne (do wykucia — wszystkie 9)
- Zależność od otoczenia — praca systemu opiera się na ciągłym pobieraniu i analizie danych z fizycznego środowiska (czujniki)
- Ciągłość działania — system pracuje bez przerwy, w nieskończonej pętli, przez cały czas funkcjonowania urządzenia
- Współbieżność — zdolność do jednoczesnego przetwarzania wielu zadań i reagowania na wiele sygnałów naraz
- Przewidywalność — dokładnie wiadomo jak system zareaguje na dane zdarzenie i ile czasu mu to zajmie
- Punktualność — bezwzględne dotrzymywanie deadline'ów, dostarczanie wyników przed upływem terminu
- Uzależnienie od wymagań czasowych — to sam obiekt (np. pędzący samochód, reaktor) dyktuje systemowi ile ma czasu na reakcję
- Niezawodność — gwarancja bezbłędnego i stabilnego działania systemu
- Reagowalność — zdolność do natychmiastowej odpowiedzi na nieprzewidziane zdarzenia (np. wciśnięcie przycisku "Stop")
- Fail-safe (bezpieczna awaria) — jeśli coś się zepsuje, system przechodzi w stan bezpieczny: zatrzymanie maszyny, odcięcie zasilania, nie zagraża ludziom
Cechy sprzętowe systemu wbudowanego
fizyczne
- Silne zintegrowanie, niewielkie rozmiary
- Niski pobór energii — baterie na lata
- Odporność mechaniczna
- Praca w trudnych warunkach środowiskowych (−40°C do +120°C)
interfejs / obsługa
- Ograniczone interfejsy — często brak GUI
- Bezobsługowy — działanie bez dozoru
- Dopasowanie rozbudowy do pełnionej funkcji
- Intensywnie przetestowane oprogramowanie
Przykłady zastosowań
telefony komórkowe
ABS / airbag
rozrusznik serca
sterowanie lotem
roboty przemysłowe
systemy nawigacji GPS
diagnostyka medyczna
inteligentny budynek
TEMAT 06 / 06
Kernel systemu – 2 przypadki
Kernel systemu, 2 przypadki – porównanie
Kluczowe pytanie
Wybór jądra (kernela) to decyzja o priorytetach systemu: czy ważniejsza jest czysta szybkość, czy niezawodność i odporność na błędy? Dwa główne podejścia: architektura monolityczna (RTEMS) vs mikrojądro (QNX).
Porównanie przypadków
RTEMS
architektura monolityczna / współdzielona
Jądro, sterowniki i aplikacja działają w jednej wspólnej przestrzeni adresowej (Single Address Space)
✓ Komunikacja między modułami jest natychmiastowa (zero narzutu czasowego)
✓ System niezwykle szybki i lekki
✗ Brak izolacji — błąd w dowolnym fragmencie kodu może nadpisać pamięć jądra → krytyczna awaria całego urządzenia
Darmowy (GPL). Użycie: wojsko USA, kosmos, medycyna. FreeRTOS to uproszczona wersja: kernel = 3 pliki C, ~4–9 kB ROM.
QNX
architektura mikrojądra (Neutrino)
Jądro ogranicza się do absolutnego minimum (planowanie zadań ~8 kB). Sterowniki i systemy plików = odizolowane procesy zewnętrzne
✓ Potężna niezawodność — awaria sterownika nie zawiesza systemu, jądro może go zrestartować
✓ Pełna izolacja między modułami
✗ Wolniejszy — każda wymiana danych wymaga przesłania komunikatu (IPC) między odseparowanymi warstwami
Klasa Unix. QUNIX → QNX (lata 80.). Używany w automatyce przemysłowej. Jądro UNIX dla porównania: >700 kB.
Tabela porównawcza
| Cecha | RTEMS (monolityczny) | QNX (mikrojądro) |
|---|---|---|
| Przestrzeń adresowa | Jedna wspólna (Single Address Space) | Odizolowane procesy zewnętrzne |
| Rozmiar jądra | Zmienne (duże) | ~8 kB (Neutrino) |
| Szybkość komunikacji | ✓ Natychmiastowa | ✗ Przez komunikaty (IPC) |
| Niezawodność | ✗ Błąd = crash całego systemu | ✓ Restart wadliwego modułu |
| Izolacja modułów | ✗ Brak | ✓ Pełna |
| Typowe zastosowanie | Wojsko, kosmos, real-time krytyczny | Automatyka przemysłowa, automotive |
Algorytmy szeregowania w QNX (bonus)
- FIFO — zadanie kontynuuje aż samo odda sterowanie lub zostanie wywłaszczone
- Round-Robin — kwant czasu 50 ms, po wyczerpaniu → wywłaszczenie
- Adaptacyjny — gdy zadanie zużyje cały kwant bez blokowania, jego priorytet jest tymczasowo dekrementowany (zapobiega głodzeniu zadań interaktywnych)