Sisteme de operare în timp real pentru microcontrolere. Sistem de operare pentru microcontroler. Sisteme de operare în timp real

Un RTOS oferă dezvoltatorului un cadru pe care sunt construite și organizate elementele sistemului. De fapt, beneficiile se extind cu mult dincolo de aspectul în timp real – chiar și pentru sistemele care nu au nevoie de el, deoarece programul poate fi mult mai bine organizat dacă se bazează pe un RTOS.


Integrarea RTOS rezolvă multe probleme care pot apărea cu un program de aplicație, deoarece oferă capabilități multitasking și permite ca aplicația să fie împărțită în părți mai mici (sarcini). Fiecare sarcină primește propria sa prioritate în funcție de importanța sa, iar programarea preventivă asigură că microcontrolerul va executa sarcina care are cea mai mare prioritate dintre sarcinile gata de rulare. În cele mai multe cazuri, adăugarea unei sarcini cu prioritate mai mică nu afectează capacitatea de răspuns a sistemului la sarcinile cu prioritate mai mare.


În prezent, microcontrolerele bazate pe ARM și Cortex sunt disponibile la aproximativ același preț ca microcontrolerele pe 8 sau 16 biți. Funcționalitatea suplimentară pe care o oferă înseamnă că un sistem dedicat va face o treabă excelentă rulând un RTOS. În plus, complexitatea crescută a aplicațiilor moderne va permite proiectelor care utilizează RTOS să beneficieze. Cu toate acestea, microcontrolerul trebuie să aibă cel puțin 16 până la 32 kV de memorie flash sau program pentru a putea folosi cu succes un RTOS.

SELECTAREA RTOS

Un RTOS este doar o componentă a unui ecosistem complet de dezvoltare. Această complexitate asociată cu gama largă de produse disponibile ridică noi întrebări. Dezvoltatorul trebuie să decidă care RTOS este ideal pentru aplicație și care RTOS este ideal pentru microcontroler. As vrea sa sper ca in ambele cazuri sa fie la fel. În plus, dezvoltatorul trebuie să selecteze instrumente de programare și depanare care funcționează bine în RTOS selectat. Din fericire, surse obiective de informații sunt disponibile astăzi pentru dezvoltatori pentru a-i ajuta să răspundă la întrebările de mai sus.

PRIORITATE MARE / PRIORITATE JOSĂ

Principala problemă în sistemele în timp real este timpul necesar pentru a răspunde la o întrerupere și a rula codul utilizatorului (sarcini) pentru a gestiona întrerupere. Sistemele care nu folosesc un RTOS sunt cunoscute ca prim-plan/fond și funcționează așa cum se arată în Figura 1. Aplicația apelează module pentru a efectua operațiunile dorite: modulele cu prioritate scăzută sunt executate secvenţial în bucla principală a programului, iar întreruperile gestionează evenimentele asincrone cu prioritate ridicată. Aplicațiile tipice vor face o mulțime de sondaje și programul va deveni aglomerat pe măsură ce aplicația crește. Fără un RTOS, trebuie să implementați și singur astfel de lucruri servicii utile cum ar fi întârzierile și temporizatoarele necesare pentru a executa un program cu mai multe mașini de stare.

poza 1

MULTIFUNCTIONAL

Multitasking este procesul de programare și comutare a procesorului între mai multe sarcini care împart procesorul. Unul dintre cele mai importante aspecte ale multitasking-ului este că permite programatorului de aplicații să gestioneze complexitatea inerentă aplicațiilor moderne. Un RTOS poate face programele de aplicație mai ușor de proiectat și întreținut prin gestionarea sarcinilor și transferul de informații între ele.

Când sistemul trebuie să ruleze o altă sarcină deoarece a avut loc un eveniment mai important, conținutul curent al registrelor procesorului este stocat ca parte a sarcinii curente. Contextul noii sarcini (mai importante) este restabilit la starea anterioară înainte de a-și executa codul. Această procedură este efectuată printr-o așa-numită comutare de context sau comutare de activitate. Partea superioară actuală a stivei pentru fiecare sarcină, împreună cu alte informații, este stocată într-o structură de date numită Task Control Block, care este gestionată de RTOS.

PLANIFICARE

Ordinea în care sunt executate sarcinile este determinată de planificator sau dispecer. Există două tipuri de planificatori: cooperativ (non-preemptive) și preemptive (pre-emptive).


