Sunteți pe pagina 1din 41

PROGRAMAREA APLICAŢIILOR

ÎN
TIMP-REAL

Semestrul 2, 2015-2016
Monica Drăgoicea
Departament Automatica si Ingineria Sistemelor
Organizare:

 Curs: EC 004
 Monica Dragoicea, monica.dragoicea@acse.pub.ro
 Birou: ED 207
 http://acs.curs.pub.ro/

 Laborator: ED 102

 Evaluare activitate semestru:


 Tip examinare: verificare pe parcurs
 80% activitate in timpul semestrului:
 20% colocviu final

Programarea Aplicatiilor in Timp Real 2


Organizare:

 Evaluarea activitatii pe parcurs:


 Materialele pentru laborator afisate pe site-ul de cursuri http://acs.curs.pub.ro , impreuna cu
planificarea laboratoarelor
 Evaluare activitate:
 40% nota: 2 teste verificare in timpul semestrului, la curs
 40% nota: 2 teste de verificare in timpul semestrului, la laborator
 20% nota: colocviu final
 Testele: tip grila, un singur raspuns corect
 Se va afisa un exemplu test grila pentru curs in Moodle

2015-2016 Programarea Aplicatiilor in Timp Real 3


Bibliografie:

 suport curs: Programarea Aplicatiilor


in Timp-Real, Ed. Universitara, 2009
 disponibil biblioteca facultatii

Bibliografie suplimentara:
 Atasata pe site-ul de cursuri, la cursul
respectiv

Programarea Aplicatiilor in Timp Real 4


Organizare activitate laborator:
 statii de lucru cu sistemul de operare in timp-real QNX
www.qnx.com

1. Select pentru download licenta "Non-comercial developers"


http://www.qnx.com/products/evaluation/non-commercial_developer.html

Vezi tutorial laborator – pe site Moodle

27.02.2015 Programarea Aplicatiilor in Timp Real 5


Instalare QNX: - informatii la laborator si pe site-ul de cursuri

Programarea Aplicatiilor in Timp Real 6


Ce va trebui sa cunoasteti dupa audierea acestui curs:

 ce inseamna sistem (cu procesare) in timp-real

 ce inseamna sa implementam o aplicatie pentru conducerea in timp-real a unui "proces"


 ce inseamna concurenta

 cum se dezvolta o aplicatie concurenta


 ce inseamna sistem de operare in timp-real si cum instalam o aplicatie concurenta
(multitasking) pe un astfel de sistem de operare

 exemplu: cum lucram sub QNX


 dezvoltare de cod
 depanare programe

 ! analiza performantelor sistemului

Programarea Aplicatiilor in Timp Real 7


Continutul cursului:

1) Notiuni introductive: sistem (cu procesare) in timp real si sisteme embedded in timp-real,
sisteme de operare in timp real, limbaje de programare pentru aplicatii in timp-real, programare
concurenta, definitii (proces, fir de executie, task, preemptiune);

2) Aspecte concurentiale ale aplicatiilor in timp-real - mecanisme pentru sincronizarea si


comunicarea intre taskuri (sincronizare, excludere mutuala, mesaje, etc);
3) Aspecte temporale ale aplicatiilor in timp-real – caracteristici de limbaj pentru specificarea,
implementarea si analiza deadline-urilor;
4) Mecanisme de planificare pentru aplicatii in timp-real – algoritmi de planificare, evitarea
inversiunii de prioritate.

Programarea Aplicatiilor in Timp Real 8


Continutul cursului:

paradigme de programare si constructii specifice de limbaj care

sustin aceste cerintele proiectarii si implementarii sistemelor in

timp real

Programarea Aplicatiilor in Timp Real 9


Corelarea cursului cu alte cunostinte (cursuri):

 Procesare
 sistem de operare in timp-real
 planificare activitati /taskuri, etc ... (algoritmi de planificare)
 resurse
 Comunicatie
 comunicatie in timp real, retele industriale, protocoale de comunicatie
 transfer date
 Control
 algoritmi numerici (conducere de procese) – curs IRA !
 control centralizat
 control distribuit
 Implementare hardware
 Sisteme embedded in timp-real
 Microcontrollere

Programarea Aplicatiilor in Timp Real 10


Definitii:

 timp real
 deadline
 aplicatie software in timp-real
 programare concurenta
 task
 sistem de operare in timp-real
 proces
 fire de executie
 preemptiunea taskurilor
 prioritati
 planificarea taskurilor
 mecanisme de sincronizare si comunicare
 inversiune de prioritate
 deadlock, starvation
 ...
 ...

