Sunteți pe pagina 1din 25

CURS 11 Sisteme real time

INFORMATICA INDUSTRIALA As. drd. ing. Valentin STEFANESCU

Introducere
2

In capitolele precedente am scos in evidenta importanta comunicarii real time Din solutiile prezentate se poate deduce ca exista un sistem de comunicatie real time pentru aproape toate aplicatiile Totusi, pentru ca un sistem sa functioneze in timp real, trebuie ca si unitatile logice sa poata procesa datele in timp real Inainte de a incepe, vom aminti definitia unui sistem real time ca fiind un sistem caracterizat de o constrangere de timp din momentul in care se produce un eveniment, pana la generarea raspunsului

Introducere
3

Aceasta spre deosebire de un sistem non real time in care un deadline nu este obligatoriu, insa e de dorit Sistemele real time se pot clasifica in doua categorii, in functie de consecintele nerespectarii deadline-ului:

Sisteme

hard real time - sunt acele sisteme in care rezultatul generat dupa depasirea deadline-ului este inutil si are de multe ori consecinte catastrofale (turnul de control al unui aeroport) Sisteme soft real time - sunt acele sisteme in care depasire deadline-ului nu este catastrofala, insa acest lucru poate duce la o performanta redusa a sistemului in ansamblu (baze de date)

Introducere
4

In mod evident, pentru ca un sistem sa fie capabil de procesare real time, este necesar un sistem de operare capabil de a decide o alocare eficienta a resurselor, astfel incat constrangerea real time sa fie indeplinita Sistemele de operare real time ofera programatorilor un control sporit asupra prioritatilor aplicatiilor, acestea putand chiar depasi prioritatile proceselor de sistem De asemenea, sistemele real time minimizeaza sectiunile critice ce tin de OS, astfel incat o intrerupere generata de aplicatie este tratata aproape la fel cu o sectiune critica din sistem

Introducere
5

Pentru sistemele real time nu este prioritara o rata de transfer ridicata, ci asigurarea constrangerilor hard sau soft real time Principalele deosebiri ale sistemele de operare real time fata de cele obisnuite sunt in algoritmii de planificare si alocare a resurselor Flexibilitatea prezenta in sistemele obisnuite permite o gama larga de aplicatii, insa sistemele real time sunt folosite pentru aplicatii restranse Performantele unui OS real time se exprima in latenta minima in cazul intreruperilor sau a schimbarii threadurilor

Introducere
6

In cazul unui sistem real time, timpul sau de raspuns e mai important decat cantitatea de date pe care o poate procesa intr-un anumit interval Exista doua categorii de sisteme real time:

Bazate

pe evenimente, unde accesul la resurse este alocat procesului cu cea mai mare prioritate Bazate pe timp, unde accesul la resurse se face circular, intr-un sistem de tip Round Robin

In trecut, procesoarele aveau nevoie de multe cicluri pentru a schimba procesul, timp in care procesoarele nu erau efectiv folosite si astfel sistemele real time incearca sa minimizeze numarul schimbului de procese

Introducere
7

Cele mai raspandite sisteme de operare real time sunt:


QNX

(bazat pe UNIX) RTLinux (bazat pe Linux) VxWorks (ruleaza in masina virtuala pe orice sistem) Windows CE

In continuare vom analiza metodele de planificare si alocare a accesului la resurse in cazul sistemelor de operare real time

Planificare
8

Deoarece sistemele in timp real acopera o gama restransa de activitati, algoritmii de alocare a resurselor pot fi adaptati aplicatiei sau categoriei de aplicatii in care opereaza sistemul Principalii algoritmi de planificare in timp real sunt:

Rate

monotonic Earliest Deadline First Round Robin

Primii doi algoritmi au la baza prioritatea proceselor, pe cand cel de-al treilea este un algoritm ciclic, bazat pe timp

Planificare bazata pe prioritati


9

Principiul de baza este atribuirea unei prioritati pentru fiecare proces La orice moment, planificatorul alege procesul cu cea mai mare prioritate Procesele ruleaza pana la completare, daca nu sunt intrerupte de procese cu prioritate mai mare Fiecare proces este format din: timpul de executie, perioada si deadline

Initiere

Timp de executie

Deadline

Timp Perioada

Planificare bazata pe prioritati


10

Exemplu:

1 2 3

Daca exista mai multe procese pe acelasi nivel de prioritate, putem avea diverse solutii:
Atribuirea

de prioritati unice Atribuirea fiecarui proces un interval egal de timp (introduce overhead prin schimbarea proceselor) Se executa pe rand

Planificare RM
11

Planificare rate monotonic implementeaza un mod simplu de atribuire a prioritatilor Ea atribuie cea mai mare prioritate procesului cu cea mai scurta perioada Exemplu:

Perioada 10 12 15 20

Prioritatea 1 (maxima) 2 3 4 (minima)

Nu este mereu optim, putand exista cazuri in care se depaseste nivelul de 100% de utilizare a procesorului

Planificare RM
12

Exemplu: P1 = (10,20,20) P2 = (15,30,30)

1 2
Ar fi reusit daca P2 = (10,30,30), utilizarea fiind redusa la 83%

P2 nu atinge primul deadline

Planificare RM
13

Planificarea RM poate exista doar daca nivelul de utilizare a procesorului este mai mic de 100% Pentru a calcula nivelul de utilizare, folosim urmatoarea formula:

U = ci / pi unde: ci timpul de calcul in conditiile cele mai dezavantajoase pentru procesul i si pi perioada procesului i Planificarea RM poate exista doar daca nivelul de utilizare a procesorului este mai mic de 100% si daca

U n( n 2 1)

