Operační systém reálného času

Operační systém reálného času (anglicky real-time operating system, zkratka RTOS) je v informatice typ operačního systému, který poskytuje možnost reagovat na události v okolí počítače průběžně (tj. v reálném čase). RTOS poskytuje uživateli (nebo programátorovi) záruky, že je určitou činnost v určitém časovém úseku možné dokončit. RTOS je používán například ve vestavěných systémech, robotice, automatizaci, elektronických měřeních nebo v telekomunikacích.

Charakteristika RTOS

[editovat | editovat zdroj]

U desktopového systému, který používá běžný uživatel, nevadí, když je potřeba na dokončení některých operací počkat. Avšak při průmyslovém nasazení není taková možnost přípustná, protože by mohlo dojít k poškození výrobku, zranění, narušení výrobního procesu a podobně. V těchto situacích je nutné nasadit RTOS (operační systém reálného času). Například od počítače, který řídí výtah, vyžadujeme, aby se signál od čidla, oznamující, že dosáhl požadovaného patra, zpracoval ihned a výtah se zastavil (tj. není například možné, aby „zaneprázdněnost“ počítače zobrazováním čísla patra na displeji způsobilo, že výtah v daném patře nestihne zastavit a zastaví až v následujícím).

RTOS systém nemusí být výkonný, aby zajistil požadované vlastnosti. Není výhodné používat RTOS na desktopu, protože běžného uživatele zajímá nejlepší možný případ a nikoliv průběžné striktní plnění požadavků (tj. uživatel si bez problémů chvíli počká), a navíc na zajištění požadavků RTOS je spotřebovávána část výkonu počítačového systému, což je pro desktopové nasazení nevhodné.

Další charakteristické vlastnosti:

  • Správná funkce závisí nejen na výpočetním výsledku, ale také na čase, kdy ho bude dosaženo.
  • Obvykle se jedná o malé systémy se specializovaným použitím, případně nadstavbu větších OS (Windows, Linux).

Rozdělení RTOS

[editovat | editovat zdroj]

Běžné RTOS fungují tak, že požadavky na stihnutí určité operace typicky nezaručují naprosto dokonale (negarantují je stoprocentně), ale snaží se k takovému stavu co nejvíce přiblížit. Podle toho jsou RTOS rozdělovány na dva podtypy:

  • soft real time (měkké RTOS) – záruky jsou přibližné
  • hard real time (tvrdé RTOS) – záruky jsou deterministicky zajištěny

Tzv. tvrdý real time OS. Zde je požadavek na stanovení času reakce absolutní. Na RTOS klademe většinou následující požadavky:

  • preemptivní plánovač
  • velký počet nastavitelných priorit vláken
  • přesné hodiny reálného času

Můžeme také říci: systém je hard-real time, pokud by případné nedodržení časových limitů mělo katastrofální následky.

Na rozdíl od hard real time OS se u soft real time OS dovolují drobné odchylky v reakcích.

Plánovač RTOS

[editovat | editovat zdroj]

RTOS typicky používají speciální plánovače procesů (anglicky scheduler), který reakce v reálném čase zajišťuje tak, že specifickým způsobem přiděluje běžícím procesům systémové prostředky počítače (typicky procesor). Mezi základní charakteristiky RTOS (a tím i jeho plánovače procesů) patří:

  • minimální latence při reakci na událost
  • minimální latence při přepínání vláken
  • někdy nutnost malých rozměrů, viz vestavěné systémy
  • minimalizace časových okamžiků, kdy je zakázáno přerušení
  • preemptivní plánování založené na prioritách

Příklady plánovačů procesoru pro RTOS:

Definice RTOS

[editovat | editovat zdroj]

Existuje několik různých definic RTOS systému:

První definice

[editovat | editovat zdroj]

Real-time systém je systém, ve kterém správnost výstupu je závislá nejen na správnosti výsledku výpočtu, ale též na čase, v němž je výsledek spočten.

Druhá definice

[editovat | editovat zdroj]

Real-time systém je systém, který reaguje předvídatelným způsobem na nepředvídatelné externí události.

Třetí definice

[editovat | editovat zdroj]

Pokud lze dokázat, že realtime systém splní svá ultimáta (deadlines) (a to za použití chování systému v nejhorším možném případě, nikoliv analýzou průměrného chování systému), potom můžeme říci, že chování systému je předvídatelné.