Programarea Aplicatiilor in Timp Real 11


... industria automobile

 Mai multe procesoare conectate intr-o


retea, mai multe retele locale

 pana la 100 procesoare (8, 10 sau 32


biti)
 senzori si elemente de executie
distribuite peste tot
 multiple functii procesate de sistemele
embedded
 ABS – Antilock Breaking Systems
 ESP – Electronic Stability Control
 control airbag-uri
 cutii de viteza automate
 sisteme antifurt cu key
personalizate
 etc ...

Programarea Aplicatiilor in Timp Real 12


... telefoane mobile

Microprocesoare

 32 biti pentru U(ser) I(nterface)


 DSP pentru procesare de semnale
 32 biti pentru Bluetooth si port IR
 8-100 MB memorie
 cipuri dedicate
 consumul de energie si viata bateriei depind de software-ul instalat

Programarea Aplicatiilor in Timp Real 13


jocuri si divertisment ...

Programarea Aplicatiilor in Timp Real 14


... sau pur si simplu util zilnic

Programarea Aplicatiilor in Timp Real 15


Definitii – sistem incorporat (embedded):

 Un sistem incorporat (embedded) este un sistem in care componenta de procesare de


informatie, in particular software-ul, face parte dintr-un sistem ingineresc mai mare, si este
interfatata cu dispozitive fizice monitorizate si comandate prin software

 De fapt, este un tip special de sistem de calcul (computer system) - citeva definitii traditionale:
 un sistem embedded este proiectat pentru a executa functii dedicate
 sistemele embedded sunt mult mai limitate sub aspect al functionalitatii hardware si / sau
software decat un PC
 astazi, dispozitivele electronice din aproape orice segment de piata sunt clasificate ca si
sisteme embedded
 nu exista o definitie unica sau un mod de caracterizare globala a tuturor acestor dispozitive

Programarea Aplicatiilor in Timp Real 16


Definitii – sistem incorporat (embedded):

 orice sistem pentru care utilizatorul nu (doreste sa) stie ca include un microprocesor

 este format din hardware si software

Programarea Aplicatiilor in Timp Real 17


Exemple – sisteme incorporate (embedded):

Programarea Aplicatiilor in Timp Real 18


Caracteristici – sistem incorporat (embedded):

 Designer-ul aplicatiei software embedded trebuie sa stie cum sa comande hardware-ul


sistemului

 Limitari hardware

 sunt dedicate unei anumite aplicatii


 au performante de procesare mai reduse, trebuie sa functioneze cu consum redus de
energie, memorie disponibila limitata, etc ... din considerente de cost si dimensiune

Programarea Aplicatiilor in Timp Real 19


Caracteristici – sistem incorporat (embedded):

 Limitari software

 ruleaza mai putine aplicatii, in cele mai multe cazuri nu au sistem de operare sau utilizeaza
un sistem de operare cu facilitati limitate (microkernel sau executiv de timp-real)

 in mod traditional, sistemele embedded au fost dezvoltate in jurul unui microcontroller,


programat in limbaj de asamblare sau C cu insertii de cod in limbaj de asamblare pentru
programarea interfetelor de I/O;

 astazi, datorita complexitatii este necesar sa se utilizeze tehnici de implementare care nu


sunt asociate de obicei sistemelor embedded (de exemplu, modelare UML) limbaje de
programare orientate obiect (Java si C++), sau middleware distribuit (CORBA)

Programarea Aplicatiilor in Timp Real 20


Definitii – sistem in timp-real:

 Vorbim despre sistem in timp-real atunci cand:

 exista o interactiune continua cu mediul (sistem reactiv)


 mediul extern se schimba in "timp-real" si impune constrangeri de timp (deadline)
sistemului considerat
 sistemul controleaza (sau reactioneaza) simultan diverse (la diverse) aspecte ale mediului
(sistem concurent)

 Exemple de aplicatii in timp-real:


 monitorizare medicala
 autovehicule (e.g. control ABS, engine control)

 simulatoare de zbor
 comanda instalatiilor / proceselor chimice
 aviatie (e.g. cabin pressure control)

Programarea Aplicatiilor in Timp Real 21


Definitii – sistem in timp-real:

 Definitie Sistem in timp-real (Oxford Dictionary of Computing):