Planificare EDF
14

Planificarea RM presupune prioritati fixe Planificarea Earliest Deadline First incearca sa atribuie prioritatile dinamic, in functie de deadline-urile proceselor Astfel, procesul cu deadline-ul cel mai apropiat primeste cea mai mare prioritate Spre deosebire de RM, EDF poate garanta ca toate procesele isi ating deadline-ul, in conditiile unei utilizari sub 100% Din acest motiv, EDF este un algoritm optimal De cele mai multe ori, EDF asigura o utilizare a procesorului de 100%

Planificare EDF
15

Exemplu: P1 = (10,20,20), P2 = (15,30,30)

1 2

P2 primeste prioritate maxima deoarece are primul deadline

Planificare EDF
16

EDF poate genera un overhead semnificativ datorita schimbului intre procese Deoarece este mai complicat decat RM, este mai dificil de analizat Datorita atribuirii dinamice a prioritatilor, este imprevizibil, in sensul ca nu putem sti ce proces ruleaza sau cand acesta va rula Pentru a calcula nivelul de utilizare, folosim urmatoarea formula: U = ci / ti unde: ci timpul de calcul in conditiile cele mai dezavantajoase pentru procesul i ti perioadele intre cererile de acces ale procesului i

Inversarea prioritatilor
17

EDF si RM presupun ca procesele nu interactioneaza intre ele De multe ori este o aproximare inacceptabila Exemplu:

1 2
Procesul 1 incearca sa acceseze resursa (blocata de procesul 2) Procesul 1 are prioritate mai mare decat procesul 2 Procesul 2 blocheaza resursa Procesul 2 incepe executia

Inversarea prioritatilor
18

O posibila solutie ar fi cresterea temporara a prioritatii procesului ce a blocat resursa Pericolul este ca procesele cu prioritate mica, odata ce au capatat resursa, sa o blocheze pentru procesele cu prioritate mare (in mod obisnuit) In acest fel, procesele importante pot esua in atingerea deadline-ului Pentru a evita acest lucru, proceselor cu prioritate mica li se creste prioritate numai pentru intervale scurte de timp Rezultatul este ca timpul de executie al proceselor cu prioritate mare devine neprevizibil

Inversarea prioritatilor
19

Exemplu:
Procesul 2 intarzie eliberarea resursei de catre procesul 3

1 2 3
Procesul 1 incearca accesarea resursei, insa este blocat Procesul 1 surclaseaza procesul 2 Procesul 2 surclaseaza procesul 3 Procesul 3 castiga resursa Procesul 3 incepe executia

Planificare RR
20

Planificarea Round Robin, spre deosebire de RM si EDF, nu tine cont de prioritati, ci atribuie fiecarui proces cate un interval de timp egal Procesele sunt parcurse circular, nu exista discriminari intre procese In mod evident, daca durata sarcinilor difera mult de la un proces la altul, RR nu este un algoritm util In general, algoritmii bazati pe timp nu sunt folositi in sistemele real time, deoarece, datorita schimburilor dese intre procese, se pierde mult timp si procesele cu durata lunga sunt favorizate (acceseaza resursele de mai multe ori fata de procesele scurte)

Caracteristici ale sistemelor de operare real time


21

In final vom prezenta cateva caracteristici ale principalelor sisteme de operare real time QNX

Sistem

compatibil POSIX, bazat pe Unix Kernelul este minimizat, oferind doar thread-uri esentiale si servicii real time In acest fel, se pot dezactiva optiunile nefolosite, fara a modifica sistemul de operare Sistemul ocupa foarte putin spatiu, putand incapea pe o discheta floppy Kernelul are o dimensiune de 12KB Orice driver, aplicatie, etc., ruleaza in afara kernelului Prin integrarea POSIX asigura compatibilitatea cu Unix si Linux

Caracteristici ale sistemelor de operare real time


22

VxWorks
Cel

mai raspandit sistem de operare real time Principalele sale atribute sunt performanta, fiabilitatea, latenta scazuta si scalabilitatea Este un sistem determinist (asigura functionarea hard real time) Implementeaza planificatoare atat bazate pe prioritati cat si de tipul round robin In acest mod, poate lucra si cu procese real time si cu procese non real time Ofera compatibilitate POSIX La suspendarea unui task, se salveaza doar registrii folositi La reincarcarea sa, se incarca doar registrii care ii sunt necesari

Caracteristici ale sistemelor de operare real time


23

RTLinux
Este

disponibil ca patch pentru sistemul Linux uzual Ofera un API real time pentru dezvoltatori Aplicatiile neesentiale (interfata cu utilizatorul, sistemul de fisiere, etc.) sunt gestionate de Linux-ul uzual RTLinux este un sistem hibrid in sensul ca ruleaza un kernel de Linux intr-un thread idle (cea mai joasa prioritate) intrun kernel real time Operatiile real time nu sunt niciodata intarziate de cele non real time Intreruperile Linux sunt dezactivate Multitudine de planificatoare

Exemple
24

Exemplu: A(10,30,30), B(15,40,40), C(5,50,50) Prioritatile statice: p(A)=33, p(B)=25, p(C)=20

Ci 10 15 5 97 = + + = P 30 40 50 120 = 0,808 < 1 i=1 i

Ci P = 0,808 > 3(3 2 1) = 0,779 i=1 i

Exemple
25

Exemplu: A(15,30,30), B(15,40,40), C(5,50,50) Prioritatile statice: p(A)=33, p(B)=25, p(C)=20

P
i=1

Ci
i

15 15 5 117 + + = = 0,975 < 1 30 40 50 120

Algoritmul RM nu poate fi aplicat