Download - Curs 1 PATR 15-16
-
8/19/2019 Curs 1 PATR 15-16
1/41
PROGRAMAREA APLICAŢIILOR ÎNTIMP-REAL
Semestrul 2, 2015-2016
Monica Drăgoicea
Departament Automatica si Ingineria Sistemelor
-
8/19/2019 Curs 1 PATR 15-16
2/41
Organizare:
Curs: EC 004
Monica Dragoicea, [email protected]
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
-
8/19/2019 Curs 1 PATR 15-16
3/41
Evaluarea activitatii pe parcurs:
Materialele pentru laborator afisate pe site-ul de cursuri http://acs.curs.pub.ro , impreuna cuplanificarea 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
Organizare:
2015-2016 Programarea Aplicatiilor in Timp Real 3
-
8/19/2019 Curs 1 PATR 15-16
4/41
Bibliografie:
suport curs: Programarea Ap l icati i lorin Timp -Real , Ed. Universitara, 2009
disponibil biblioteca facultatii
Bibliografie suplimentara:
Atasata pe site-ul de cursuri, la cursulrespectiv
Programarea Aplicatiilor in Timp Real 4
-
8/19/2019 Curs 1 PATR 15-16
5/41
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
-
8/19/2019 Curs 1 PATR 15-16
6/41
Instalare QNX: - informatii la laborator si pe site-ul de cursuri
Programarea Aplicatiilor in Timp Real 6
-
8/19/2019 Curs 1 PATR 15-16
7/41
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
-
8/19/2019 Curs 1 PATR 15-16
8/41
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, programareconcurenta, definitii (proces, fir de executie, task, preemptiune);
2) Aspecte concurentiale ale aplicatiilor in timp-real - mecanisme pentru sincronizarea sicomunicarea 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, evitareainversiunii de prioritate.
Programarea Aplicatiilor in Timp Real 8
-
8/19/2019 Curs 1 PATR 15-16
9/41
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
-
8/19/2019 Curs 1 PATR 15-16
10/41
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
-
8/19/2019 Curs 1 PATR 15-16
11/41
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
-
8/19/2019 Curs 1 PATR 15-16
12/41
... industria automobile
Mai multe procesoare conectate intr-oretea, mai multe retele locale
pana la 100 procesoare (8, 10 sau 32biti)
senzori si elemente de executiedistribuite peste tot
multiple functii procesate de sistemeleembedded
ABS – Antilock Breaking Systems
ESP – Electronic Stability Control
control airbag-uri
cutii de viteza automate
sisteme antifurt cu keypersonalizate
etc ...
Programarea Aplicatiilor in Timp Real 12
-
8/19/2019 Curs 1 PATR 15-16
13/41
... 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
-
8/19/2019 Curs 1 PATR 15-16
14/41
jocuri si divertisment ...
Programarea Aplicatiilor in Timp Real 14
-
8/19/2019 Curs 1 PATR 15-16
15/41
... sau pur si simplu util zilnic
Programarea Aplicatiilor in Timp Real 15
-
8/19/2019 Curs 1 PATR 15-16
16/41
Definitii – sistem incorporat (embedded ):
Un sistem incorporat (embedded ) este un sistem in care componenta de procesare deinformatie, in particular software-ul, face parte dintr-un sistem ingineresc mai mare, si esteinterfatata 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 sisisteme embedded
nu exista o definitie unica sau un mod de caracterizare globala a tuturor acestor dispozitive
Programarea Aplicatiilor in Timp Real 16
-
8/19/2019 Curs 1 PATR 15-16
17/41
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
-
8/19/2019 Curs 1 PATR 15-16
18/41
Exemple – sisteme incorporate (embedded ):
Programarea Aplicatiilor in Timp Real 18
-
8/19/2019 Curs 1 PATR 15-16
19/41
Caracteristici – sistem incorporat (embedded ):
Designer-ul aplicatiei software embedded trebuie sa stie cum sa comande hardware-ulsistemului
Limitari hardware
sunt dedicate unei anumite aplicatii
au performante de procesare mai reduse, trebuie sa functioneze cu consum redus deenergie, memorie disponibila limitata, etc ... din considerente de cost si dimensiune
Programarea Aplicatiilor in Timp Real 19
-
8/19/2019 Curs 1 PATR 15-16
20/41
Caracteristici – sistem incorporat (embedded ):
Limitari software
ruleaza mai putine aplicatii, in cele mai multe cazuri nu au sistem de operare sau utilizeazaun 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 nusunt asociate de obicei sistemelor embedded (de exemplu, modelare UML) limbaje deprogramare orientate obiect (Java si C++), sau middleware distribuit (CORBA)
Programarea Aplicatiilor in Timp Real 20
-
8/19/2019 Curs 1 PATR 15-16
21/41
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(s is tem 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
-
8/19/2019 Curs 1 PATR 15-16
22/41
Definitii – sistem in timp-real:
Definit ie Sistem in t im p-real (Oxford Dict ionary of Comp ut ing):
“Any system in which the time at which the output is produced is significant. This is usually becausethe input corresponds to some movement in the physical world, and the output has to be relatedto the same movement. The lag from input to output must be sufficiently small for acceptabletimeliness."
... 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
-
8/19/2019 Curs 1 PATR 15-16
23/41
Exemplu – sistem in timp-real:
Sistem de conducere in timp-real a proceselor
Programarea Aplicatiilor in Timp Real 23
-
8/19/2019 Curs 1 PATR 15-16
24/41
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
-
8/19/2019 Curs 1 PATR 15-16
25/41
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
-
8/19/2019 Curs 1 PATR 15-16
26/41
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
-
8/19/2019 Curs 1 PATR 15-16
27/41
Exemplu – sistem in timp-real (cont.):
componentele unui STR – Sistem in Timp-Real
Programarea Aplicatiilor in Timp Real 27
-
8/19/2019 Curs 1 PATR 15-16
28/41
Exemplu – sistem in timp-real (cont.):
Organizarea unui STR
Programarea Aplicatiilor in Timp Real 28
-
8/19/2019 Curs 1 PATR 15-16
29/41
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
-
8/19/2019 Curs 1 PATR 15-16
30/41
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
-
8/19/2019 Curs 1 PATR 15-16
31/41
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 aceeasiiesire 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
-
8/19/2019 Curs 1 PATR 15-16
32/41
Caracteristici – sistem in timp-real (cont.):
sunt concurente - este o practica inginereasca proasta sa se scrie un program monolit foartemare care sa implementeze toate functiile sistemului
abordare corecta: se va sparge problema intr-un numar de “actiuni” = taskuri, care vor fiplanificate apoi astfel incat sa se incheie la momentul specificat (deadline)
este importanta functionalitatea globala a sistemului, nu cea a taskurilor care compunsistemul (aplicatia)
multe aplicatii in timp-real ruleaza pe procesoare simple, are sens sa sefoloseasca cel mai rapid procesor pentru a comanda functionarea uneimasini de spalat ?
Programarea Aplicatiilor in Timp Real 32
-
8/19/2019 Curs 1 PATR 15-16
33/41
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, deexemplu:
predictii meteo: se masoara in ore
sisteme interactive: se masoara in secunde
sisteme embedded: mili- sau microsecunde
Programarea Aplicatiilor in Timp Real 33
-
8/19/2019 Curs 1 PATR 15-16
34/41
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 esteposibil ca deadline-ul sa nu fie indeplinit uneori (e.g. controlul temperaturii, aplicatiimultimedia)
Programarea Aplicatiilor in Timp Real 34
-
8/19/2019 Curs 1 PATR 15-16
35/41
Clasificare - sisteme in timp-real:
In mod corespunzator, distingem:
Hard real - time systems: sunt sisteme care (pe linga alte caracteristici specifice) au asociatedeadline-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 siputem defini o clasa si mai speciala de sisteme hard real-time:
Safety critical real-time systems: sunt acele sisteme a caror defectare poate avea efectedezastruoase (pierderi de vieti omenesti, pagube economice si de mediu)
Programarea Aplicatiilor in Timp Real 35
-
8/19/2019 Curs 1 PATR 15-16
36/41
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
-
8/19/2019 Curs 1 PATR 15-16
37/41
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
-
8/19/2019 Curs 1 PATR 15-16
38/41
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 mareatentie in sistemele in timp-real
Programarea Aplicatiilor in Timp Real 38
-
8/19/2019 Curs 1 PATR 15-16
39/41
Caracteristici - sisteme incorporate in timp-real:
din aceste cerinte generale se desprind urmatoarele caracteristici in functionare ale sistemelorin 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
-
8/19/2019 Curs 1 PATR 15-16
40/41
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 detimp-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 descarcape sistemul tinta (target)
de exemplu, aplicatiile QNX
exemple – pe parcursul cursului
Programarea Aplicatiilor in Timp Real 40
-
8/19/2019 Curs 1 PATR 15-16
41/41
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