Într-un planificator cooperant, sarcinile interacționează (cooperează) între ele pentru a obține controlul procesorului: atunci când o sarcină eliberează procesorul, nucleul execută codul pentru următoarea sarcină cea mai importantă gata de rulare. Evenimentele asincrone sunt încă deservite de gestionarii de întreruperi, ceea ce poate face ca o sarcină cu prioritate ridicată să fie gata de rulare, dar gestionarea de întreruperi revine întotdeauna la sarcina întreruptă. Sarcina noua cu o prioritate mai mare va avea acces la procesor numai atunci când sarcina curentă eliberează voluntar procesorul, așa cum se arată în Figura 2.

figura 2

În planificatorul preventiv prezentat în Figura 3, atunci când un handler de evenimente sau întreruperi pregătește să ruleze o sarcină cu prioritate mai mare, sarcina curentă este imediat suspendată și sarcina cu prioritate mai mare obține acces la procesor. Majoritatea sistemelor în timp real folosesc programatori preventivi, deoarece răspund mai repede decât nucleele cooperative.

figura 3

RESURSE

Beneficiul evident al utilizării unui RTOS este că reduce timpul de lansare pe piață, deoarece simplifică dezvoltarea fără a consuma cantitate mare resursele procesorului. UC/OS-II de la Micrium, de exemplu, utilizează doar 6 până la 24 KB de memorie de program și 1 până la 8 KB de memorie de date pe dispozitivele ARM. Pe platformele mici de 8 sau 16 biți, costurile sunt și mai mici - doar 4 până la 16 KB de memorie de program.


Un RTOS, de regulă, are o caracteristică deterministă, adică un set dat de sarcini critice poate fi finalizat în întregime de către Termen limită. Sondajul este evitat prin executarea sarcinilor numai atunci când apar evenimente. Sarcinile care așteaptă un eveniment nu consumă cicluri CPU.

AVANTAJELE COMERCIALE ALE RTOS

Unele companii folosesc un RTOS proprietar, dar sistemele lor pot suferi din cauza lipsei de documentație și a testării ample. De obicei, propriile RTOS nu pot fi portate la alte procesoare, iar codul lor este adesea imperfect. Mai rău, dacă designerul care le-a creat părăsește compania, sistemul poate deveni neîntreținut.


Un RTOS comercial este folosit în sute, dacă nu mii de proiecte și se bazează pe un cod dovedit care oferă încredere în performanța sa. UC/OS-II de la Micrium este certificat FAA/FDA/IEC, permițându-i să fie utilizat în avionică, medicale și alte tipuri de aplicații sensibile la siguranță. Chiar dacă un dispozitiv nu necesită fiabilitatea unui RTOS certificat de avionică, este totuși plăcut de știut că RTOS a fost supus unor teste ample. uC/OS-II este, de asemenea, foarte mobil și poate rula pe mai mult de 45 de procesoare diferite. Codul aplicației poate fi ușor transferat (portat) de la arhitectura de 8 biți la 32 de biți și chiar la DSP. Utilizatorului i se oferă suport complet și documentație.


Majoritatea serviciilor pe care le poate solicita o aplicație sunt deja integrate în RTOS. Printre ei:

Managementul timpului – întârzieri și cronometre
- Managementul sarcinilor – creare, ștergere, suspendare, reluare
- Excluderi reciproce
- Mesaje
- Transmisia semnalului

Beneficiile utilizării unui RTOS sunt evidențiate de disponibilitatea unui portofoliu complet de embedded software(software), precum și middleware, inclusiv stiva TCP/IP, stiva USB, stiva CANbus, UART, sisteme de fișiereși interfață grafică cu utilizatorul. Desigur, unele componente pot necesita performanțe mai rapide decât au procesoarele low-end.

Două tendințe din industria comercială RTOS fac și mai ușor să începeți. Multe RTOS-uri, inclusiv uC/OS-II, sunt acum vândute fără drepturi de autor, ceea ce este mult mai profitabil decât RTOS-urile care necesită plăți continue de redevențe. Adesea, un RTOS este inclus, dacă se achiziționează o licență, în multe kituri de pornire MCU.

CONCLUZIE

Un RTOS este un instrument de neprețuit care simplifică dezvoltarea majorității aplicațiilor încorporate - în timp real sau nu - și permite adăugarea de noi funcționalități fără a necesita modificări majore de software. Având în vedere supraîncărcarea redusă a sistemului, utilizarea unui RTOS este acum justificată în multe sisteme încorporate mici de 8 și 16 biți, precum și în sistemele cu procesoare de 32 de biți sau mai mari.