“Any system in which the time at which the output is produced is significant. This is usually because
the input corresponds to some movement in the physical world, and the output has to be related
to the same movement. The lag from input to output must be sufficiently small for acceptable
timeliness."
... sau, altfel spus:

Raspunsul unui sistem in timp


real trebuie sa indeplineasca
deadline-uri (constrangeri
de timp) impuse de mediul in
care opereaza

Programarea Aplicatiilor in Timp Real 22


Exemplu – sistem in timp-real:

Sistem de conducere in timp-real a proceselor

Programarea Aplicatiilor in Timp Real 23


Exemplu implementare – sistem in timp-real:

Sistem de conducere in timp-real a proceselor

- implementari posibile -

Sistem de conducere Sistem de conducere


centralizata distribuita
comandat de un singur computer comandat prin intermediul
sistem de operare in timp-real unui mediu de comunicatie
comunicatie in timp-real

Programarea Aplicatiilor in Timp Real 24


Exemplu – sistem in timp-real:

Sistem de conducere a unitatii de drenare a apei dintr-o mina


Sursa: Real-time systems and programming languages, A. Burns, A. Wellings, Addison Wesley, 2001

Programarea Aplicatiilor in Timp Real 25


Exemplu – sistem in timp-real (cont.):

Reprezentare schematica a interactiunii sistemului de conducere cu dispozitivele externe

Sursa: Real-time systems and programming languages, A. Burns, A. Wellings,

Addison Wesley, 2001

Programarea Aplicatiilor in Timp Real 26


Exemplu – sistem in timp-real (cont.):

 componentele unui STR – Sistem in Timp-Real

Programarea Aplicatiilor in Timp Real 27


Exemplu – sistem in timp-real (cont.):

 Organizarea unui STR

Programarea Aplicatiilor in Timp Real 28


Exemplu – sistem in timp-real (cont.):

 Organizarea unei aplicatii software de conducere in timp-real a unui proces

 Cum definim activitatile specifice ?


 Cum definim taskurile ?

Programarea Aplicatiilor in Timp Real 29


Definitii – sistem in timp-real:

sistem in timp-real

versus

sistem de timp-real

in pentru ca se refera la

procesare date / informatie in timp-real

Programarea Aplicatiilor in Timp Real 30


Caracteristici – sistem in timp-real:

 comportarea corecta a unui sistem (cu procesare) in timp-real este definita de

 corectitudinea rezultatelor (calculelor)


 momentul de timp la care este generat rezultatul procesarii datelor -> indeplinire deadline-
uri

 cel mai important criteriu de evaluare a corectitudinii in functionare este predictibilitatea – ce,
cum, cand, in cat timp se executa operatiile

 comportare determinista a programului – pentru aceeasi intrare, programul va genera aceeasi


iesire predictibila la fiecare executie ...

 ... in plus, pentru sisteme in timp-real cu deadline-uri, comportarea determinista se


analizeaza si in raport cu timpul de executie necesar

Programarea Aplicatiilor in Timp Real 31


Caracteristici – sistem in timp-real (cont.):

 sunt concurente - este o practica inginereasca proasta sa se scrie un program monolit foarte
mare care sa implementeze toate functiile sistemului
 abordare corecta: se va sparge problema intr-un numar de “actiuni” = taskuri, care vor fi
planificate apoi astfel incat sa se incheie la momentul specificat (deadline)

 este importanta functionalitatea globala a sistemului, nu cea a taskurilor care compun


sistemul (aplicatia)

 multe aplicatii in timp-real ruleaza pe procesoare simple, are sens sa se


foloseasca cel mai rapid procesor pentru a comanda functionarea unei
masini de spalat ?

Programarea Aplicatiilor in Timp Real 32


Deadline-uri pentru sisteme in timp-real:

 clasificarea sistemelor in timp-real se face in functie de deadline-uri

 dimensiunea deadline-ului depinde de mediul in care actioneaza sistemului sau de aplicatie, de


exemplu:
 predictii meteo: se masoara in ore
 sisteme interactive: se masoara in secunde
 sisteme embedded: mili- sau microsecunde

Programarea Aplicatiilor in Timp Real 33


Deadline-uri:

 deadline-urile pot fi:

 hard: trebuie indeplinite intotdeauna (e.g. aviatie, centrale nucleare, instalatii chimice,
automobile)
 ferme: raspunsul este inutil dupa trecerea deadline-ului (e.g.tranzactii intr-o baza de date)
 soft: valoarea raspunsului descreste progresiv dupa trecerea deadline-ului, sau este
