Documente Academic
Documente Profesional
Documente Cultură
APLICAIILOR
N
TIMP-REAL
Semestrul 2, 2014-2015
Monica Drgoicea
Departament Automatica si Ingineria Sistemelor
Organizare:
Curs: EC 004
http://acs.curs.pub.ro/
Laborator: ED 102
27.02.2015
Organizare:
27.02.2015
Organizare:
27.02.2015
Numar intrebari 10
Bibliografie:
Bibliografie suplimentara:
27.02.2015
27.02.2015
27.02.2015
ce inseamna concurenta
27.02.2015
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.
27.02.2015
Continutul cursului:
27.02.2015
10
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
27.02.2015
11
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
...
...
27.02.2015
12
27.02.2015
control airbag-uri
etc ...
13
27.02.2015
14
27.02.2015
15
27.02.2015
16
De fapt, este un tip special de sistem de calcul (computer system) - citeva definitii traditionale:
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
27.02.2015
17
orice sistem pentru care utilizatorul nu (doreste sa) stie ca include un microprocesor
27.02.2015
18
27.02.2015
19
Limitari hardware
27.02.2015
20
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)
27.02.2015
21
sistemul controleaza (sau reactioneaza) simultan diverse (la diverse) aspecte ale mediului
(sistem concurent)
simulatoare de zbor
27.02.2015
22
27.02.2015
23
27.02.2015
24
Sistem de conducere
Sistem de conducere
centralizata
distribuita
27.02.2015
25
26
27
27.02.2015
28
27.02.2015
29
27.02.2015
30
versus
sistem de timp-real
in pentru ca se refera la
procesare date / informatie in timp-real
27.02.2015
31
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 ...
27.02.2015
32
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)
27.02.2015
33
27.02.2015
34
Deadline-uri:
27.02.2015
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)
35
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
Safety critical real-time systems: sunt acele sisteme a caror defectare poate avea efecte
dezastruoase (pierderi de vieti omenesti, pagube economice si de mediu)
27.02.2015
36
Definitii:
Observatie:
Exista tendinta de a egaliza denumirile
"sistem in timp - real" = "sistem embedded"
27.02.2015
37
27.02.2015
38
27.02.2015
39
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
indeplinirea deadline-urilor
toleranta la defecte
27.02.2015
40
27.02.2015
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)
27.02.2015
42
Definitii - deadline:
e.g. sistemul de control al airbag-ului trebuie sa raspunda intr-un anumit interval de timp in
cazul producerii unui accident
unele deadline-uri sunt soft, altele hard, de aici si clasificarea sistemelor in timp-real
27.02.2015
43
apar probleme specifice atunci cand intre actiunile care se executa concurent (in paralel) apar
interactiuni
interactiunile posibile intre actiuni pot fi de mai multe tipuri si pot fi exprimate prin operatii
specifice procesarii concurente
27.02.2015
44
procesarea distribuita (managementul mai multor procese care se executa pe mai multe
calculatoare conectate intr-o retea, care pot avea sisteme de fisiere diferite sau arhitecturi
hardware diferite, e.g. Internet-ul)
27.02.2015
45
partile componente ale aplicatiei software (programului), care vor fi executate in paralel, poarta
denumirea de taskuri
27.02.2015
se sparge problema intr-un numar de actiuni = taskuri, care vor fi planificate apoi astfel
incat sa se incheie la momentul specificat (deadline)
46
Definitii - task:
taskul este cea mai mica unitate de prelucrare a informatiei careia i se atribuie o identitate,
reprezentand un program in forma executabila compus dintr-o succesiune de instructiuni
executate secvential
doua taskuri sunt paralele (concurente) daca prima instructiune a unui task incepe sa se
execute inainte ca ultima instructiune a celuilalt task sa fie completata;
doua sau mai multe taskuri se numesc disjuncte (independente) daca nu schimba
informatii intre ele sau daca nu utilizeaza resurse (zone de memorie, dispozitive periferice)
in comun. In caz contrar, taskurile interactioneaza.
semnalul de control care initiaza executia task-ului este furnizat de catre sistemul de operare
prin intermediul planificatorului de taskuri
27.02.2015
47
intr-un sistem multi-user = un calculator care permite ca mai multi utilizatori sa lucreze
simultan, de la terminale diferite. Fiecare utilizator isi poate rula propriul program
independent de ceilalti si programele de aplicatie nu interactioneaza intre ele;
intr-o aplicatie multitasking - mai multe programe (taskuri) lucreaza impreuna pentru a
implementa global o anumita functionalitate
27.02.2015
48
Sa se implementeze o aplicatie formata din 3 taskuri de tip A (tipareste litera a), B (tipareste
litera b) si C (tiparesc litera c).
Conditiile de tiparire sunt urmatoarele:
27.02.2015
49
aabcaaabc
aaaabcbc
ab
Secvente imposibile
27.02.2015
50
27.02.2015
51
27.02.2015
52
27.02.2015
53
implementare Task 1
27.02.2015
54
implementare Task 2
27.02.2015
55
implementare Task 3
27.02.2015
56
27.02.2015
System.out.println();
System.out.println("B=" + B + ", C=" + C + ", sum=" + sum);
System.exit(0);
Programarea Aplicatiilor in Timp Real
57
27.02.2015
58
27.02.2015
59