Otevřít hlavní menu

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 RTOSEditovat

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í RTOSEditovat

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 RTOSEditovat

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 RTOSEditovat

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

Plánovač RTOSEditovat

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 RTOSEditovat

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

První definiceEditovat

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á definiceEditovat

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

Třetí definiceEditovat

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 RTOSEditovat

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.

PikeOSEditovat

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.

WindowsEditovat

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.

RTLinuxEditovat

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ány 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.xEditovat

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žii 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.

DeterminismusEditovat

  • 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.

OdkazyEditovat