Příklady RTOS

[editovat | editovat zdroj]

RTOS může být jak systém speciálně vyvinutý jako RT nebo klasický systém (Windows, Linux) s doinstalovaným vybavením, případně upraveným jádrem.

RTOS pro vestavěnná zařízení, který je portován na více než 35 platforem mikroprocesorů a je dostupný pod licencí MIT.[1][2]

PikeOS je operační systém pracující v reálném čase pro bezpečnostně kritické aplikace speciálně vyvinutý pro snadné oddělení či verifikaci jednotlivých částí elektronického systému. Je založený na mikrojádře a používá se převážně v embedded systémech a serverech. Deterministické chování a konfigurovatelné paravirtualizační schopnosti PikeOS umožňují široké využití v letectví a dopravní a automobilové technice (MPC5200), kosmonautice (LEON3), zdravotnictví (X86), automatizaci (ARM) a dalších odvětvích.

Windows NT/2000/XP v základním provedení nejsou operační systémy reálného času. OS byly vyvinuty především pro domácí a kancelářské aplikace, nicméně jejich použitelnost jako RTOS byla Microsoftem zkoumána.

Hlavní důvody proč nemohou být použity jako RTOS jsou:

  • málo priorit vláken
  • nedeterminismus plánovače
  • kvantitativní parametry OS musí být známé
  • malé rozlišení časovače (5ms)
  • nedostatečná rychlost přepínání kontextu

Existují však doplňky, které mají rozšířit možnosti Windows na RTOS. Jedním z nich je například RTX (Real-Time eXtension) od společnosti VenturCom.

RTX

  • zkracuje rozlišitelnou jednotku času z 5ms na 20mikrosekund
  • nezávislý plánovač vláken

Po nainstalování RTX zůstávají zachovány vlastnosti Windows jako běžného operačního systému.

RTLinux je malý a rychlý operační systém, který je v souladu s normou POSIX 1003.13, což je architektura pro minimální operační systémy reálného času. RTLinux lze považovat za úplný operační systém s předvídatelnou činností v reálném čase, bez rozhraní pro standardní Linux bez reálného času. Vlákna RTLinuxu jsou zpracována přímo plánovacím algoritmem s pevnou prioritou. Jádro a všechny procesy standardního Linuxu jsou řízeny plánovačem RTLinuxu jako úlohy v pozadí. RTLinux vytváří úplný obecný operační systém, který běží nad malým předem definovaným jádrem RTOS.

VxWorks 6.x

[editovat | editovat zdroj]

je operační systém pro řízení v reálném čase, který se vyznačuje RT mikrojádrem wind. Toto jádro zahrnuje většinu nástrojů pro podporu reálného času. Patří k nejrozšířenějším operačním systémům reálného času zejména v oblasti průmyslových aplikací embedded systémů. Mezi základní charakteristiky patří:

  • Neomezený počet procesů/úloh
  • Preemptivní plánování
  • 256 úrovní priorit
  • rychlá a flexibilní meziprocesová komunikace
  • dědění priorit
  • fronty zpráv
  • signály
  • roury
  • sokety
  • podporovaná CPU: PowerPC, ARM, Intel x86, ...
  • není POSIX kompatibilní (řeší některé nedostatky specifikace)

Mikrojádro je navrženo s minimální režií systému, což umožňuje rychlou a deterministickou odezvu na externí událost. Tento systém je bezpečný i při použití v kritických aplikačních úlohách (byl použit v aplikacích meziplanetárního výzkumu). Systém je kompatibilní s řadou průmyslových standardů a lze jej používat na běžných CPU.

Determinismus

[editovat | editovat zdroj]
  • Operace jsou prováděny ve fixovaných, předem určených časech nebo časových intervalech.
  • Reakce na přerušení musí proběhnout tak, aby systém byl schopen obsluhy všech požadavků v požadovaném čase.
  1. Microcontrollers and compiler tool chains supported by FreeRTOS [online]. [cit. 2022-11-18]. Dostupné online. (anglicky) 
  2. FreeRTOS open source licensing, FreeRTOS license description, FreeRTOS license terms and OpenRTOS commercial licensing options. [online]. [cit. 2022-11-18]. Dostupné online. (anglicky) 

Externí odkazy

[editovat | editovat zdroj]

Literatura

[editovat | editovat zdroj]