Bună, Habr!
Astăzi voi vorbi despre un lucru atât de interesant precum un sistem de operare în timp real (RTOS). Nu sunt sigur dacă acest lucru va fi interesant pentru programatorii experimentați, dar cred că începătorilor le va plăcea.

Ce este un RTOS?

Dacă ne uităm la Wikipedia, vom vedea până la 4 definiții.
Pe scurt, un RTOS este un sistem de operare care răspunde la evenimente externe într-o anumită perioadă de timp. De aici putem înțelege scopul principal al unui RTOS - dispozitive care necesită un răspuns rapid la evenimente (cu toate acestea, în niciun caz nu confundați funcționarea unui RTOS cu întreruperi).

De ce avem nevoie de ea?

Există destul de multe motive pentru aceasta.
În primul rând, RTOS acceptă multitasking, priorități de proces semafor și multe altele.
În al doilea rând, este foarte ușor și aproape că nu necesită resurse.
În al treilea rând, putem obține toate cele de mai sus pe aproape orice hardware (de exemplu, FreeRTOS rulează chiar și pe AtMega pe 8 biți).
Și în al patrulea rând: doar joacă-te și distrează-te.

Revizuirea a 3 RTOS-uri cunoscute.

Vă rugăm să rețineți: următoarea este părerea mea personală.
FreeRTOS
Unul dintre cele mai populare RTOS astăzi. Portat la o cantitate imensă de hardware. Site oficial.
pro
1) Gratuit
2) Portat la o cantitate mare de hardware
3) Funcționalitate puternică
4) Există diverse biblioteci: grafică, Internet și multe altele.
5) Documentare bună.
Minusuri
1) Un proces destul de complex de portare pe hardware nou.

Concluzie: Acesta este un RTOS cu adevărat profesional, cu o documentație bună. Va fi bine pentru un începător dacă hardware-ul său are deja un port.

KeilRTX
Până de curând, acest RTOS era comercial, dar a devenit recent open source. Funcționează numai pe arhitectura brațului. Site oficial.
pro
1) Gratuit
2) Portat cu ușurință pe hardware nou (în cadrul arhitecturii brațului).
3) Există diverse biblioteci: grafică, Internet și multe altele.
Minusuri
1) Este aproape imposibil să lucrezi cu ea la Keil
2) Funcționalitate ușor redusă
3) Numai brațul este susținut.
4)(pe experienta personala) Pierde în fața multor RTOS în ceea ce privește viteza.
Concluzie: ideal pentru un incepator si proiecte mici.
uc/os
RTOS comercial puternic. Site-ul web.
pro
1) Un număr mare de funcții și biblioteci.
2) Suportă mult fier
Minusuri
1) Comercial.
2) Greu de utilizat.

Concluzie: numirea acestuia un RTOS pentru un începător este o întindere.

Alte RTOS interesante

RTOS RTLinux bazat pe Linux obișnuit.
QNX RTOS bazat pe Unix.

Caracteristici de dezvoltare folosind RTOS

Ei bine, în primul rând, trebuie să înțelegeți următoarele: un RTOS nu este Windows. Nu poate fi instalat. Acest sistem pur și simplu se compilează cu programul dvs.
Când scrieți programe cu un RTOS, funcțiile în sensul obișnuit nu sunt utilizate. În loc de funcții, sunt folosite procese (sau sarcini), diferența este că procesele, spre deosebire de funcții, sunt bucle nesfârșiteși nu se termină niciodată (cu excepția cazului în care cineva sau el însuși îl ucide - adică îl descarcă din memorie).
Dacă sunt activate mai multe procese, RTOS le comută, oferind pe rând timpul și resursele mașinii. Aici apare conceptul de prioritate a procesului - dacă două procese au nevoie de timp mașină în același timp, atunci RTOS îl va acorda celui cu prioritate mai mare.
RTOS are funcții speciale de întârziere - astfel încât timpul să nu fie pierdut în timp ce un proces este întârziat, al doilea este executat.
Acum să vorbim despre un astfel de lucru ca un semafor - acesta este un lucru care controlează accesul unui proces la resursele aplicației. Pentru fiecare resursă există un marker - atunci când un proces are nevoie de o resursă, o ia și folosește această resursă. Dacă nu există nici un simbol, atunci procesul va trebui să aștepte până când este returnat. Permiteți-mi să vă dau un exemplu: diferite procese trimit informații printr-un singur UART. Dacă nu ar exista semafor, atunci ar trimite octeți pe rând și ar fi confuzie. Și astfel, primul proces a preluat jetonul pe UART, a trimis un mesaj și l-a dat celui de-al doilea (și așa mai departe la infinit).

