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
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
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
Hard RTOS
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.
Soft RTOS
Na rozdíl od hard real time OS se u soft real time OS dovolují drobné odchylky v reakcích.
Plánovač RTOS
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:
- Rate monotonic scheduling (RMS)
- Earliest deadline First (EDF)
Definice RTOS
Existuje několik různých definic RTOS systému:
První definice
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
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
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
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.
PikeOS
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
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.
- 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
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
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
- 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.
Odkazy
Externí odkazy
- Obrázky, zvuky či videa k tématu operační systém reálného času na Wikimedia Commons
Česky
Literatura
- JOSEPH, M. Real-Time Systems Specification, Verification and Analysis. London: Prentice Hall, 1996. ISBN 0-13-455297-0.