Wykład 9:
Systemy operacyjne czasu rzeczywistego

Mariusz Chilmon
m.chilmon@amw.gdynia.pl
uc.vmario.org

Zadania systemu operacyjnego

Zadania OS

  • przydział czasu procesora zadaniom
  • przydział pamięci operacyjnej zadaniom
  • dostarczanie mechanizmów komunikacji i synchronizacji zadań
  • obsługa sprzętu
  • zestawianie połączeń sieciowych
  • zarządzanie plikami

Kernel

  • pełny dostęp do pamięci fizycznej
  • zarządza pamięcią wirtualną
  • pełny dostęp do zasobów sprzętowych
  • pełny dostęp do przerwań sprzętowych
  • zarządza pracą programów przestrzeni użytkownika (scheduler, przydział pamięci)
  • udostępnia sterowniki urządzeń, systemy plików, stosy protokołów sieciowych itp.

Programy w przestrzeni użytkownika

  • ograniczony dostęp do pamięci
  • brak bezpośredniego dostępu do sprzętu
  • podlegają schedulerowi
  • mogą na nie zostać nałożone ograniczenia (czas procesora, zużycie pamięci, liczba otwartych plików)

MMU (Memory Management Unit)

  • tłumaczy adresy wirtualne na fizyczne za pomocą PTE (Page Table Entry) i jego cache TLB (Translation Lookaside Buffer)
  • dzieli pamięć na segmenty (na ogół rzędu 4KiB), które podlegają ochronie

GNU/Linux Embedded

  • często brak GUI
  • BusyBox
  • uClibc, musl

Specyfika RTOS (Real-Time Operating System)

  • system operacyjny kompilowany wraz całością oprogramowania
  • brak pamięci wirtualnej i kontroli pamięci (ewentualnie MPU)
  • brak sterowników urządzeń
  • zadania o niskim priorytecie mogą pozostać nieobsłużone

Przykłady RTOS-ów

  • FreeRTOS (licencja MIT)
  • SAFERTOS precertyfikowany:
    • IEC 61508-3 SIL 3 (Safety Integrity Level)
    • ISO 26262 ASIL D (Automotive Safety Integrity Level)
  • DSP/BIOS → SYS/BIOS → TI-RTOS
  • RT Linux

Uruchamianie mikrokontrolera

Podstawowe zadania bootloadera

  • odpowiednik BIOS-a (UEFI) w PC
  • może być umieszczony w oddzielnej pamięci (NOR Flash)
  • wstępna konfiguracja mikrokontrolera
  • inicjalizacja interfejsu Ethernet, karty pamięci
  • wyświetlenie splashscreena
  • ładowanie systemu operacyjnego z pamięci nieulotnej

Opcje serwisowe

  • obsługa trybów awaryjnych i serwisowych
  • uruchomienie terminala RS-232
  • diagnostyka urządzenia, flashowanie pamięci, testowanie TCP/IP itp.
  • ładowanie deweloperskiego systemu operacyjnego via USB lub Ethernet (TFTP)