Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Tipurile de sisteme in timp real(T.R.) clasificare generala event trigger vs time trigger
Evolutia sistemelor timp real poate fi modelata utilizind o linie abstracta de timp care semnifica trecerea timpului din trecut inspre viitor. Orice aparitie care taie aceasta linie imaginara este un eveniment; de exemplu un ceas digital partitioneaza linia timpului intr-o secvente de timp de durate egale (perioada ceasului).
Un trigger este un eveniment care are ca rezultat executia unui task sau transmiterea unui mesaj. In functie de mecanismul adoptat pentru initierea comunicarii si activitatatii de procesare, exista doua abordari distincte care pot fi utilizate in procesul de proiectare a aplicatiilor timp real:
abordarea event-triggered (ET) - in cadrul acesteia toate activitatile din cadrul sistemului precum si comunicarea in sistem se realizeaza in urma aparitiei unor evenimente. Sesizarea evenimentelor semnificative se realizeaza utilizind binecunoscutul mecanism al intreruperilor si in consecinta este necesara aplicarea unei strategii de planificare dinamica pentru activarea task-ului corespunzator tratarii evenimentului aparut
abordarea timed-triggered (TT) - in cadrul careia toate activitatile, inclusiv comunicarea, sunt initiate la momente predefinite de timp, existind o singura intrerupere, si anume intreruperea de ceas. Daca sistemul este distribuit atunci se presupune ca ceasurile fiecarui nod sunt sincronizate intre ele conform unui ceas global si ca fiecare eveniment poate fi stampilat (timestamped) in functie de acest timp. Granularitatea ceasului global trebuie astfel aleasa incit ordinea in timp a aparitiei evenimentelor intr-un sistem distribuit sa poata fi stabilita pe baza sampilei de timp a acestora.
Astfel, daca sincronizarea dintre procesele externe si task-urile interne este definita in functie de timpul curent, inseamna ca la proiectarea sistemului in cauza a fost utilizata abordarea TT; daca insa aceasta se defineste in functie de anumite evenimente, s-a utilizat abordarea ET. In practica exista si o a treia categorie de sisteme, asa numite interactive, in cadrul carora relatiile intre actiunile din cadrul computerului si cele externe sunt mai putin strict definite.
Avantajele si dezavantajele abordarilor TT versus ET pentru sisteme timp real hard trebuiesc bine cunoscute in cazul modelarii unui astfel de sistem; functie caracteristicile intrinseci ale aplicatiei propriu-zise, se alege abordarea care se preteaza cel mai bine in contextul performanta/cost. Indiferent insa de calea aleasa, un model al sistemelor in timp real trebuie sa se bazeze pe un set general valabil si bine definit de concepte.
Astfel, intr-un sistem event-triggered ET se utilizeaza mecanismul intreruperilor pentru tratarea evenimentelor externe. Cind un astfel de mecanism este activat si apare o intrerupere, executia task-ului curent este intrerupta si hardware-ul forteaza o schimbare de context catre rutina de tratare a intreruperii corespunzatoare. Dupa terminarea tratarii intreruperii, o noua schimbare de context trebuie realizata fie pentru a continua task-ul intrerupt, fie pentru a trata o alta intrerupere aparuta intre timp.
Aceste schimbari de context consuma un anumit timp, asa numitul WCAO (Worst Case Administrative Overhead). Aparitia fiecarei intreruperi reduce capacitatea unitatii centrale disponibila aplicatiei, dupa cum este ilustrat in Figura 1.3. Acest lucru este valabil si in cazul in care rutina de tratare decide ca intreruperea a fost eronata si nu activeaza nici un alt task.
Figura 1.3: Capacitatea CPU versus 1/WCAO
Se observa din Figura 1.3 ca daca frecventa intreruperilor atinge valoarea 1/WCAO, capacitatea unitatii centrale disponibila pentru aplicatii devine zero; este deci de o importanta covirsitoare ca frecventa intreruperilor intr-un sistem timp real sa fie limitata. Acest lucru este practic imposibil intr-un sistem ET, deoarece sursa intreruperilor se afla in afara sferei de control a calculatorului.
In cazul unui sistem timp real timed-triggered TT insa, controlul ramine intotdeauna in cadrul calculatorului. Pentru a sesiza un anumit eveniment exterior, un sistem TT trebuie sa utilizeze un task periodic time-triggered care sa evalueze starea variabilelor din sistem. Perioada acestui task trebuie sa fie mai mica decit laxity-ul (diferenta intre deadline si timpul de executie) a oricarei tranzactii in timp real care poate fi activata de un anumit eveniment. Si utilizarea unui task trigger genereaza timpi suplimentari in sistem; practic, daca laxity-ul unei tranzactii este foarte mic (<1ms), overhead-ul asociat task-ului trigger poate fi mult prea mare pentru a fi admisibil.
In concluzie, trebuie in mod obligatoriu precizat faptul ca, pentru sistemele care abordeaza modalitatea event-triggered ET si lucreaza prin intreruperi, predictibilitatea este un deziderat greu de atins. De asemenea, o alta cerinta, si mai greu de atins dar esentiala pentru sistemele critice, aceea de determinism, nu poate fi practic realizata. De altfel, orice modalitate de a schimba in mod dinamic (de exemplu, conform prioritatii) ordinea proceselor in astfel de sisteme rezulta intr-un sistem nedeterministic. Rezultatele obtinute de Liu si Layland (cap. 6.1.2.1) privind algoritmul de planificare rate-monotonic pot fi utilizate doar pentru dovedirea predictibilitatii; ele insa nu rezolva problema determinismului.
Exista la ora actuala numeroase sisteme timp real care utilizeaza atit abordarea ET cit si abordarea TT. Totusi, majoritatea arhitecturilor tind sa favorizeze mai mult una dintre ele: semnalele de control sunt predominant event-triggered sau predominant time-triggered. O comparatie intre cele doua variante poate fi sumarizata conform Tabelului 1.3.
Tabelul 1.3: Activarea task-urilor prin intreruperi versus utilizarea unui task trigger
Caracteristica |
Intrerupere |
Task trigger |
Factori care afecteaza latenta |
raspunsul la intrerupere |
perioada de achizitie |
Sursa controlului |
externa |
interna |
Overhead-ul datorat scanarii |
nu exista |
WCET(laxity_trigger)/ laxity |
Overhead-ul datorat procesarii |
variabil |
constant |
Posibilitatea preemtiunii |
oricind |
controlata |
Conditiile de trigger |
simple |
complexe |
Predictabilitate |
nivel scazut |
nivel ridicat |
Copyright © 2024 - Toate drepturile rezervate