Sunteți pe pagina 1din 9

1 .

tipuri de aplicatii in timp real :


- timpul real reprez o notiune utilizata pt caract opreatiilor dintr-un sistem de conducere
care se desf in sincronism cu evenimentele lumii exterioare
- un sistem de conducere reprez comportarea in timp real daca deciziile elaborate de
acesta sunt emise la momentul oportun, respectiv sunt aplicate procesului inainte ca
datele pe baza carora au fost elaborate aceste comenzi sa-si piarda valabilitatea. In aceste
conditii timpul reprez o resursa esentiala si in acelasi timp critica pt echipamentele
numerice implicate in conducerea procesului
- resursa este esentiala deoarce toate marimile aferente unui proces sunt dependente de
timp; resursa este critica deoarece trebuie sa existe o stransa corelatie intre timp si timpul
precizat
- practic , timpul real este concretizat de tipul de reactie sau de raspunsul sistemului la
anumite modificari din proces sau la anumite comenzi ale operatorului. Se poate stabili o
corelatie intre inertia procesului si comportarea in timp real. In ultima instanta
comportarea in timp real este determinata de frecventa cu care sunt preluate datele din
proces si cu care sunt transmise comenzile catre acesta.
- avand in vedere realtia timp real inertie , se poate spune ca t r nu are o valoare
universala ,ci este specifica fiecarui proces. Din acest motiv o denumire alternativa pt t r
este cea de timp util
Principalele tipuri de aplicatii in timp real : conducere si tranzactionare.
1. Aplicatiile de conducere se refera la elaborarea si transmiterea unei comenzi catre
proces.
Sintetic o aplicatie de cond in t r permite : achizitie de date; procesarea datelor ,
actualizarea bazei de date; elaborarea comenzilor, procesarea comenzilor in vederae
transmiterii catre elementul de executie; generarea de rapoarte.
2. aplicatiile tranzactionale presupun rezolvarea unor solicitari pe care utilizatorii le
adreseaza sistemelor de timp real.(solicitari cunoscute sub den de tranzactii)
-

Trasaturi specifice ale sistemelor de operare in t r (SOTR):


realizarea unei aplicatii in t r impica 3 categorii de resurse software
in general un sistem de operare orienteaza un echipament catre rezolvarea unor
categorii de aplicatii in timp ce o aplicatie orienteaza sistem catre rezolvarea unei
probleme concrete
specificul sist de operare in timp real consta in faptul ca exista aplicatii care
trebuie sa se execute conditionat de catre unul din factori si/sau evenimentele
externe ; rezulta ca la un moment dat in memoria unui sistem pot coexista mai
multe aplicatii care se pot gasi in diferite stadii sau stari
principala componenta a unui SOTR este planificatorul care asigura secventierea
corecta a evolutiei taskurilor
un SOTR capabil sa asigure o procesare paralela sau pseudoparalela a taskurilor
se numeste sistem de operare in timp real multitasking

Obiectivele si principiile ingineriei programate in timp real:


obiective de adaptabilitate
ob de eficienta
ob de fiabilitate
ob de perceptibilitate
Adaptabilitatea presupune dezvoltarea de facilitati pt efectuarea de modificari
intr-o maniera strict controlata.
Eficienta este impusa de argumente care de regula au in vedere minimizarea
necesarului de resurse, efortului si timpului necesar dezv programelor
Fiabilitatea se refera la dezv de aptitudini pt programe de indeplinire a sarcinilor
pt un interval de timp prestabilit in cond de lucru specificate.
Perceptabilitatea se refera la aptitudinea care trebuie conferita programelor pe
parcursul dezvoltarii lor de a fi usor intelese si convertite de un alt utilizator sau
dezv la un anumit interval de timp dupa elaborare.

Principiile :
modularizarii
abstractizarii
localizarii
uniformitatii
completitudinii
conformabilitatii
acoperirii

Fazele din existenta unei aplicatii/program de timp real:


