Sunteți pe pagina 1din 22

Ingineria prrogramarii I

Curs 10
Dezvoltarea sistemmelor de timp real
<Ingineria programarii I>
Curs 10: Dezvoltarea sistemelor de timp rreal - Agenda <Gabriela Varvara>

Obiective curs:

Obiectivul 1: explicarea conceptului d


de sistem de timp real si a utilitatii
practice a acestor sisteme
sisteme.

Obiectivul 2:descrierea procesului de


e proiectare pentru sistemele de timp
real.
real

Obiectivul 3: explicarea rolului unui s


sistem de operare de timp real.

Obiectivul 4: introducerea arhitecturilor de proces generice pentru sistemele


de monitorizare,control si de achizitiii de date.

Subiecte tratate: proiectare sistem dee timp real, sisteme de operare de timp
real, sisteme de monitorizare si contrrol, sisteme de achizitie a datelor.
<Ingineria programarii I>
Sisteme de timp real (STR) <Gabriela Varvara>

Sisteme ce isi monitorizeaza si controleaza proprriul mediu.

Sunt inevitabil asociate cu dispozitive hardware d


de tip:

Senzor – colecteaza date din mediul sis


stemului

Actuatori – schimba intr-un anume fel m


mediul sistemului

Timpul are rol critic – sistemele de timp real trebu


uie sa raspunda in intervale de timp specificate.

Pentru un sistem de timp real corecta functionare


e depinde de rezultatele produse de acesta si de
momentele de timp la care acestea au fost livrate
e.

Un sistem soft de timp real este un sistem pentru


u care operarea este deteriorata daca rezultatele
nu sunt produse in conformitate cu specificatiile de cerinte de timp.

Un sistem hard de timp real este un sistem pentrru care operarea este incorecta daca rezultatele nu
apar conform specificatiilor de timp.

STR s nt sisteme de tip stimul-raspuns


sunt stim l rasp ns ( cond s
condus e enimente) Stim
se de evenimente). lii pot fi aperiodici (apar la
Stimulii
momente ce nu pot fi predictate – ex. intrerupere
e alimentare sistem) sau periodici (apar la intervale
prestabilite de timp – ex. senzor de temperatura c
ce este citit la fiecare 0.1sec).
<Ingineria programarii I>
Consideratii arhitecturale <Gabriela Varvara>

Arhitectura trebuie sa permita comutarea rapida intre diferitii handleri ai stimulilor.


Deoarece timpul de raspuns la diferiti stimuli este
e diferit, o tratare secventiala nu este adecvata.
STR sunt p g
proiectate de regula sub forma unor p
pro p
ocese ce coopereaza cu un control executiv de
timp real al acestora.
Un model de sistem de timp real este:

4
<Ingineria programarii I>
Procese de tip senzor/actuator <Gabriela Varvara>

Procesele de control a senzorilor – coleecteaza, posibil bufferat, informatii de la


senzori ca raspuns a stimulilor veniti de
e la acestia.
Proces de prelucrare date – proceseaza
a informatiile colectate si sintetizeaza
raspunsul sistemului.
sistemului
Procesele de control ale actuatorilor – g
genereaza semnale de control pentru
elementele efectuare.

Senzor

Actuator

Stimul Raspuns

Control senzor
Control senzor Control actuator
Control actuator

Procesor date

5
<Ingineria programarii I>
Programarea de timp real <Gabriela Varvara>

Sistemele hardware de timp real sunt adese ea programate in limbaj de asamblare pentru
a asigura raspunsul in intervalele prestabilitte de timp.
Limbaje de programare precum C Borland p permit o programare eficienta; acestea nu au,
insa, constructii care sa suporte concurenta
a sau managementul resurselor partajate.
Limbajul Java suporta concurenta ( lightweight – prin fire de executie si metode
sincronizate) si poate fi folosit pentru unele
e sisteme soft de timp real.
real
Java 2.0 nu poate fi folosit pentru programa
area sistemelor hard de timp real, dar
versiuni ale limbajului Java pot adresa urma
atoarele probleme specifice:
Nu se poate specifica timpul de executie pentru un fir
Timpii de executie sunt diferiti pen
ntru diferite masini virtuale
C l t
Colectarea garbage
b nu este
t contro
t olabila
l bil
Nu pot fi identificate dimensiunile c
cozilor de asteptare pentru resursele
partajate
Nu este posibil accesul la hard-ul s
sistemului
Nu este posibila efectuarea de ana
alize in timp si spatiu al starilor.

