Sirius RTOSsystem operacyjny czasu rzeczywistego nowej generacji. Został zaprojektowany od podstaw przez firmę SpaceShadow, z myślą o wytwarzaniu systemów wbudowanych dla różnych platform. Podstawowymi założeniami było dostarczenie możliwie najwyższej przewidywalności, co jest podstawą systemów RTOS.

Sirius RTOS jest w pełni deterministycznym systemem, zwracającym wyniki w określonym czasie, niezależnie od stanu i liczby używanych w systemie obiektów systemowych i zasobów. Może on z powodzeniem zostać zastosowany zarówno w aplikacjach czasu rzeczywistego (ang. real-time) jak i w aplikacjach ogólnego przeznaczenia (ang. general purpose).

System ten jest szeroko konfigurowalny, dzięki czemu projektant może zadecydować, które cechy systemu najlepiej wykorzystać w aplikacji, co wpływa na maksymalizację wydajności oraz minimalizację użycia pamięci danych i pamięci programu. Sirius RTOS, jak większość systemów tego typu zapewnia minimalne użycie procesora, co wpływa na niski poziom poboru energii. Znajduje on zastosowanie we wszelkiego rodzaju sprzęcie medycznym, telekomunikacyjnym, w robotyce, komputerach pokładowych samochodów, systemach kontroli procesów przemysłowych oraz w urządzeniach klienckich (jak telewizory, mp4 playery, drukarki itp).

Cechy systemu edytuj

  • Dostępny kod źródłowy systemu
  • Dokumentacja dostępna on-line
  • Zapobieganie inwersji priorytetów za pomocą mechanizmu dziedziczenia priorytetów
  • Detekcja zakleszczeń dla mutexów i semaforów
  • Kontrola porzucenia sekcji krytycznej z funkcją auto-release
  • Możliwość dynamicznej zmiany priorytetów
  • Możliwość oczekiwania na wiele obiektów jednocześnie z poziomu tego samego zadania
  • Możliwość ciągłego oczekiwania na obiekt lub przez określony czas (timeout)
  • Każdy obiekt posiada indywidualną kolejkę priorytetową zadań oczekujących na sygnalizacje obiektu
  • Oszczędność energii (możliwość wyłączenia procesora na czas, gdy żadne z zadań nie jest wykonywane)
  • Wieloplatformowość (kod systemu jest odseparowany od warstwy zależnej od sprzętu)
  • Skalowalność (od 5 kB do 30 kB w pełnej konfiguracji)
  • Wysoka wydajność
  • Zgodność z ANSI C

Planista edytuj

Każdy z równolegle wykonywanych fragmentów kodu jest reprezentowany przez zadania (ang. tasks). Zadania można rozumieć jako wątki wykonywane w jednym procesie. Sterowany zdarzeniami, deterministyczny planista systemu został zaprojektowany do zastosowań w systemach czasu rzeczywistego. Bazując on na priorytetach zadań, planista stosuje algorytm Round-Robin do naprzemiennego wykonywania zadań z grupy zadań o najwyższym priorytecie, będących w stanie Ready (gotowych do uruchomienia). Planista może dodatkowo przydzielić zmienną liczbę czasów procesora niezależnie do każdego zadania. Czas procesora (ang. CPU time slice) jest w tym przypadku najmniejszą, niepodzielną jednostką czasu. Zarówno priorytety jak i ilość przydzielanych czasów procesora może być dynamicznie zmieniana podczas pracy zadania.

Dostępne obiekty systemowe edytuj

Obiekty reprezentują zasoby systemu, które mogą zostać wykorzystane do synchronizacji zadań, zarządzania sekcjami krytycznymi, do wymiany danych pomiędzy zadaniami oraz do zgłaszania zdarzeń. Następujące obiekty systemowe są dostępne w systemie Sirius RTOS:

  • Zadania
  • Mutexy
  • Semafory
  • Semafory zliczające
  • Zdarzenia
  • Zegary
  • Pamięci współdzielone
  • Kolejki wskaźników
  • Strumienie
  • Kolejki
  • Mailboxy
  • Flagi

Zobacz też edytuj

Linki zewnętrzne edytuj