Sirius RTOS

Z Wikipedii, wolnej encyklopedii

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 | edytuj kod]

  • 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 | edytuj kod]

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 | edytuj kod]

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 | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]