Sunteți pe pagina 1din 59

PROGRAMAREA

APLICAIILOR
N
TIMP-REAL
Semestrul 2, 2014-2015
Monica Drgoicea
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:

27.02.2015

50% activitate in timpul semestrului:

evaluata prin teme de laborator


50% examen final
Promovarea examenului minim nota 5 la ambele componente

Programarea Aplicatiilor in Timp Real

Organizare:

Evaluarea activitatii din timpul semestrului:

Materialele pentru laborator afisate pe site-ul de cursuri http://acs.curs.pub.ro/, impreuna


cu planificarea laboratoarelor

Lista de probleme afisate pe site-ul de cursuri

In Moodle se va afisa planificarea temelor care trebuie predate

Temele inseamna probleme rezolvate conform exemplelor prezentate la curs si


laborator, care vor fi predate la laborator in saptamina planificata, si incarcate pe
Moodle pana la ora 24 in ziua planificata
Pe site va fi publicat un model pentru rezolvarea temelor

Predarea temelor la laborator inseamna:


Programul (aplicatia care implementeaza problema propusa) trebuie sa functioneze
corect, conform cerintelor specificate in text;
Studentul trebuie sa poata explica aplicatia pe care o prezinta;

Nota finala la tema se va stabili dupa ce va fi analizat materialul complet


trimis conform unei grile de punctaj. Lucrarile copiate vor fi anulate si
punctajul pierdut. Lucrarile copiate nu se pot reface.

27.02.2015

Programarea Aplicatiilor in Timp Real

Organizare:

Evaluarea cunostintelor la examenul final:

Examenul final se sustine sub forma de grila cu 10 intrebari

27.02.2015

Intrebarile sunt formulate pe baza cursului si laboratorului

O grila formata din 5 intrebari va fi afisata ca si exemplu pe site-ul de


cursuri

Durata testului (minute) 40 min.

Numar intrebari 10

Scor minim promovare - 50%

Programarea Aplicatiilor in Timp Real

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

27.02.2015

Programarea Aplicatiilor in Timp Real

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

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

27.02.2015

Programarea Aplicatiilor in Timp Real

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

27.02.2015

! analiza performantelor sistemului

Programarea Aplicatiilor in Timp Real

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

Programarea Aplicatiilor in Timp Real

Continutul cursului:

paradigme de programare si constructii specifice de limbaj care


sustin aceste cerintele proiectarii si implementarii sistemelor in
timp real

27.02.2015

Programarea Aplicatiilor in Timp Real

10

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

27.02.2015

Programarea Aplicatiilor in Timp Real

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

Programarea Aplicatiilor in Timp Real

12

... industria automobile


Mai multe procesoare conectate intr-o
retea, mai multe retele locale

27.02.2015

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

13

... 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

27.02.2015

Programarea Aplicatiilor in Timp Real

14

jocuri si divertisment ...

27.02.2015

Programarea Aplicatiilor in Timp Real

15

... sau pur si simplu util zilnic

27.02.2015

Programarea Aplicatiilor in Timp Real

16

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

27.02.2015

Programarea Aplicatiilor in Timp Real

17

Definitii sistem incorporat (embedded):

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

este format din hardware si software

27.02.2015

Programarea Aplicatiilor in Timp Real

18

Exemple sisteme incorporate (embedded):

27.02.2015

Programarea Aplicatiilor in Timp Real

19

Caracteristici sistem incorporat (embedded):

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


sistemului

Limitari hardware

27.02.2015

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

20

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)

27.02.2015

Programarea Aplicatiilor in Timp Real

21

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)

27.02.2015

Programarea Aplicatiilor in Timp Real

22

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

27.02.2015

Programarea Aplicatiilor in Timp Real

23

Exemplu sistem in timp-real:


Sistem de conducere in timp-real a proceselor

27.02.2015

Programarea Aplicatiilor in Timp Real

24

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

27.02.2015

