Sirius RTOS
Sirius RTOS – system 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]
- SpaceShadow
- Opis systemu Sirius RTOS na SpaceShadow
- Dokumentacja systemu Sirius RTOS na SpaceShadow