posibil ca deadline-ul sa nu fie indeplinit uneori (e.g. controlul temperaturii, aplicatii
multimedia)

Programarea Aplicatiilor in Timp Real 34


Clasificare - sisteme in timp-real:

In mod corespunzator, distingem:

 Hard real - time systems: sunt sisteme care (pe linga alte caracteristici specifice) au asociate
deadline-uri hard cu cerinte stricte de a fi indeplinite

 Soft real- time systems: sisteme fara deadline-uri hard

Daca se considera ca cerinta de performanta si consecintele defectarii sistemului, putem rafina si


putem defini o clasa si mai speciala de sisteme hard real-time:

 Safety critical real-time systems: sunt acele sisteme a caror defectare poate avea efecte
dezastruoase (pierderi de vieti omenesti, pagube economice si de mediu)

Programarea Aplicatiilor in Timp Real 35


Definitii:

Observatie:

Exista tendinta de a egaliza denumirile


"sistem in timp - real" = "sistem embedded"

... dar ...

Sistem
embedded

in timp real

 caracteristici
comune specifice

Programarea Aplicatiilor in Timp Real 36


Caracteristici - sisteme incorporate in timp-real:

1) de cele mai multe ori sunt sisteme foarte complexe, mari (e.g. aplicatii in aviatie)

2) sa aiba fiabilitate foarte mare (engl. reliability)


3) sa fie extrem de sigure in functionare (e.g. echipamente medicale)
4) functionarea lor sa poata fi verificata riguros – codul sa implementeze design-ul
5) functionarea sa poata fi validata - software-ul sa indeplineasa specificatia si cerintele clientului
6) sa poata fi modificate conform mediului in care vor functiona
in functie de evolutia cerintelor si a mentenantei
in functie de modul de operare
7) sa asigure indeplinirea deadline-urilor (e.g . control vehicule)
8) sa poata comanda concurent mai multe dispozitive (e.g. conducerea proceselor)
9) de multe ori functioneaza cu restrictii (mari) de resurse (e.g. memorie, putere calcul CPU)

Programarea Aplicatiilor in Timp Real 37


Caracteristici - sisteme incorporate in timp-real:

 ultimele 3 caracteristici ...

 sa asigure indeplinirea deadline-urilor (e.g . control vehicule)


 sa poata comanda concurent mai multe dispozitive (e.g. conducerea proceselor
 de multe ori functioneaza cu restrictii (mari) de resurse (e.g. memorie, putere calcul CPU)

 ... sunt cu precadere specifice sistemelor in timp-real ...

 ... celelalte sunt, in principiu, comune oricarei aplicatii software, dar trebuie tratate cu mare
atentie in sistemele in timp-real

Programarea Aplicatiilor in Timp Real 38


Caracteristici - sisteme incorporate in timp-real:

 din aceste cerinte generale se desprind urmatoarele caracteristici in functionare ale sistemelor
in timp-real si, in particular, ale sistemelor incorporate in timp-real:

 functionare corecta
 proiectare corecta din punct de vedere ingineresc
 sa functioneze pe perioade lungi de timp fara interventie umana
 rezultate deterministe si predictibile
 indeplinirea deadline-urilor
 toleranta la defecte
 sa poata fi verificate si validate la costuri acceptabile

re-engineering ?

Programarea Aplicatiilor in Timp Real 39


Cum implementam - sisteme incorporate in timp-real:

 calculator PC + software specializat + interfete + "proces" extern

 dezvoltam aplicatia software direct pe PC si folosim


 un sistem de operare in timp-real (e.g. QNX), si un limbaj de programare cu facilitati de
timp-real (e.g. C sub QNX)

 embedded board + (eventual) sistem de operare cu facilitati minime de timp-real + "proces"


extern

 aplicatia se dezvolta pe sistemul de dezvoltare (calculator cu IDE dedicat) si se descarca


pe sistemul tinta (target)
 de exemplu, aplicatiile QNX

 exemple – pe parcursul cursului

Programarea Aplicatiilor in Timp Real 40


Definitii - timp-real:

Timp-Real ≠ Rapid

Timp-Real inseamna Just-in-Time (predictibil)

 este importanta functionalitatea globala a sistemului, nu cea a taskurilor care compun sistemul
(aplicatia)

Programarea Aplicatiilor in Timp Real 41

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