analiza cerintelor
elaborarea specificatiilor
proiectarea sist de programe
codificarea
instalarea si testarea programelor
intretinerea programelor

Starile si evolutia taskurilor:


In sens general un task reprez o unitate elementara de program independenta din pdv
logic.
In aplicatii de timp real exista taskuri interactive si disjuncte.
T. interactive sunt taskurile care pe parcursul evolutiei lor utilizeaza resurse in comun si
fac schimb de date.
Cele care nu sunt interactive sunt t. disjuncte.
Evolutia unei aplic care contine numai taskuri disjuncte este unica indiferent de viteaza si
ordinea de executie a taskurilor.
In ceea ce priveste evolutia unui sist de taskuri interactive aceasta este influentata de 2
factori : modul de planificare a executarii taskurilor si modul de efectuare a tranzitiei
intre stari si substari.

Un task se poate gasi intr-una din starile :


- neinstalat
- inactiv
- activ : - executie
gata de executie
blocat

Conflicte potentiale in sist multitasking:


Accesul taskurilor la resurse genereaza conflicte.
Tipuri de resurse :
-fizice
-logice
O alta clasificare imparte resursele in : locale si comune (pot fi critice,
partajabile,recutrante)
Resursele critice sunt resurse comune care la randul lor pot fi accesate la un moment dat
de catre un singur task.
Operatii multitasking :
-excluderea mutuala
-sincronizarea
-comunicarea
Excluderea mutuala reprezinta operatia multitasking prin care se permite accesul unui
singur task in propria sectiune critica referitoare la o resursa.
Recomandarile lui Tanenbaum:
- o sectiune critica poate fi executata la un momenta dat de catre un singur task
- nu se poate face nicio ipoteza in ceea ce priveste viteza relativa si frecventa de
executie a taskurilor
- orice task are dreptul sa acceseze propria sectiune critica dupa un anumit interval
finit de timp

orice task trebuie sa elibereze propria sectiune critica dupa un interval finit de
timp
taskurile nu se pot bloca in interiorul sectiunii critice
Excludere mutuala cu semafoare :
Semaforul reprezinta un dublet form dintr-o variabila de tip intreg.
Exemplu : taskurile T1 si T2 se executa sincronic cu timp ; semaforul de
excludere mutuala este SEMEX.

Excludere mutuala cu cutii postale:


O cutie postala reprezinta un buffer in care se pot stoca un nr prefixat de mesaje.
Mesajul reprez un volum de date care se transmite intre taskuri pe parcursul
evolutiei lor.
Exemplu :

Sincronizarea taskurilor:
Reprezinta frecventa de punere a unui task, in relatie cu un alt task cu timpul sau
cu un eveniment extern.
2 taskuri se considera sincronizate daca se pot stabili relatii predictibile intre
diferite momente ale desfasurarii lor.
Variabilele de tip eveniment sunt variabilele logice de tip special asupra carora
pot actiona 3 tipuri de primitive si anume : inscrie,sterge si asteapta.
E {adevarat,fals}
Semnificatia variabilei :
- inscrie(E) - E-adevarat
- sterge(E) - E-fals
- asteapta(E) - blocheaza taskul daca E-fals
- continua executia daca E-adevarat
Exemplu sincronizarea cu variabile de tip eveniment:

Comunicarea intre taskuri :


Prelucrarea multitasking presupune utilizarea de resurse in comun si schimbul de
informatii care este concretizata in operatia de comunicare. Aceasta se real prin
transmiterea de mesaje care pot fi: informationale sau simbolice.
Mesajele pot fi transmise direct de la producator la consumator sau indirect prin
intermediul cutiilor postale.
{ O cutie postala reprezinta un buffer in care se pot stoca un nr prefixat de mesaje.
Mesajul reprez un volum de date care se transmite intre taskuri pe parcursul
evolutiei lor.}
Exemplu :

Cerintele si caracteristicile limbajului de programare in timp real (LPTR):


