Sistem de operare în timp real

Un sistem de operare în timp real (engleză Real-Time Operating System - RTOS) este un sistem de operare proiectat pentru aplicații în timp real. Aceste sisteme sunt folosite în general pentru computere de tip sistem înglobat (încorporate în aparate mai mari), precum smartphone-uri, roboți industriali, nave spațiale, sisteme industriale de control, echipamente de cercetare științifică, aparatură medicală etc.

Standardul POSIX 1003.1 definește caracteristica în timp real a unui sistem de operare ca fiind abilitatea sistemului de operare de a oferi nivelul necesar de service într-un timp de răspuns predefinit scurt.

Sistemele de operare în timp real sunt folosite în principal pentru capacitatea lor de răspuns rapid, și nu atât pentru volumul total de muncă (calcule) pe care îl pot efectua. Un sistem de operare în timp real nu e nevoie să dispună de o viteză (putere) mare de calcul — viteza lui de calcul este influențată nu numai de viteza de calcul a procesorului pe care rulează, dar și de algoritmul specializat de scheduling precum și de frecvență ridicată a întreruperii de ceas. Scopul principal al acestora este să optimizeze utilizarea resurselor echipamentelor și să asigure predictibilitatea funcționării lor.

Sistemele de operare în timp real pot fi divizate în sisteme în timp real hard și sisteme în timp real soft. Majoritatea sistemelor de operare în timp real sunt sisteme în timp real soft, cum ar fi cele utilizate pentru controlul de la distanță al diverselor aparate și dispozitive multimedia, electrocasnice etc. Sistemele în timp real hard sunt prevalente în procesele industriale, în care constrângerile temporale sunt întotdeauna prioritare, fiind în general, mult mai complexe (de exemplu, sistemele de control al zborurilor).

Caracteristici
Sistemul de operare în timp real are funcții similare sistemului de operare din calculatorul  de uz general, fiind cel care individualizează sistemul incorporat respectiv. Este strâns legat de partea hardware, cu evenimente și cereri de deservire multiple, fiind frecvent simultane. În plus față de furnizarea de răspunsuri la timp, sistemele în timp real trebuie să furnizeze răspunsuri multiple simultane, de asemenea la timp.

Funcționalitate complexă, gradul de complexitate fiind dependent de aplicație
Costuri scăzute de dezvoltare și comercializare 
Aplicații dependente de procesor 
Securitatea - asigurarea confidențialității datelor prelucrate
Multitasking - trebuie să poată lucra cu mai multe intrări/ieșiri și cu evenimente multiple în mod independent 
Multiprocesare - execută mai multe procese prin comutarea succesivă de la contextul unui proces la contextul altuia prin comutarea de context.
Multithreading
Să răspundă nevoilor dispozitivului; adaptarea se face prin găsirea unui compromis adecvat între dimensiune și performanță pentru a optimiza sistemul de operare
Programare - de obicei programarea este în limbaj de nivel înalt (limbaje compilate, limbaje de asamblare) și se face pe un calculator care emulează sistemul incorporat.

Exemple de sisteme de operare în timp real

Open source:
 BeRTOS 
 ChibiOS/RT 
 ChorusOS 
 eCos 
 ERIKA Enterprise 
 Femto OS 
 Fiasco (L4 clone) 
 FreeRTOS 
  Fusion RTOS
 HaikuOS 
 Google Fuchsia
 TRON project
 Milos RTOS
 Nut/OS 
 NuttX 
 Prex 
 RTAI 
 RTEMS 
 RTLinux 
 S.Ha.R.K. 
 TinyOS 
 Harmony OS (Hongmeng OS)

Proprietare:
 BeOS
 INTEGRITY
 ITRON
 LynxOS 
 MicroC/OS-II
 Nucleus 
 OS-9
 Operating System Embedded 
 OSEK/VDX
 OSEKtime
 PikeOS
 pSOS
 QNX 
 RSX-11
 RT-11
 RTOS-UH
 ThreadX
 VRTX
 VxWorks
 µnOS
 RTXC Quadros RTOS 
 MipOS 
 Windows CE

Distribuții Linux înglobate
Distribuțiile Linux înglobate sunt sisteme de operare în timp real bazate pe Linux, și adaptate unui sistem înglobat. Spre deosebire de versiunile Linux pentru computere și servere personale, diferitele sisteme RTOS Linux sunt concepute pentru sisteme cu resurse limitate.

Sistemele de operare bazate pe nucleuul Linux sunt utilizate în sisteme încorporate cum ar fi: electronice de larg consum (smartTV, smartphone, smartwatch), computere de bord în automobile, echipamente de rețea (router, modem), automatizare industrială, echipamente de navigație, software-ul de zbor pentru nave spațiale, instrumente medicale etc.

Sistemele încorporate în sistem Linux au în mod obișnuit puțin RAM și utilizează frecvent memorie flash, mai degrabă decât un hard disk. Deoarece sunt deseori dedicate unui număr redus de sarcini pe o țintă hardware bine definită, acestea folosesc versiuni ale nucleului Linux optimizat pentru contexte specifice. Distribuțiile Linux incorporate au de multe ori un nucleu în timp real.

Exemple de distribuții Linux înglobate:

armbian
DebWrt                                     
DIET-PC
ELinOS
eLux
Google Fuchsia
LinuxCNC
iMedia Embedded Linux
KaeilOS
KaufKauf Slim Linux
LEAF
LineageOS
LynxOS RTOS

MontaVista Linux 
Nard GNU/Linux
 OMU 
OpenWrt
Open Network Linux
RTLinux
TimeSys
TinyOS
 uC/OS II
μClinux 
UZI
Voyage Linux

Vezi și
POSIX
 Software înglobat
 SmartTV

Referințe și note

Legături externe 

 Real Time Linux Foundation, Inc.
  Comparison of real-time operating systems
  Linux-based embedded systems information

Bibliografie
Karim Yaghmour: Building Embedded Linux Systems, O’Reilly, Beijing, 2003. ISBN 0-596-00222-X

Sisteme de operare
Sisteme de operare înglobate
Software înglobat
Sisteme de operare în timp real