Biblioteci RTOS suplimentare.

RTOS oferă adesea diverse biblioteci pentru lucrul, de exemplu, cu grafică, internet etc. Sunt cu adevărat convenabile și nu ar trebui să ezitați să le folosiți. Totuși, rețineți că fără RTOS pentru care sunt scrise, acestea nu vor funcționa.
Iată exemple:
Pentru RTX

RTOS MAX- un sistem de operare rus în timp real gratuit pentru sisteme coerente cu mai mulți agenți.

MAX întruchipează funcționalitatea clasică a sistemelor de operare de acest tipși are o serie de avantaje care pot accelera semnificativ dezvoltarea software-ului încorporat atunci când se creează noi dispozitive bazate pe microcontrolere. Avantajele noului sistem de operare sunt evidente în special în chestiunile de organizare a interacțiunii mai multor dispozitive.


RTOS MAX include:
  • Miez RTOS complet funcțional.
  • Set complet de coduri sursă.
  • Documentație.
  • Aplicații demonstrative.
Consultați proiectul pe github: https://github.com/AstroSoft-MIR/macs-rtos

Sau descărcați versiune stabilă ca parte a mediului de dezvoltare MACS Master bazat pe Eclipse


Fabricat de STMicroelectronics (inclusiv proiecte gata făcute pentru kitul de dezvoltare STM32F429I-DISCO).

Suport instrument de dezvoltare


Eclipsă + GCC.

RTOS MAX este:

Programator:

  • crearea dinamică și ștergerea sarcinilor,
  • suport pentru modurile multitasking preventive și cooperative,
  • selectarea modului de executare a sarcinii - privilegiat sau neprivilegiat.
Obiecte de sincronizare:
  • semafoare binare și de numărare,
  • Mutexuri recursive și nerecursive cu suport pentru moștenirea prioritară,
  • evenimente,
  • cozile de mesaje.
Utilizarea protecției memoriei hardware:
  • pentru a proteja stiva de proces de preaplin,
  • pentru a proteja memoria la adresa zero,
  • pentru a proteja porturile periferice de accesul neprivilegiat.
Gestionarea întreruperilor în sarcinile utilizatorului:
  • activarea de gestionare a sarcinilor personalizate dintr-un handler de întrerupere universal predefinit care nu necesită configurare suplimentară,
  • capacitatea de a atribui mai multe sarcini de gestionare pentru o întrerupere,
  • controlul secvenței de procesare prin prioritățile sarcinilor procesorului.
Profilare:
  • măsurarea timpului de execuție a secțiunilor de cod de la un punct la altul sau în domeniul unei variabile automate,
  • oportunitate setări automate(creșterea preciziei de măsurare prin calcularea întârzierilor din propria muncă),
  • generarea de statistici de măsurare cu gruparea secțiunilor în secțiuni (timp total de execuție a tuturor secțiunilor cu și fără imbricare, timp de execuție minim/mediu/maxim al secțiunii, abatere standard).
Mecanism de memorie partajată la nivel de dispozitiv (Memorie partajată):
  • sincronizarea contextului sarcinii între dispozitive,
  • mesagerie într-un grup de dispozitive.

Dispozitivele controlate de microcontrolere sunt folosite pentru a rezolva o gamă largă de probleme. RTOS MAX este o platformă universală pentru dezvoltarea aplicațiilor încorporate, iar domeniul său de aplicare este legat de fezabilitatea utilizării microcontrolerelor într-o anumită sarcină.


Robotică, UAV
  • Sistem de control

    Electronica de control este instalată direct pe robotul însuși și implementează algoritmi care îi permit să rezolve sarcina.

  • Sistem de telemetrie

    Oferă comunicare între robot și un terminal la distanță, permițând operatorului să primească informații despre starea robotului și să trimită comenzi.


  • Sistem de pozitionare

    Adiţional dispozitive externe permite roboților să navigheze în interior și în zone deschise, să-și găsească drumul către destinație și către stațiile de bază.