Programarea Aplicatiilor in Timp Real

25

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
27.02.2015

Programarea Aplicatiilor in Timp Real

26

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
27.02.2015

Programarea Aplicatiilor in Timp Real

27

Exemplu sistem in timp-real (cont.):

componentele unui STR Sistem in Timp-Real

27.02.2015

Programarea Aplicatiilor in Timp Real

28

Exemplu sistem in timp-real (cont.):

Organizarea unui STR

27.02.2015

Programarea Aplicatiilor in Timp Real

29

Exemplu sistem in timp-real (cont.):

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

Cum definim activitatile specifice ?

27.02.2015

Programarea Aplicatiilor in Timp Real

Cum definim taskurile ?

30

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

27.02.2015

Programarea Aplicatiilor in Timp Real

31

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 deadlineuri

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

... 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

32

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)

27.02.2015

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

33

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

27.02.2015

Programarea Aplicatiilor in Timp Real

34

Deadline-uri:

deadline-urile pot fi:

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)

Programarea Aplicatiilor in Timp Real

35

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)

27.02.2015

Programarea Aplicatiilor in Timp Real

36

Definitii:
Observatie:
Exista tendinta de a egaliza denumirile
"sistem in timp - real" = "sistem embedded"

... dar ...


Sistem
embedded
in timp real
caracteristici
comune specifice

27.02.2015

Programarea Aplicatiilor in Timp Real

37

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)

27.02.2015

Programarea Aplicatiilor in Timp Real

38

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

27.02.2015

Programarea Aplicatiilor in Timp Real

39

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 ?

27.02.2015

Programarea Aplicatiilor in Timp Real

40

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

27.02.2015

Programarea Aplicatiilor in Timp Real

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

Programarea Aplicatiilor in Timp Real

42

Definitii - deadline:

sistemele in timp-real "raspund" la evenimente externe

e.g. sistemul de control al airbag-ului trebuie sa raspunda intr-un anumit interval de timp in
cazul producerii unui accident

acest interval poarta denumirea de deadline

unele deadline-uri sunt soft, altele hard, de aici si clasificarea sistemelor in timp-real

27.02.2015

Programarea Aplicatiilor in Timp Real

43

Definitii aplicatie software in timp - real:

ruleaza intr-un sistem in timp-real

este compusa din mai multe actiuni care se executa concurent

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

Programarea Aplicatiilor in Timp Real

44

Definitii procesare concurenta a informatiilor:


3 aspecte

multiprogramarea (managementul mai multor


procese sau fire de executie intr-un sistem uniprocesor)
executie cvasiparalela pe principiul
diviziunii timpului = alocarea procesorului
in felii de timp (e.g. time slice)

multiprocesarea (managementul mai


multor procese sau fire de executie intr-un
sistem multi-procesor)
este posibila executia paralela
reala a actiunilor alocate taskurilor

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

Programarea Aplicatiilor in Timp Real

45

Definitii programare concurenta:

programarea paralela (concurenta) reprezinta activitatea de scriere a unui program / aplicatie


software care contine o serie de parti necesar a se afla in executie in acelasi moment

aceste operatii paralele / concurente reprezinta etape de executie asincrona in cadrul


aplicatiei

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)

Programarea Aplicatiilor in Timp Real

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

Programarea Aplicatiilor in Timp Real

47

Definitii task si procesare multitasking:

termenul multitasking este folosit in 2 contexte:

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

Programarea Aplicatiilor in Timp Real

48

Exemplu aplicatie multitasking:


Pas 1. Definire problema

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:

un b se scrie intotdeauna inaintea unui c;

b si c trebuie sa alterneze in sir;

27.02.2015

numarul de b-uri si c-uri scrise la un moment, dar nu trebuie sa depaseasca numarul de


a-uri.

Programarea Aplicatiilor in Timp Real

49

Exemplu aplicatie multitasking (cont.):


Pas 2. Analiza problema
Secvente posibile:

aabcaaabc

aaaabcbc

ab
Secvente imposibile

aacb nu indeplineste conditia 1

abacac - nu indeplineste conditia 2

aabcabc - nu indeplineste conditia 3

27.02.2015

Programarea Aplicatiilor in Timp Real

50

Exemplu aplicatie multitasking (cont.):


Pas 3. Definirea taskurilor care compun aplicatia

task de tip A (tipareste litera a)

task de tip B (tipareste litera b)

task de tip C (tipareste litera c)

27.02.2015

Programarea Aplicatiilor in Timp Real

51

Exemplu aplicatie multitasking (cont.):


Pas 4. Solutie de implementare

aleg mecanismele de sincronizare si comunicare intre taskuri

27.02.2015

aleg 2 semafoare binare, cu val. initiale SemB = 0, SemC = 1


aleg 1 semafor general, cu val. initiala 0, Sum = 0

Programarea Aplicatiilor in Timp Real

52

Exemplu aplicatie multitasking (cont.):


Pas 5. Scriere cod program

Detalii de implementare in functie de limbaj

27.02.2015

in Java nu exista semafoare in limbaj, trebuie definite software


in C sub QNX exista semafoare generalizate si mutex-uri (corespunzator semafoarelor
binare pentru sincronizarea firelor de executie)

Programarea Aplicatiilor in Timp Real

53

Exemplu aplicatie multitasking (cont.):

implementare Task 1

class Taskul_1 extends ABCs implements Runnable {


public void run () {
while (true) { nap(1+(int)(random(500)));
System.out.print("A"); System.out.flush();
V(sum);
}
}
}

27.02.2015

Programarea Aplicatiilor in Timp Real

54

Exemplu aplicatie multitasking (cont.):

implementare Task 2

class Taskul_2 extends ABCs implements Runnable {


public void run () {
while (true) { nap(1+(int)(random(800)));
P(C); P(sum);
System.out.print("B"); System.out.flush();
V(B);
}
}
}

27.02.2015

Programarea Aplicatiilor in Timp Real

55

Exemplu aplicatie multitasking (cont.):

implementare Task 3

class Taskul_3 extends ABCs implements Runnable {


public void run () {
while (true) { nap(1+(int)(random(800)));
P(B); P(sum);
System.out.print("C"); System.out.flush();
V(C);
}
}
}

27.02.2015

Programarea Aplicatiilor in Timp Real

56

Exemplu aplicatie multitasking (cont.):

implementare Task monitorizare

class ABCs extends Obiect {


protected static final SemBin B = new SemBin(0);
protected static final SemBin C = new SemBin(1);
protected static final SemGen sum = new SemGen(0);
public static void main(String[] args) {
Thread Taskul_1 = new Thread(new Taskul_1());
Thread Taskul_2 = new Thread(new Taskul_2());
Thread Taskul_3 = new Thread(new Taskul_3());
Taskul_1.start();
Taskul_2.start();
Taskul_3.start();
nap(9000);
Taskul_1.stop();
Taskul_2.stop();
Taskul_3.stop();

27.02.2015

System.out.println();
System.out.println("B=" + B + ", C=" + C + ", sum=" + sum);
System.exit(0);
Programarea Aplicatiilor in Timp Real

57

Exemplu aplicatie multitasking (cont.):


Pas 6. Validare rezultate

Se executa programul. Face ceea ce s-a specificat la pasul 1, in cerinte?

27.02.2015

Programarea Aplicatiilor in Timp Real

58

Elemente pentru dezvoltarea unei aplicatii in timp-real:

alegerea arhitecturii hardware si analiza detaliilor de implementare

alegerea unei metode de proiectare a aplicatiei software

alegerea componentelor software in functie de hardware si performante sistem de operare ?

alegerea limbajului de programare: secvential (C), concurent (Java, Ada)

design, implementare, testare

27.02.2015

Programarea Aplicatiilor in Timp Real

59

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