6
<Ingineria programarii I>
Concepte de proiectare a sistemelor de timp
t real <Gabriela Varvara>

Se va face o proiectare in paralel a harddului si softului asociate sistemului.


Functionalitatea va fi partajata fie hardw
ware fie software.
Deciziile de proiectare se vor baza pe cerintele nefunctionale ale sistemului.
Sistemele de timp real exclusiv hardware ofera o performanta mai buna, dar
necesita timp mai mare pentru dezvolta
are si mai putine oportunitati de
schimbare.

7
<Ingineria programarii I>
Procesul de proiectare a sistemelor de timp real <Gabriela Varvara>

Se identifica stimulii si raspunsurile afe


erente acestora
Pentru fiecare pereche stimul-raspuns s
se identifica constrangerile de timp
S agregheaza
Se h ti l
procesarea stimul-raspu uns subb forma
f t
unor procese concurente.
Un proces poate fi asociat unei intregi c
clase de tip stimul-raspuns.
S p
Se proiecteaza g
algoritmii p
de procesare p p
pentru fiecare clasa stimul-raspuns. S
Se
va verifica incadrarea in restrictiile de timp impuse.
Se vor integra procesele folosind un sis
stem de operare de timp real.

8
<Ingineria programarii I>
Constrangerile de timp <Gabriela Varvara>

Respectarea acestora de catre sistem im


mplica simulari extensive si
experimentare
Implica folosirea unor strategii specifice de proiectare ( ex. Proiectarea OO nu
este adecvata aici decat in zone strict liimitate cum ar fi interfetele utilizator)
Din considerente de performanta se vor folosi caracteristicile limbajelor de
programare de nivel jos

9
<Ingineria programarii I>
Modelarea sistemelor de timp real <Gabriela Varvara>

Intr un sistem de timp real efectu


Intr-un ul unui stimul se traduce prin
declansarea tranzitiei sistemului dintr-o stare in alta

osita pentr
Masina de stari finite poate fi folo pentru modelarea
comportarii unui sistem de timp real. Aceasta, insa, nu pune in
evidenta structura sistemului

UML include notatii pentru mode elarea pe baza masinii de stari