Sisteme de casă inteligente
  • Managementul energiei și al luminii

    Asigurarea alimentării neîntrerupte a clădirii, monitorizarea consumului de energie electrică, pornirea/stingerea automată a iluminatului în funcție de prezența persoanelor în cameră și controlul nivelului de iluminare (reglarea luminozității luminii la diferite momente ale zilei).


  • Control climatic

    Menținerea unui microclimat interior confortabil (reglarea temperaturii și umidității, ventilarea și purificarea aerului) se realizează în funcție de preferințele utilizatorului, de prezența oamenilor în cameră, precum și de factorii externi (vremea, ora din zi).


  • Sisteme de monitorizare si securitate

    Supraveghere video și control al accesului în spații, monitorizarea evenimentelor care amenință siguranța locuinței (efracție, incendiu, scurgeri de apă) și notificarea automată a proprietarilor și a serviciilor relevante (pază, pompieri).

Electronice de larg consum și electrocasnice


Odată cu dezvoltarea tehnologiei, aparatele electrocasnice devin din ce în ce mai funcționale și mai convenabile de utilizat. De exemplu, în prezent, consumatorii au deja acces la echipamente care sunt controlate central de pe un smartphone sau tabletă în loc de telecomenzi separate. Echipamentele „inteligente” necesită din ce în ce mai puțină atenție din partea unei persoane, ceea ce permite utilizatorului să economisească în mod semnificativ timp și bani (aspiratoarele robot își fac propriile curățări, funcțiile de pornire întârziată și de oprire automată controlează timpul de funcționare al dispozitivului și, prin urmare, optimizează energia consum). Tehnologiile în dezvoltare rapidă ale Internetului lucrurilor (IoT) implică o autonomie completă a dispozitivelor, ceea ce creează cerințe mari pentru software-ul lor, iar din partea dezvoltatorilor acestor dispozitive există un interes din ce în ce mai mare pentru sistemul de operare, care oferă deja servicii și interacțiune. protocoale „din cutie”, permițând această autonomie.


Tehnologiile Internet of Things presupun autonomie completă a dispozitivelor. Acest lucru creează cerințe mari pentru software-ul lor. Din partea dezvoltatorilor acestor dispozitive, există un interes din ce în ce mai mare pentru sistemele de operare care oferă servicii și protocoale de interacțiune din cutie care fac posibilă asigurarea acestei autonomii.


Suport pentru rețea mesh
  • Fiabilitatea și toleranța la erori a rețelei

    Nodurile de rețea se conectează între ele, formând un număr mare de conexiuni. Între noduri pot fi formate mai multe rute de trafic. Dacă există rute redundante, eșecul unuia dintre nodurile intermediare nu va perturba funcționarea întregii rețele. Informațiile vor fi redirecționate dinamic de-a lungul unui traseu diferit.


  • Autoorganizare

    Structura rețelei se formează automat pe măsură ce nodurile sunt conectate/deconectate. Dacă este necesar, fiecare nod poate obține în mod independent informații despre disponibilitatea nodului de destinație și poate construi o rută optimă pentru schimbul de date.


  • Raza de comunicare crescută

    Fiecare dispozitiv poate avea o rază de comunicare scurtă. Cu toate acestea, distribuția geografică a multor dispozitive interconectate permite o acoperire mult mai mare.

Suport tehnologic pentru Internetul lucrurilor
  • Configurare optimă a unui sistem distribuit

    Resursele hardware ale fiecărui dispozitiv de sistem sunt selectate în funcție de scopul său funcțional. Nu este nevoie de calculatoare puternice pentru a rezolva probleme simple, cum ar fi identificarea obiectelor sau măsurarea parametrilor de mediu. Aceste funcții pot fi realizate în module mici, autonome, reducând costul unui sistem distribuit.


  • Funcționarea autonomă a sistemului

    Prin interacțiunea între ele, dispozitivele sunt capabile să ia decizii și să îndeplinească sarcini fără intervenția umană, ceea ce reduce costurile de întreținere a sistemului.


  • Scalabilitate

      Adăugarea și eliminarea dispozitivelor din rețea este nedureroasă și automată. Rețeaua va „descoperi singură” ce dispozitiv a apărut în ea și cum să-l folosească.

Domenii de aplicare
  • Senzori, senzori, convertoare
  • Sisteme „casa inteligentă”, „oraș inteligent”.
  • Internetul lucrurilor (IoT)
  • Automatizare industrială, control
  • Robotică
  • Echipament medical
  • Transport feroviar
  • Electronice de consum
  • Sisteme de comunicații

Sistem încorporat, sistem încorporat(Sistem încorporat englez) este un sistem specializat sistem informatic, în care computerul însuși este de obicei încorporat în dispozitivul pe care îl controlează.