LPTR sunt limbaje cu ajutorul carora pot fi codificate aplicatiile de timp real
Principala cerinta impusa LPTR o reprez existenta de primitive care sa
implementeze operatii multitasking(excludere mutuala,sincronizare si
comunicare) si instrumentele asociate (semafoare ,cutii postale,mesaje de
trecere,etc)
Alte cerinte:
-fiabilitate
-eficienta
-flexibilitate
-claritate
-simplitate
-portabilitate

Executivul de timp real RTK (Real Time Kernel nucleu de timp real):
Un sistem are comportament in timp real daca reactia sa la schimbarile din proces
este in conformitate cu inertia procesului.
Conducerea in timp real presupune 2 aspecte :
-transmiterea de comenzi in proces la momentul oportun
-punerea la dispozitia utilizatorului de informatii privind procesul

Taskuri sub RTK :


Caracteristici ale executivului RTK :
1.are o constructie compacta necesitand 16 kilo octeti pt cod si 16 pt date
2.nu exista o limitare in ceea ce priveste nr de taskuri
3.fiecare task are asociata o prioritate
4.executivul pune la dispoz utilizatorului pt implementarea operatiilor multitasking
:semafoare,cutii postale si mesaje de trecere
5.fiecare task are asociata o stiva pe care sunt alocate variabile locale
6.executivul ofera drivere pt consola, comunicatii seriale si paralele si retea
Starile taskurilor in context RTK:
-task-ul in context RTK reprez o functie in C fara parametrii si cu stiva proprie.(stivastructura de memorie organizata pe principiul LIPO)
Starile taskurilor sunt : CURRENT=taskul detine controlul unitatii centrale de
procesare
READY=asteapta sa i se aloce UCP
SUSPENDED=asupra taskului a fost executata o functie RTKSuspend
DELAYING= -||- o functie RTKDelay sau RTKDelayUntil
BLOCKED=taskul asteapta momentul producerii unui eveniment; nu iese din aceasta
stare pana cand evenimentul nu s-a produs
TIMED= asemanator BLOCKED numai ca asteptarea nu se produce pe un orizont de
timp indefinit
Functii ale executivului RTK:
Ofera 210 functii.
Clase de functii :
-de initializare pt executiv (RTKernelInit(parametrul Mainprio)) si driverul consola
( RTKeybrdInit() )
-de administrare a taskurilor
-functia de creare : RTKCreateTask( )
-de suspendare : RTKSuspend( )
-de reactivare a taskurilor: RTKResume( )
-de schimbare a prioritatii: RTKSetPriority( )
-de returnare a starii taskului: RTKGetTaskState( )
-de gestiune a timpului
-functia de setare a timpului sistem : RTKSetTime( )
-de preluare a timpului sistem : RTKGetTime( )
-de temporizare : RTKDelay( ) sau RTKDelayUntil( )
-de gestiune a semafoarelor (Semaphore S)
-functia de creare si initializare a unui semafor: RTKCreateSema(Binary,0)
-de incrementare : RTKSignal(S)
-de decrementare : -neconditionata : RTKWait(S)
-conditionata : RTKWaitCond(S)
-de gestiune a cutiilor postale
-de initializare a unei cutii postale: RTKCreateMailBox( )
-de stergere a unei cutii p : RTKClearMailBox( )

-de returnare a nr de mesaje dintr-o cutie postala : RTKMessages(MailBox, Box )


-functia de depunere neconditionata : RTKPut( )
extragere neconditionata : RTKGet( )
-fct de depunere cond : RTKPutCond( )
extragere cond : RTKGetCond( )
-fct de depunere temporizata : RTKPutTimed( )
Extragere temporizata : RTKGetTimed( )
-de gestiune a mesajelor : RTKSend( ) ; RTKSendCond( ) ; RTKSendTimed( )
-fct de preluare a mesajului : RTKReceive( ) ; RTKReceiveCond( ) ;
RTKReceiveTimed( )