of 35 /35
I. Noţiuni introductive privind aplicaţiile multi-tasking de timp real Sistem numeric: = hardware (resurse) + sistem de operare + aplicaţie utilizator (rutine/metode) Sistem de timp real - un sistem care trebuie să răspundă unor restricţii de timp (RT) prestabilite RT – cheia funcţionalităţilor dorite Ex: control proces, identificare online Aplicatie de timp real Aplicaţie cu timp de execuţie mic

Curs cu pir despre un curs care este curs

Embed Size (px)

DESCRIPTION

acesta este un curs acest curs a fost pus aici pt a trage alt curs. multumim pt intelegere. la cererea voastra cursul poate fi dat jos bineinteles, doar nu l-am pus din scopuri bla bla bla kjlksj lkdjlkj skdkls klsj lks lsh jksh skj hjskl jsl jksjksjl

Text of Curs cu pir despre un curs care este curs

  • I. Noiuni introductive privind aplicaiile multi-tasking de timp real

    Sistem numeric: = hardware (resurse) + sistem de operare + aplicaie utilizator (rutine/metode)

    Sistem de timp real - un sistem care trebuie s rspund unor restricii de timp (RT) prestabilite

    RT cheia funcionalitilor dorite

    Ex: control proces, identificare online

    Aplicatie de timp real Aplicaie cu timp de execuie mic

  • - [timp] conteaz momentele de timp la care rezultatele sunt obinute!!

    - [real] rspuns la evenimentele externe pe msur ce acestea apar

    Exemple

    Control

    Monitorizare + alerte/decizii

  • Sistem de timp real

    o Hardware -ul asigura rspuns rapid la evenimente externe, sincronizare temporal, siguran

    o Aplicaia dezvoltat multitasking [procese modulare, cu prioriti diferite] + ISRuri

    o Sistemul de operare ofer anumite faciliti suplimentare accent pe rspuns rapid la evenimente externe, partajare resurse, executie multitasking (comutare de la un task la altul + planificare & alocare)

  • resurse

    o active: procesoare asigura execuia instruciunilor

    o pasive: periferice (DA, AD, PWM, numaratoare), linii de comunicatie, locatii memorie (variabile)

    +

    procese care lupta pentru ocuparea resurselor (implementate de programator)

    o Task = proces care implementeaza o anumita facilitate a aplicatiei

    o ISR = proces prin care se raspunde unei cereri de intreruperi lansata de un dispozitiv periferic

    +

    sistemul de operare de timp real asigura servicii pentru execuia proceselor i ocupare/eliberarea resurselor in sensul respectrii restrictiilor de timp

  • procesele trebuie s coopereze pentru a produce rezultate

    procesele lupta pentru ocuparea resurselor: algoritmi de planificare si alocare

    procesele ocupa pentru executie: - o resursa activa (procesor, server) cel putin - eventual anumite resurse pasive (memorie, etc)

    O resursa poate fi ocupata de un singur proces la un moment dat (acces exclusiv)

    Cedarea resursei unui alt proces mai prioritar: o resurse active - prin preemtare (unui alt task) sau

    intrerupere (unui ISR); o resurse pasive: acces preemtiv

  • Proces zona de memorie proprie pentru

    - cod executat - date folosite

    + - stare procesor (resursa activa): registri

    Fir (thread engl.) fara zona proprie de memorie

    Procese create dinamic/static

  • Diferente principale sistem timp real alte sisteme numerice

    Sistem timp real

    Alte sisteme numerice

    Planificare Planificarea taskurilor in sensul respectarii restrictiilor de timp

    Folosirea corect i eficient a resurselor

    Timp de rspuns Incalcarea unui deadline rezultatul nu este doar ntrziat, ci i greit

    timpii de rspuns s asigure respectarea restriciilor de timp pentru cazul cel mai nefavorabil

    Timpi de raspuns ct mai buni

    Suprancrcare Respectarea restriciilor de timp importante

    Comportare acceptabil

    [The Concise Handbookof Real-Time Systems, www.timesys.com]

  • T2 T1 T1T2 T2 T2T3 T3

    while(1){ if() operatii task 1 if() operatii task 2 etc }

    Motontasking

    while(1){

    }

    Multitasking

    ISR

    Task1

    ISR

    Task2 Task3

    Avantaje abordare multitasking: - Extensie simpla adaugare taskuri - Prioritati diferite - Temporizari & restrictii de timp mai

    flexibil de gestionat, independent pentru fiecare task

  • Executia multitasking solicit:

    Task1 .

    .

    .

    .

    Task 2

    ..

    SOTR

    Programator (+ servicii SOTR)

    Continuarea executiei procesului cu urmatoarea instructiune + gestionare corect a stivei/memoriei

    Logica nealterat, consistena date, sincronizare, etc.

    SOTR asigur comutarea corect de la un proces la altul (comutarea contextelor)

    Context task = coninut regitri procesor + adres de nceput task + stare task +adresa stivei iniiale + var. specifice ale SOTR

    Orice proces trebuie executat consistent, indiferent ce comutri ntre procese au loc

  • Din perspectiva programarii: Multitasking + folosire ISR

    Pot exista sectiuni critice:

    acces concurent la IO, variabile de memorie globale

    alte succesiuni de instructiuni ce trebuie nu trebuie fragmentate

    Poate exista secvente reentrante acelai cod executat pe instante diferite

    Din perspectiva dezvoltarii unui RTOS: RTOS - mod privilegiat

  • Faciliti uzuale oferite de un SOTR:

    asigur execuie multitasking: o creare-stergere taskuri o gestionare taskuri pe stri multiple o comutare ntre taskuri o arbitrare taskuri

    comunicare ntre taskuri

    partajare resurse pasive

    monitorizare executie

    +

    respectare restricii de timp arbitrare n sensul respectrii RT pe baz de prioriti

  • Tipuri RTOS in funcie de facilitaile oferite:

    planificare (scheduling) + control execuie (dispatcher)

    comunicare intertask + sincornizare

    acces protejat la memorie, servicii I/0

    fisiere, securitate, interfata utilizator

    microkernel

    kernel

    executiv

  • Clasificare RTOS/ n funcie de interfaarea cu aplicaia utilizator

    - monolitic o RTOS lucreaza in mod privilegiat, iar aplicatiile lucreaza in mod

    utilizator folosind apeluri la RTOS bazate pe trap o Executia aplicatiei in mod supervizor prin linkeditare cu RTOS

    (apel sistem apel functie)

    - stratificat o RTOS organizate pe module organizate ierahic

    Permite update simplu a unui modul Scalabilitate, portabilitate crescute

  • - bazat pe OS servere o Kernel minimal:

    asigura comunicare securizata si operatii sistem critce (accesare registri IO)

    functii ale RTOS sunt mutate in procese de tip OS server ce ruleaza in mod utilizator si comunica prin mesaje.

    o modularitate, extensie fireasca catre sisteme distribuite o eroare la un server SO nu devine fatala

    Probleme: o Consum resurse pe comunicare o Dificultati in gestionarea comunicarii o Tratarea ISR - cereri transmise prin mesaje si

    tratate in mod user prin interrupt service task (implica comutari de context intre taskuri)

  • Ocuparea resurselor active/pasive este tratat distinct de SOTR:

    i). Ocuparea resurselor active (procesoare):

    Caz multiprocesor planificare si alocare >> procese concurente CAND (planificare) i UNDE (alocare) se execut taskurile (procesoarele vor comunica prin mesaje sau zone partajate de memorie) Caz nedetaliat n curs!!!!!!

    Caz monoprocesor - planificare: CAND se execut taskurile

    o pentru taskuri exista un arbitru care decide ce task preia procesorul: planificatorul (componenta a SOTR);

    o pentru ISR arbitrul este de obicei un controller hard, nu o componenta a SOTR.

  • ii). Ocuparea resurselor pasive:

    Resurse pasive = zone de memorie, dispozitive periferice, etc

    Resursele sunt partajabile intre procese!!!!

    o Un proces care ocupa resursa trebuie s i poat finaliza n timp finit operaiile, fr a pierde consistena datelor

    o Un proces mai puin prioritar nu trebuie s ntrzie un alt proces mai prioritar la primirea resursei (inversare de prioritate)

    o Procesele nu trebuie s se blocheze n ateptarea resurselor (deadlock)

    Proces 1

    ..............

    Setez mod de lucru 1 Folosesc resursa pe mod 1 ........................

    Proces 2

    ..............

    Setez mod de lucru 2 Folosesc resursa pe mod 2 ........................

  • I.1. Detalii despre ocuparea resurselor active in SOTR

    I. 1. 1. Clasificare taskuri

    1) dup mod activare

    o periodice, deterministe activate cu regularitate la fiecare activare: citesc stare sistem, execut calcule, trimit comenzi

    de afiare-modificare stare sistem Ex: aviaie - ajustarea poziiei supapei rezervorului de combustibil n funcie de puterea solicitat; automobilism verificare blocare roi; achiziie date; control periodic; refresh DRAM.

    o aperiodice activate cnd anumite evenimente au loc pot fi critice (cu deadline ferm - sporadice) sau obinuite (fr

    deadline ferm - aperiodice) Ex: reconfigurarea sistemului de control atunci cnd anumite anomalii sunt detectate; operaii de ntreinere; nregistrare de evenimente.

  • 2) dup importan o critice hard deadline - uzual : periodice o eseniale deadline ferm, important o neeseniale deadline-ul poate fi nclcat fr efecte imediate

    (software deadline)

    necesitate considerare prioriti pentru taskuri

  • I. 1. 2. Starile posibile ale unui task

    in asteptare (waiting)

    Se termina de executat

    in curs de executie (running)

    Evenimentul asteptat a avut loc

    pregatita pentru executie (ready)

    Cere asteptarea unui eveniment

    suspendata

    activata

    Primeste procesorul

    (start)

    Pierde procesorul

    (preempt)

    Pot exista diferente intre SOTR cu privire la modul de trecere del a o stare la alta sau denumirea strii

  • I. 1. 3. Moduri execuie a taskurilor

    o preemtiv

    un proces poate ceda procesorul altui proces atunci cand planificatorul decide acest lucru, fr a i se cere acordul:

    in executie ready

    T1

    in executie

    suspendat in executie

    suspendat

    activare T1 Terminare T1

    T2

    v

    in executie ready

    T1

    in executie

    suspendat in executie

    suspendat

    activare T1 Terminare T1

    T2

    v

  • o nepreemtiv

    un proces nu cedeaz procesorul altui proces activ, fr acordul su

    in executie

    T1

    suspendat

    suspendat ready

    in executie

    activare T1

    Terminare T2

    T2

    v

    >> pot fi admise moduri mixte: unele procese preemtive, altele nepreemtive

  • Un proces caracterizat in SOTR prin:

    o ID

    o Stare

    o Resurse ocupate

    - pentru control executie

  • 1. 4. Planificator

    Planificatorul (scheduler) monitorizeaz coada de taskuri ready i stabilete ce task trece executie.

    Elemente ce definesc planificatorul:

    o cand se activeaz planificatorul (cnd poate decide comutarea)

    clock driven [periodic] planificatorul se activeaz periodic (o perioad = frame) + procesul in executie cere acces la planificator, se termina sau intra in asteptare

    event driven [bazat pe evenimente] planificatorul se activeaz cand apare un eveniment ce modific coada ready + procesul in executie cere acces la planificator, se termina sau intra in asteptare

  • in executie ready

    T1

    in executie

    suspendat in executie

    suspendat

    activare T1 Terminare T1

    T2

    v

    in executie ready

    T1

    in executie

    suspendat in executie

    suspendat

    activare T1 Terminare T1

    T2

    v

    cadru (frame)

    mod preemptiv!!!!

  • o algoritmul de planificare cum alege taskul ctigtor:

    uzual pe baz de prioritate

    prioritile pot fi statice (un task are aceeai priroitate pe durata execuiei aplicaiei) sau dinamice (un task i modific prioritatea)

    la multe SOTR: statice (stabilite de designer)

  • I. 1. 5. Execuia ISR

    Atentie: ISR nu sunt supervizate de planificator!

    Cererile nu sunt stocate in coada ready gestionate de controllerul de intreruperi

    Uzual ISR sunt gestionate pe nivele de prioritate superioare: un ISR intrerupe orice task daca IF permite

    +

    modifcare IF disable/enable un ISR poate intrerupe un ISR mai putin prioritar daca IF permite

  • I. 2 Restriciile de timp definiii utile

    Restricia de timp - cerina de a executa o operaie dup ce sunt ndeplinite anumite condiii i nainte de un termen prestabilit

    ),,,,( deadlineIexecreleased tpttI d

    cu releaseexec ttt < deadline ,

    p perioada de activare a proceselor periodice Id identificator task

  • procesi

    ei

    (executie)

    Di

    (deadline relativ)

    Taski li rezerva

    (laxity, slack)

    di termen limita

    (deadline absolut)

    ri

    activare (release)

    timp

    interval in care procesul trebuie sa se execute

    (occurance interval, feasible interval)

    Taski

    intarziere (tardeness)

  • Timpul de activare ri poate incorpora i restricii de precedena (procesul se poate executa doar dac alte procese s-au executat)

    Timpul de executie ei este calculat pentru un proces care se executa fara a fi intrerupt-preemtat, avand toate resursele necesare disponibile si toate restrictiile de precedenta indeplinite

    Depinde de viteza resurselor active Nu depinde de secventa de executie a taskurilor Poate fi diferit daca exista instructiuni conditionale,

    daca se foloseste memorie cash ],[ + iii eee >> se va considera in analiza +ie

  • Obs: In aplicatiile de timp real exista multe procese periodice Aplicaii on-line:
  • Timp = resursa STR corectitudine n funcionarea STR

    Alte restricii ce trebuie ndeplinite: Performane impuse pentru anumite operaii Fiabilitate STR Restricii privind accesul la resursele comune limitate i partajabile:

    procesoare, dispozitive IO, baze date, resurse reea comunicaie

    De multe ori SOTR ofer doar ajutor in gestionarea resurselor active/pasive conform prioritatilor proceselor

    Respectarea restriciilor ramne in sarcina designer ului!!!!

  • Respectarea restrictiilor de timp se verifica pe cazul cel mai nefavorabil

    Acesta este greu de gasit la sisteme cu multe procese, principalele dificulti fiind: determinarea +ie , ri, lucru cu procese aperiodice sau sporadice, intrzieri, situaii neprevzute

    Cerin: respectarea predictibil a restriciilor de timp (importante)

  • Plan = secventa/ordinea in care se vor executa taskurile

    Plan valid (corect) asigura respectarea conditiilor:

    Un procesor are asignat un singur job la un moment dat

    Un proces este asignat maxim unui singur procesor la un moment dat

    Niciun task nu incepe inainte de ri

    Restrictiile de precedenta si de utilizare a resurselor sunt indeplinite

    Un task ocupa procesoarele maxim un timp egal cu ei

    Plan admisibil (feasible) plan valid ce asigura respectarea deadline-urilor

  • Sisteme de timp real

    PET [Physical Execution Time] - o descriere temporal exact a secventei de executie, prin design o acces exclusiv la procesor - uzual main + ISR in ASM

    BET [Bounded Execution time] cu SOTR: taskuri + ISR

    o RT: deadine pentru taskuri

    Probleme: adaugarea unor taskuri noi afecteaza modul de execuie al taskurilor deja existente n sistem

  • LET [Logical Execution time]

    Exemplu: HTL [Hierarchical Timimg Language]

    comunicator = variabila ce poate fi accesata la anumite momente de timp pentru sciere-citire

    mode grup de taskuri de aceeai frecven; acceptate restricii de preceden

    un program HTL: set de comunicatori + mode -uri

    o taskurile nu includ sincronizri, ci citesc/ actualizeaz instane ale comunicatorilor;

    o taskurile comunica prin comunicatori; comunicarea directa intertask permis n mode prin porturi