Caracteristici:

  • Consum foarte mic de energie, de ordinul 0,5 până la ~20 wați
  • Dimensiuni mici
  • Absența sisteme mariîndepărtarea căldurii (răcire). Adesea procesorul nu este răcit deloc sau este folosit un mic radiator.
  • CPU și logica sistemului, precum și alte circuite integrate, sunt adesea combinate pe un singur cip (System On Crystal = SOC)

Baza pentru construirea sistemelor încorporate poate fi cu o singură placă sau cu un singur cip microcontrolere, procesoare specializate sau universale, FPGA. O caracteristică interesantă a unor tipuri de sisteme încorporate este utilizarea procesoarelor din familia x86 destul de învechite (de exemplu, i386, i486, Pentium) și clonele acestora datorită consumului redus de energie și costului redus (aproximativ 1-5 dolari SUA). De asemenea, multe tipuri de sisteme încorporate utilizează procesoare cu arhitectură ARM.

Pe acest moment Un număr destul de mare de companii (inclusiv în Rusia) produc computere cu o singură placă bazate pe microcontrolere și procesoare cu arhitectură RISC. Printre ei Advantech, AAEON, Advanced Micro Peripherals (AMP), Ampro Computers, Diamond Systems, iBASE, InnoDisk, Fastwel (Rusia), Lippert, Octagon Systems, RTD Embedded Technologies, Tri-M Systems - Engineering, SanDisk, STEC. Exemple de sisteme încorporate includ ATM-uri, avionică, PDA-uri, echipamente de telecomunicații și dispozitive similare.

Unele sisteme încorporate sunt utilizate în cantități de masă (cum ar fi dispozitivele RFID). Sistemele încorporate sunt o țintă atractivă pentru creatorii de coduri rău intenționate datorită ubicuității și vulnerabilității relative. Treptat, apare cod rău intenționat pentru sistemele încorporate (Cabir, virus RFID); Din fericire, acest proces este încă îngreunat de eterogenitatea dispozitivelor încorporate, de lipsa software-ului dominant și de funcționalitatea limitată a unor tipuri de dispozitive. Pe de altă parte, sarcina companiilor antivirus și a cercetătorilor Securitatea calculatorului este complicată și de aceste circumstanțe, precum și de puterea scăzută a sistemelor încorporate, care de multe ori nu permite utilizarea unui software antivirus comun.

Principalii producători de procesoare pentru sisteme embedded sunt VIA technologies, Transmeta Corporation, Infineon Technologies.

Sisteme de operare pentru sisteme embedded

Sistemele încorporate utilizează o sisteme de operare în timp real (RT OS).

Un sistem de operare în timp real este un sistem de operare care răspunde la momente previzibile la apariția imprevizibilă a evenimentelor externe. Uneori, RTOS sunt numite sisteme interactive întotdeauna gata. Ele sunt clasificate în categoria RTOS pe baza considerentelor de marketing, iar dacă un program interactiv este numit „în timp real”, aceasta înseamnă doar că cererile de la utilizator sunt procesate cu o întârziere care este imperceptibilă pentru oameni. Uneori, conceptul de sistem în timp real este identificat cu un „sistem rapid”, dar acest lucru nu este întotdeauna corect, deoarece ceea ce este important nu este timpul de întârziere al răspunsului RTOS, ci faptul că acest timp este suficient pentru aplicația în cauză. și că este garantat.

Sistemele se disting uneori „greu” și „moale” în timp real. Un sistem de operare „hard” în timp real garantează execuția anumitor acțiuni într-un anumit interval de timp; un sistem de operare „soft” în timp real, de regulă, reușește să finalizeze acțiuni într-o anumită perioadă de timp, dar nu garantează complet acest lucru . Majoritatea software-ului se concentrează pe timp real soft.

Astfel de sisteme se caracterizează prin:

  • timp de răspuns garantat la evenimente externe (întreruperi de la echipamente);
  • un subsistem strict de planificare a proceselor (sarcinile cu prioritate înaltă nu trebuie înlocuite cu cele cu prioritate scăzută, cu unele excepții);
  • cerințe crescute pentru timpul de reacție la evenimente externe sau reactivitate (întârzierea apelării unui operator de întrerupere nu depășește zeci de microsecunde, întârzierea la schimbarea sarcinilor nu depășește sute de microsecunde)

