Sunteți pe pagina 1din 5

Sisteme de operare in timp real

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:

•  planificarea taskurilor (engl . Task scheduling ). Planificatorul de task-uri selecteaza (conform


unui anumit algoritm) urmatorul task care va fi lansat in executie;

•  task dispatching . Un dispatcher realizeaza operatiile necesare pentru a lansa un task in


executie;

•  comunicarea intre taskuri .

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;

•  micro-kernel : este un nano-kernel care asigura in plus si planificarea taskurilor;

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

•  sistem de operare de timp-real: este un executiv care dispune de o interfata utilizator


generalizata, dispozitiv de securitate a datelor, un sistem de gestiune a fisierelor, interfete de
retea, instrumente de depanare etc. In aceasta categorie se inscriu sistemele de operare QNX,
Unix, OS-9.
Caracteristicile unui sistem de operare de timp-real:

● planificare preemptiva pe baza de prioritati


● sincronizarea si managementul proceselor
● managementul memoriei
● mecanisme de comunicare intre procese (engl. IPC - Inter Process Communication)
● operatii I/O bazate pe intreruperi

Cerinte pe care trebuie sa la indeplineasca un sistem de operare de timp-real:

● intarzierile introduse de rutinele de tratare a intreruperilor sa fie minime


● comutare rapida de context
● functii de sistem cu semantica simpla care se executa rapid
● timere cu granulatie fina pentru indeplinirea deadline-urilor
● suport retea
● programe de dezvoltare de software (compilatoare, programe de depanare, etc)

Tipuri de sisteme de operare de timp-real:

● 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

Un microkernel al sistemului de operare este structurat ca un mic nucleu ce furnizează servicii


minimale utilizate de procesele ce cooperează. Arhitectura sistemului de operare QNX are la
baza microkernelul Neutrino, care gestioneaza un grup de procese care coopereaza.
Microkernelul Neutrino asigura urmatoarele servicii de baza:

a) servicii asociate firelor de executie. Neutrino furnizeaza primitive pentru crearea


firelor de executie conform standardului POSIX;
b) servicii pentru tratarea semnalelor. Neutrino furnizeaza primitive pentru tratarea
semnalelor conform standardului POSIX;
c) servicii pentru transmiterea mesajelor. Neutrino asigura rutarea tuturor mesajelor
intre firele de executie in intregul sistem;
d) servicii de sincronizare. Neutrino furnizeaza primitive pentru sincronizarea firelor de
executie conform standardului POSIX;
e) servicii de planificare. Neutrino planifica si lanseaza in executie firele de executie
utilizand diversi algoritmi POSIX de planificare in timp-real;
f) servicii pentru gestiunea timpului. Neutrino furnizeaza un set bogat de servicii de
timp conform standardului POSIX;
g) servicii pentru managementul proceselor. Microkernelul Neutrino formeaza
impreuna cu managerul de procese o unitate denumita procnto. Componenta
manager de procese asigura gestiunea proceselor si a memoriei.
Microkernelul Neutrino dispune de apeluri specifice (engl. kernel calls) pentru urmatoarele
facilitati: a) fire de executie; b) transmitere de mesaje; c) semnale; d) ceas (gestiunea timpului);
e) timere; f) rutine de tratare a intreruperilor; g) semafoare; h) lock-uri pentru excludere
mutuala (mutex); i) variabile conditionale (condvars); j) bariere.
Microkernelul Neutrino asigura managementul cooperarii proceselor, actionând ca un fel
de magistrala software ce asigura conectarea dinamică a modulelor de intrare-iesire.

Arhitectura QNX Neutrino

Microkernelul QNX reprezinta "inima" sistemului de operare si asigura urmatoarele activitati:


● •  comunicarea intre procese . Microkernelul supervizeaza rutarea mesajelor , asigurand
totodata si gestiunea celorlalte doua forme de IPC implementate in cazul QNX, proxies si
semnale ;
● •  comunicarea in retea la nivelul de baza . Microkernelul asigura transmiterea
mesajelor destinate proceselor din alte noduri;
● •  planificarea proceselor . Planificatorul microkernelului decide care proces se va
executa la momentul imediat urmator;
● •  tratarea primara a intreruperilor . Toate intreruperile hardware si erorile sunt
transmise mai intai catre microkernel, care le va transmite apoi driver-ului sau
managerului de sistem corespunzator.
Arhitectura QNX dezvoltata in jurul nucleului Neutrino

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

S-ar putea să vă placă și