finite (ex.
(ex model stare pentru o pompa de benzina):

10
<Ingineria programarii I>
Model de stare pentru pompa de benzina <Gabriela Varvara>
<Ingineria programarii I>
Sisteme de operare de timp real <Gabriela Varvara>

Sunt specializate in operarea sistemelor ce gestio


oneaza procesele in aplicatii de timp real.
Raspund de managementul proceselor si alocare
e de resurse (procesor si memorie)
Se p p un nucleu standard ce poate
pot baza pe p fi follosit ca atare sau modificat p p
pentru o aplicatie
particulara
De regula nu includ facilitati cum ar fi manageme
entul fisierelor
Are urmatoarele componente:
Un ceas de timp real – furnizeaza inform
matii pentru programarea proceselor
Handler de intreruperi – gestioneaza ce
ererile aperiodice de furnizare serviciu
Programator
P – alege
l urmatorull proces ce urmeaza a fi executat
Managerul de resurse – aloca memoria
a si resursele procesorului
Dispecer – porneste executia proceselo
or
Componente de sistem non-stop:
Managerul de configurare – efectueaza a reconfigurari dinamice de hardware si software.
Modulele hardware pot fi inlocuite si so
oftul actualizat fara oprirea sistemului.
Managerul de erori – detecteaza erorile
e hardware/software si efectuaeza actiuni adecvate
( ex. comutare catre discuri backup) ce
e asigura operarea continua a sistemului

12
<Ingineria programarii I>
Componentele sistemelor de operare de timp real <Gabriela Varvara>

Informaatii de programare

Ceas de Handler de intreruperi
timp real Programator

Cereri de resurse pentru


proocese

Procese in asteptarea 
resurselor Lista resurse disponibile
Managger resurse

Procese gata de executie Resurse eliberate

Procese gata de executie
Disp
pecer Lista procesoare

Procese in curs de exxecutie

13
<Ingineria programarii I>
Prioritatea unui proces <Gabriela Varvara>

Uneori, procesarea anumitor stimuli tre


ebuie realizata cu prioritate
Modaliatati de alocare a prioritatilor:
Prin nivelul intreruperii declans
sate de stimulul asociat procesului
Prin nivel ceas – va fi asociata p
proceselor periodice

In cadrul acestor prioritati se pot atribui si alte nivele de prioritate


prioritate.

14
<Ingineria programarii I>
Tratarea intreruperilor <Gabriela Varvara>

Controlul este transferat automat catre o locatie de memorie predeterminata


La acea locatie se gaseste o instructiun
ne de salt catre rutina de tratare a
intreruperii
p
Rutina de tratare a intreruperii trebuie s
sa fie scurta, simpla si rapida
Pe p p
perioada tratarii intreruperii se dezac p
ctiveaza celelalte intreruperi
Dupa tratarea intreruperii controlul este
e returnat procesului ce a fost intrerupt

15
<Ingineria programarii I>
Deservirea proceselor periodice <Gabriela Varvara>

In majoritatea sistemelor de timp real ex


xista cateva clase de procese periodice
periodice,
fiecare fiind caracterizata prin:
anumite intervale de timp
p intre executii,,
anumiti timpi de executie si
p
anumite limite temporale p
pana lla care p
procesele trebuie sa se termine
Ceasul de timp real va cauza intreruperri periodice pe care managerul de
procese le va gestiona prin activarea prroceselor periodice adecvate
Managerul de procese selecteaza proce
esul ce este in starea gata de executie

16
<Ingineria programarii I>
Managementul proceselor <Gabriela Varvara>

Are drept scop gestionarea proceselor conc


curente
Procesele periodice se executa la intervale prestabilite de timp
Un
U sistem
i t de
d operare de
d timp
ti reall foloseste
f l te ceasull de
d timp
ti reall pentru
t a determina
d t i cand
d
sa execute un proces periodic, tinand cont de:
Perioada procesului (timpul intre e
executii)
Intervalul de timp pana la care proc
cesul trebuie sa fie executat complet

Programator g
Manager  p
Dispecer
Alege procesul ressurse porneste executia
ce urmeaza a fi executat pe procesorul
Aloca memorie
m si
disponibil
pro
ocesor

17
<Ingineria programarii I>
Comutarea intre procese <Gabriela Varvara>

Programatorul alege urmatorul proces ce va fi executat de catre procesor.


Alegerea depinde de strategia adoptata
a de catre programator, ce ar putea sa
tina cont de prioritatea procesului.
Managerul de resurse aloca memorie sii cicli procesor pentru procesul ce se va
executa.
executa
Dispecerul ia procesul din lista cu proc
cese in starea “ready” il incarca pe
procesor si porneste executia

18
<Ingineria programarii I>
Strategii de programare <Gabriela Varvara>

Programarea non pre-emptiva – odata c ce un proces a fost programat pentru


executie,
executie el va rula fie pana la terminare
ea sa fie pana ce acesta va fi blocat din
anumite motive (ex. se asteapta finalizaarea unei operatii I/E)
Programarea pre-emptiva – executia un nui proces poate fi oprita daca un proces
de prioritate mai mare solicita serviciul

Algoritmi de programare:
Round-robin
Rate monotonic
Shortest deadline first, etc.

19
<Ingineria programarii I>
Sisteme de monitorizare si control <Gabriela Varvara>

Reprezinta o clasa importanta de sisteme de timp real


Realizeaza o verificare continua a senzorilo
or cu luarea unor decizii in functie de valorile
citite
Sistemele de monitorizare examineaza senzzorii si raporteaza starea lor
Sistemele de control preiau valorile senzorilor in vederea controlului actuatorilor
hardware
Arhitectura generica de monitorizare/contro
ol

20
<Ingineria programarii I>
Sistem de control a temperaturii <Gabriela Varvara>

21
<Ingineria programarii I>
Sisteme de achizitie a datelor <Gabriela Varvara>

Colecteaza date de la senzori in vederea unor procesari si analize ulterioare


Procesele de colectare a datelor si procesele de prelucra
are a informatiei pot avea perioade si limite temporale
diferite (pentru un fenomen exploziv culegerea de date e
este mult mai rapida decat procesarea).
Pentru uniformizarea diferentelor dintre timpii caracteris
stici acestor procese se folosesc mecanisme de tip buffer
circular
Arhitectura unui sistem de achizitie a datelor:

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