Un exemplu clasic de sarcină în care este necesar un RTOS este controlul unui robot care ridică o piesă de pe o bandă transportoare. Piesa se mișcă, iar robotul are doar o mică fereastră de timp când o poate ridica. Dacă întârzie, piesa nu se va mai afla pe secțiunea corectă a transportorului și, prin urmare, munca nu va fi făcută, în ciuda faptului că robotul este în locul corect. Dacă se poziționează mai devreme, piesa nu va avea timp să sosească și îi va bloca calea.
Windows CE (alias WinCE) este o variantă a sistemului de operare Microsoft Windows pentru computere portabile, telefoane mobile și sisteme încorporate. Windows CE nu este demontat Versiunea Windows pentru PC-uri desktop și se bazează pe un nucleu complet diferit. Principalele dezavantaje ale sistemului includ absență completă necesar aplicații software. Sunt acceptate arhitecturile x86, MIPS, ARM și procesoarele Hitachi SuperH.

Principalii competitori ai WinCE sunt VxWorks, eCos, OSE, QNX, LynxOS, Symbian OS, OS-9 , precum și diverse derivate Linux (de exemplu, uClinux ) și, cel mai faimos, PalmOS . Unii producători de dispozitive își fac și propriul sistem.

Windows CE este optimizat pentru dispozitive cu memorie minimă: Nucleul Windows CE poate rula pe 32 KB de memorie. Cu interfata grafica (GWES) pt Operare Windows CE va avea nevoie de 5 MB. Dispozitivele de multe ori nu au memorie pe discși pot fi proiectate ca dispozitive „închise”, fără posibilitatea de a fi extinse de către utilizator (de exemplu, sistemul de operare poate fi „cablat” în ROM). Windows CE îndeplinește definiția unui sistem de operare în timp real.

Windows CE alimentează multe platforme, inclusiv PC portabil, Pocket PC, Pocket PC 2002, Pocket PC 2003, Pocket PC 2003 SE, Smartphone 2002, Smartphone 2003, Windows Mobile și multe dispozitive industriale și sisteme încorporate. Consola Sega Dreamcast avea Suport Windows CE. Windows CE în sine nu a fost inclus în livrarea inițială, dar ar putea fi lansat pe un set-top box de pe un CD. Unele jocuri au folosit această caracteristică.

Adesea, denumirile Windows CE, Windows Mobile, Pocket PC sunt folosite alternativ. Acest lucru nu este în întregime corect. Windows CE 3.0 este un sistem de operare modular care servește drept bază pentru mai multe clase de dispozitive. Orice dezvoltator poate cumpăra un set de instrumente (Platform Builder), care conține toate aceste componente și programe care vă permit să vă construiți propria platformă. Cu toate acestea, aplicații precum Word Mobile / Pocket Word nu fac parte din acest set de instrumente.

Windows Mobile este cel mai bine gândit ca un set de platforme bazate pe Windows CE. În prezent acest set include platforme: Pocket PC, SmartPhone și Portable Media Center. Fiecare platformă folosește propriul set Componentele Windows CE, plus propriul set de caracteristici și aplicații conexe.

Windows CE.net este numele de cod pentru Windows CE versiunea 4.2.

Windows Embedded CE 6.0(nume de cod „Yamazaki”) este a șasea versiune a sistemului de operare Windows Embedded, destinată întreprinderilor care produc controlere industriale și dispozitive electronice de larg consum. Windows Embedded CE 6.0 are un nucleu complet reproiectat care acceptă peste 32.000 de procese, mai mult de la 32 in Versiuni anterioare. Spațiul de adrese virtuale alocat proceselor a crescut de la 32 MB la 2 GB.

Windows Embedded CE 6.0 a fost lansat pe 1 noiembrie 2006.
Windows CE 6.0 R2 a fost lansat pe 15 noiembrie 2007.
Windows Embedded CE 6.0 este, de asemenea, baza pentru Windows Mobile 7 (denumit de cod „Photon”).

QNX este un sistem de operare în timp real compatibil cu POSIX, conceput în principal pentru sisteme încorporate. Este considerată una dintre cele mai bune implementări ale conceptului de sisteme de operare microkernel.

Cum sistem de operare microkernel QNX se bazează pe ideea de a rula cea mai mare parte a componentelor sale ca sarcini mici numite servicii. Acest lucru îl deosebește de nucleele monolitice tradiționale, în care nucleul sistemului de operare este un program mare format dintr-un număr mare de „părți”, fiecare cu propriile sale caracteristici. Utilizarea unui microkernel în QNX permite utilizatorilor (dezvoltatorilor) să dezactiveze orice funcționalitate de care nu au nevoie fără a schimba nucleul. În schimb, pur și simplu nu puteți rula un anumit proces.

Sistemul este suficient de mic pentru a încăpea pe o singură dischetă în configurația sa minimă, dar este considerat foarte rapid și corect „complet” (practic fără erori).

