Documente Academic
Documente Profesional
Documente Cultură
Un sistem de timp real se defineste relativ la notiunea de task de timp real. Definim un task ca
fiind o functie individuala care se executa in mod repetitiv in contextul unei anumite aplicatii,
astfel incat aplicatia poate fi descrisa ca o trecere progresiva printr-o secventa de taskuri. La
fiecare moment de timp, aplicatia este implicata in executia unui anumit task, si acest task
trebuie planificat.
Task = cea mai mica unitate de prelucrare careia i se atribuie o identitate, reprezentand un
program in forma executabila compus dintr-o succesiune de instructiuni executate secvential.
Cea mai importanta componenta a unui sistem de timp real este sistemul de operare, si in
particular, planificatorul de task-uri. Toate sistemele de operare in timp real trebuie sa ofere
trei functii specifice:
In general, prin nucleu de timp-real se intelege cea mai mica portiune a unui sistem de operare,
care implementeaza cele trei functii mentionate anterior, insa, din punct de vedere al
complexitatii, se poate considera urmatoarea ierarhizare a "nucleelor":
• nano-kernel : furnizeaza un singur serviciu din cele trei, si anume task dispatching. Face doar
managementul unui singur fir de executie;
• kernel : este un micro-kernel care permite in plus sincronizarea cat si comunicatia intre
taskuri prin intermediul semafoarelor, cutiilor postale, etc;
• executiv de timp-real : este un nucleu cu caracteristici mult mai complexe, cum ar fi blocuri
de memorie private, servicii I/O, etc. In aceasta categorie se inscriu cele mai multe nuclee de
timp real comerciale;
● nuclee comerciale:
o QNX, OS9, PDOS, pSOS, VxWorks, ERCOS, EMERALDS
o au dimensiuni reduse, functionare multitasking, mecanisme IPC standard (cutii
postale, evenimente, semnale, semafoare), asigura comutare rapida de context
o arhitectura modulara
o ceas de timp-real, planificare pe baza de prioritati, alarme si timeouts.
● extensii ale sistemelor UNIX si ale altor sisteme de operare:
o RT-UNIX, RT-LINUX, RT-MACH,RT-POSIX
o sunt mai lente, mai putin predictibile
o se bazeaza pe un set de interfete standard.
● nuclee experimentale / de cercetare :
o Spring, MARS, HARTOS, MARUTI, ARTS, CHAOS, DARK
o au mecanisme de planificare de timp-real si analiza a comportarii in timp
o pun acces pe predictabilitate, mai putin pe performanta medie
o implementeaza mecanisme de evitare a inversiunii de prioritate (e.g. priority
ceiling protocol)
o asigura suport pentru fault-tolerance si operatii de I/O.
De cele mai multe ori, in sistemele de timp real notiunile de proces si task se refera la acelasi
concept. Un proces este in esenta un cod program care se afla intr-o anumita stare de executie.
Procesul are propriul sau spatiu de adresa si un singur flux de executie (engl. flow of control ).
Contorul program al procesului contine adresa urmatoarei instructiuni care trebuie executata.
Sistemul QNX Neutrino
Sistemul de operare QNX Neutrino este un sistem de operare open bazat pe standardul POSIX
API ce permite dezvoltarea de aplicatii de timp-real, rulabile pe sisteme “constrained
embedded systems” pana la sisteme de calcul distribuite. El suporta mai multe familii de
procesoare incluzand INTEL x86, ARM, XScale, PowerPC, MIPS, and SH-4.
Sistemul de operare QNX este dedicat dezvoltarii aplicatiilor in timp-real, avand facilitati
specifice ca planificarea multitasking preemptiva pe baza de prioritati, posibilitatea comutarii
rapide de context, mecanisme de comunicare intre procese. QNX poate fi utilizat pentru
aplicatii standalone sau pentru lucrul in retea, fiind extrem de flexibil. Sistemul de operare QNX
poate fi "ajustat" in functie de aplicatie
Sistemul QNX Neutrino ajunge sa asigure un grad ridicat de eficienta, modularitate prin doua
principii de bază:
● Arhitectura microkernel
● Comunicarea interprocese bazată pe mesaje
Arhitectura microkernel
Procese sistem. Toate serviciile sistemului de operare sunt furnizate prin intermediul unor
procese standard. Un sistem complet al QNX ar fi:
● filesystem managers
● character device managers
● graphical user interface (Photon)
● native network manager
● TCP/IP