Curs 1 PATR 15-16

download Curs 1 PATR 15-16

of 41

Transcript of 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