QNX Neutrino, lansat în 2001, a fost portat pe multe platforme și este acum capabil să ruleze pe aproape orice procesor modern utilizat pe piața încorporată. Printre aceste platforme se numără familii x86, MIPS, PowerPC, precum și familii de procesoare specializate precum SH-4, ARM, StrongARM și xScale.

O versiune necomercială este disponibilă pentru descărcare pe site-ul dezvoltatorului.

LynxOS- Sistem de operare în timp real asemănător Unix, conceput pentru sisteme încorporate, compatibil cu standardele POSIX și, în În ultima vreme, cu sistemul de operare GNU/Linux. LynxOS este utilizat în principal în aviație, sisteme de control al proceselor industriale și telecomunicații.

ChorusOS este un sistem de operare microkernel în timp real conceput pentru sisteme încorporate. În 1997, Sun Microsystems a cumpărat Chorus systems, compania care a creat ChorusOS. În august 2002, fondatorii Chorus Systems au format o nouă companie, VirtualLogix, și au început să dezvolte sisteme încorporate folosind Linux și ChorusOS.

Nucleu este un sistem de operare în timp real creat de Accelerated Systems, divizia de sisteme încorporate a Mentor Graphics, pentru diverse platforme de procesoare. S-a răspândit în decodoarele de televiziune, telefoane mobileși alte dispozitive portabile și portabile. Nucleus este folosit de Garmin International într-un modul GPS conceput pentru aviația civilă.

OS-9 este un sistem de operare multitasking, multi-utilizator, în timp real, dezvoltat de Microware Systems Corporation.
Folosit pentru sisteme interactive și încorporate. În zilele noastre, OS-9 este deținut de RadiSys Corporation situat în Oregon (SUA).

VxWorks- sistem de operare în timp real (RTOS), dezvoltat de Wind River Systems (SUA).
La fel ca majoritatea celorlalte RTOS, VxWorks include un nucleu multitasking cu un planificator preventiv și răspuns rapid la întrerupere, facilități de comunicare și sincronizare între procese, precum și un sistem de fișiere și un subsistem de rețea (stivă de protocol TCP/IP). Pachetul include instrumente pentru compilare încrucișată, monitorizare a performanței (WindView), depanare simbolică la distanță și emulare a diferitelor procesoare. În plus, un număr semnificativ de stive de protocoale diferite, subsisteme grafice etc. sunt furnizate atât de la Wind River Systems în sine, cât și de la companii terțe. Varietatea de platforme încorporate acceptate de VxWorks este una dintre cele mai largi din orice RTOS.

Cea mai recentă versiune a mediului de dezvoltare integrat Wind River Workbench (furnizată cu VxWorks versiunile 6.x, precum și 5.x) este construită pe deasupra mediului Eclipse. Mediul de dezvoltare proprietar anterior se numea Tornado.

Utilizare:

  • Mars Reconnaissance Orbiter pe orbita lui Marte (folosind sistemul VxWorks)
  • Sondele Spirit și Opportunity, precum și Mars Reconnaissance Orbiter, folosesc VxWorks pe platforma POWER. Sistemul este folosit și în alte misiuni spațiale, cum ar fi Deep Impact.
  • Planificat pentru utilizare în cele mai recente avioane de linie Boeing 787.
  • Echipamente de comunicații de la multe companii (de exemplu, Nortel, 3COM, Alcatel etc.).
  • Linksys WRT54G (ver. 5, 6,...), NetGear WGR614 (ver. 5, 6, 7)
  • Unele imprimante PostScript.
  • Echipamente medicale de la Siemens AG (în special, scanere de imagistică prin rezonanță magnetică).
  • Cele mai recente sisteme de interfață BMW iDrive

OS2000- Sistem de operare în timp real (RT OS) dezvoltat de NIISI RAS prin ordin al Ministerului Apărării din RF pentru microprocesoare MIPS și Intel.
Acest sistem de operare RT este destinat dezvoltării de software pentru sisteme (sisteme hardware și software) care funcționează în timp real.
Suport dispozitiv:

  • Dispozitive de rețea Ethernet (protocoale NFS, FTP, Telnet), pentru versiunea Intel, suportul este limitat la carduri ISA și PCI de la Realtek, carduri compatibile NE2000.
  • dispozitive de stocare – dischetă și hard disk-uri(sisteme de fișiere vfat și tar)

Există suport pentru subsistemul grafic client-server X Window System, utilizat în sistemele Unix.