Documente Academic
Documente Profesional
Documente Cultură
Cuprins:
Restrictii de timp. Modele STR
Taskuri si intreruperi. Preemptiune. Planificator
Algoritmi de alocare si planificare
Aplicatii monoprocesor: sincronizare taskuri
Arhitecturi STR. Algoritmi de planificare a mesajelor
Dispozitiv IO
Sincronizarea ceasurilor in STR distribuite
Directii de cercetare
Bibliografie
Richard Zurawski,
Embedded Systems Handbook, CRC Press, 2006
***, OSEK/VDK Operating System Specifications, http://www.osek-vdx.org/
V. PROBLEMATICA APLICAŢIILOR DE
TIMP REAL
V.1. Generalităţi
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
prestabilite
← procesele ocupa
Context task
= conţinut regiştri + adresa de început task + stare task +adresa stivei iniţiale +
var. specifice ale SOTR
o Un proces care ocupa resursa trebuie să îşi poată finaliza în timp finit
operaţiile, fără a pierde consistenţa acestora
Clasificare:
o Kernel
– mici, rapide, predictibile
– acceptă taskuri puţine ⇒ aplicaţii mici
o SO comerciale cu extensii de TR
- Mai lente, mai putin predictibile
- Au interfeţe prietenoase
- Permit dezvoltarea unor aplicaţii mai ample, dar nu critice
o SO dedicate
Limbaje de programare utilizate: asamblare; C; ADA
V. 1. 2. Detalii despre ocuparea resurselor active in SOTR
V. 1. 2. 1. Clasificare taskuri
in curs de executie
(“running”)
Cere asteptarea
unui eveniment Se termina de
executat
Pierde Primeste
procesorul procesorul
in asteptare (“preempt”) (“start)
(“waiting”) suspendata
Pot exista diferente intre SOTR cu privire la modul de trecere del a o stare la alta sau
denumirea stării
V. 1. 2. 3. Moduri execuţie a taskurilor
o preemtiv
activare T1 Terminare T1
T1
suspendat in executie suspendat
v
in executie “ready” in executie
T2
o nepreemtiv
T1
suspendat ready” in executie
v
in executie suspendat
T2
Terminare T2
>> pot fi admise moduri mixte: unele procese preemtive, altele nepreemtive
V. 1. 2. 4. Planificator
clock driven:
planificatorul se activează periodic (o perioadă = frame)
+ procesul in executie cere acces la planificator, se termina sau intra in
asteptare
event driven:
planificatorul se activează cand apare un eveniment ce modifică coada
ready
+ procesul in executie cere acces la planificator, se termina sau intra in
asteptare
o algoritmul de planificare – cum alege taskul câştigător:
priorităţile pot fi
• statice (un task are aceeaşi priroitate pe durata execuţiei
aplicaţiei) – vezi RM, DM
• dinamice (un task îşi modifică prioritatea) – vezi EDF, MLF
“event-driven” „clock-driven”
static on-line
on-line static
cu prorităţi cu priorităţi
fixe dinamice cu prorităţi cu priorităţi
fixe dinamice
Performantele algoritmului de planificare:
+ Fiabilitate, robusteţe
V. 1. 2. 5. Execuţia ISR
sau
- momentul de timp la care J i trece din din starea „suspendată” în starea gata
de execuţie
Di = d i − ri
(d i − ei ) − ri = rezerva jobului.
Jobul trebuie să îşi inceapă execuţia în intervalul de timp
[ri , (d i − ei ) − ri ] pentru a avea şanse să respecte termenul limită
asociat.
o Dacă acest lucru nu se întâmplă, restricţia de timp este
încălcată, dar condiţia nu este suficientă.
Determinarea WCET („worst case execution time”) şi BCET („best-case
execution time”)
Observaţii:
Măsurarea prin soft modifică caractersiticile temporale ale execuţiei
Rezoluţie adecvată – uzual microsec
Trebuie cunoscută secvenţa de execuţie
Trebuie delimitate intervalele de timp consumate pentru execuţii ISR
şi de SOTR
Probleme:
o cost,
o să existe facilităţi oferite de SOTR,
o portabilitate scăzută a soluţiei de măsurare pe alte arhitecturi
o Prin analiză statică (şi măsurare)
3 etape:
Di
(deadline relativ)
procesi timp
ri di
activare ei termen limita
(release) (executie) (deadline absolut)
li Taski
rezerva
(laxity, slack)
intarziere
(tardeness)
Taski
Obs:
In aplicatiile de timp real exista multe procese periodice
Aplicaţii on-line: Tdeadline < ∞ ; aplicaţii off-line: Tdeadline → ∞
Functia de utilitate
Indica daca este utila executia procesului chiar si dupa expirarea termenului limita
utilitate
intarziere
0
Timp = resursa STR ⇒ corectitudine în funcţionarea STR
- indică faptul că jobul se poate executa doar dacă alte joburi s-au executat
anterior.
Graf de precedenţă:
ipoteză: joburile între care nu
J1 (2,8) J3 (2,8) J4 (4,9) J6 (4,20)
există restricţii de precedenţă
(2,10) (1,12) (4,9) (0,20) sunt independente
(1,8)
Plan
Plan valid:
o un job ocupă resursa activă doar pe durata execuţiei sale ( ei < ei+ );
- SOTR care asigură tranziţiile adecvate de stare pentru fiecare task;
Respectarea restricţiilor de timp
La priorităţi dinamice:
verificare realizată de programator pe cazul cel mai nefavorabil – mai
dificil
(0,7) (6,21)
(0,7) J7
(6,21)
J2 J5
(2,8)
(1,8)
Momentul de activare efectiv pentru jobul Ji cu moment de activare ri :
!! parcurgerea grafului
în sensul indicat de arce.
(0,7) (6,21)
(0,7) J7
(6,21)
J2 J5
(2,8)
(1,8)
Termenul limită absolut efectiv pentru jobul J i cu „deadline” absolut d i :
!! parcurgerea grafului
în sensul invers celui
(0,7) (6,21)
J7
indicat de arce.
(0,7) (6,21)
J2 J5
(2,8)
(1,8)
Lemă (Gary şi Johnson):
o aplicaţie mono-procesor cu
un set de joburi cu restricţii de precedenţă, fără alte tipuri de dependenţe
perioada
0 ri ≠ 0 T T+ri 2T 2T+ri
n e
La taskuri periodice: U = ∑ i , cu
i =1 pi U ≤1
ei = timp executie task Ti
pi = perioada taskului Ti
n = numar taskuri
• Set de taskuri pentru care există cel puţin un plan admisibil – planificabil
o Set de procese planificabil = set de procese pentru care exista cel putin
un plan admisibil
• Plan maximal = plan obtinut pentru timpi maximi de executie pentru fiecare
job
• Plan minimal = plan obtinut pentru timpi minimi de executie pentru fiecare job
OBS:
Se pot considera pentru fiecare task două componente (joburi): una obligatorie
şi una opţională (preferabil de executat înainte de termenul limita).
Daca nu exista un plan admisibil se poate urmari:
Algoritm EDF:
= asigneaza prioritatea maxima pentru taskul cu deadline-ul
absolut (di) cel mai apropiat, faţă de punctul de replanificare
curent.
Algoritm MLF:
= asigneaza prioritatea maxima pentru taskul cu rezerva („laxity”)
mai mică, calculul acesteia fiind realizat în punctul de
replanificare curent.
Ex: r1 = 0, d1 = 10, e1 = 3
r2 = 2, d 2 = 14, e2 = 6
r3 = 4, d 3 = 12, e3 = 4 pentru f = 1.
Exemple MLF: T2 se poate executa dupa teminarea executiei pentru T1
T1, l1=3
e1=3 e2=2
T1 r1=0 T2 r2=5 T3, l3=3
d1=6 d2=8
1 3 2
e3=2 k
r3=2 T3
d3=7 l= d–r-e
T2, l2=1
T3
e1=3 e2=2
T1 r1=0 T2 r2=5
d1=6 d2=8
1 3 2
k
T3
e1=2 e2=2
T1 r1=0 T2 r2=5
d1=10 d2=8 3 2 3 1
k k
T2
e3=4
T3 l1=6 l1=3
r3=2
l3=3 l3=3 l1=1
d3=9
l2=1 l3=1
Observatii:
n(21/ n − 1) este descrecătoare, lim
n→∞
n ( 21/ n
− 1) = ln 2 = 0.69
2) Dacă U < 1 şi taskurile sunt armonice, atunci RM conduce la un plan
admisibil
1
Taskuri armonice: ∃υ , ∀i → υ i = = kυ , cu k ∈ N
pi
Observatie:
Mai puţin restrictivă decât garanţia LL
U2
1 garanţia EDF
0.828
garanţia H
garanţia LL
O 0.828 1 U1
Teoreme referitoare la optimalitatea algoritmilor EDF si MLF
Teorema1:
Ipoteze: caz monoprocesor, mod preemtiv, taskuri independente.
EDF (Earliest Deadline First) este optimal
Teorema2:
Ipoteze: caz monoprocesor, mod preemtiv, taskuri independente.
MLF (Minimum Laxity First) este optimal
Teorema Horn
Ipoteze: caz monoprocesor, mod preemtiv, taskuri independente.
EDF asigură minimizarea valorii maxime a întârzerii
Demo teorema 1:
Orice plan admisibil poate fi transformat intr-un plan admisibil produs cu EDF
rk dk di
Ti Tk
rk dk di
Tk Tk Ti
Pentru taskuri nonpreemtive EDF nu este optimal
Ex: r1 = 0, d1 = 10, e1 = 3
r2 = 2, d 2 = 14, e2 = 6
r3 = 4, d 3 = 12, e3 = 4
1. T1: p1=2 sec, are de executat niste operatii cu e1 = 1 sec; D1 = 1.5 (sau 2)
T2: p2=1 sec, are de executat niste operatii cu e2 = 0.5sec; D2 = 0.7 (sau 1).
2. T1: p1=2 sec, are de executat niste operatii cu e1 = 1 sec; D1 = 1.5 (sau 2)
T2: p2=2 sec, are de executat niste operatii cu e2 = 0.5sec; D2 = 1.7 (sau 2).
3. T1: p1=2 sec, are de executat niste operatii cu e1 = 1 sec; D1 = 1.1 (sau 2)
T2: p2=2.5 sec, are de executat niste operatii cu e2 = 0.5sec; D2 = 1 (sau 2.5).
Ipoteze:
1. STR are n taskuri periodice, n= fix
2. parametrii taskurilor sunt cunoscuti
3. niciun task aperiodice nu este critic (nu exista taskuri sporadice)
Variante de lucru:
Taskurile aper. ready sunt introduse într-o listă separată, fără activarea
planificatorului
Procesorul execută taskuri aperiodice din această listă, DOAR atunci cand
nu trebuie executate taskuri periodice.
1. Taskurile aper. sunt introduse în listă fără a le verifica indeplinirea deadline-
ului.
A4: 5 >4.5
Reject A1
A4(44,5)
A1:4.5> 4
S2
3.5 7 10 15 23.5 27 30
19 35 39
4 8 12 16 20 24 28 36
32 40
1 2 3 4 5 6 7 8
hiperperioada hiperperioada
Accept A2
A2: 4 < 5,5
Accept A3
A3: 1,5 <=2 Notatie: A(d, e)
A2: rest 2, rezerva cu A3 1,5
EDF ciclic este optimal:
= poate gasi un plan admisibil pentru taskurile aperiodice
preemtive acceptate,
daca testul de acceptanta este facut la inceputul fiecarui cadru
ATENTIE!!!!:
EDF ciclic nu este optimal daca e comparat cu algoritmi care fac testul de
acceptanta oriunde (ex: se poate accepta S1),
dar e avantajos pentru takurile periodice (nu se ajunge la nr. mare
de preemtiuni)
RM
Teorema 1:
RM optimal pentru un set de taskuri periodice independente, preemtive, cu
aceeasi perioada si Di ≥ pi, daca si numai daca U ≤ 1
Teorema 2:
RM optimal pentru un set de taskuri periodice independente, preemptive, cu Di
1
= pi, daca U ≤ n( 2 n − 1) , n = nr.taskuri
DM
Teorema 3
Exista un plan DM admisibil pentru un set de taskuri periodice independente,
preemptive, cu aceeasi faza si Di ≤ pi, daca exista un plan admisibil pentru orice
alt algoritm cu prioritati fixe
Algoritmi cu prioritati dinamice
Teorema 1
Exista un plan EDF admisibil pentru un set de taskuri periodice independente,
preemtive, planificabile, cu Di = pi, daca si numai daca U ≤ 1.
Demo:
U > 1- evident nu exista un plan admisibil
U ≤ 1 – se demonstreaza ca EDF produce un plan admisibil pentru cazul
limita U = 1
Teorema 2
Exista un plan EDF admisibil pentru un set de taskuri periodice independente,
preemtive, , planificabile, cu Di > pi, daca U ≤ 1
FIFO
LDF nonstrict
= prioritate dinamica la nivel de job
toate rezervele joburilor din coada ready sunt recalculate la activarea
planificatorului
d −t − x
d= deadline absolut job,
x= timp de executie ramas pentru job
t= moment de timp actual
>> prioritatea unui job plasat in coada se poate modifica
prioritate maxima pentru jobul cu rezerva mai mica
LDF strict
Rezervele sunt recalculate continuu (nu doar la activare/terminare)
Prioritatile sunt modificate ori de cate ori ordinea rezervelor se modifica
Obs: O comparatie se poate face in raport cu gr. de utilizare (< 1) pe planul
admisibil creat
Avantaje Dezavantaje
EDF Optimal Predictii greoaie
(←prioritati dinamice)
RM, Predictibilitate Neoptimale
DM (← prioritati fixe)
V. 3. Alte aspecte legate de aplicatiile de TR monoprocesor
Sincronizarea taskurilor
Planificator
Sterge asteapta
eveniment eveniment
Seteaza
eveniment
o Metoda rendez-vous
A1 B1 C1
SC SC SC
sincronizare
A2 B2 C2
SC:
rdv - -;
dacă rdv = = 0, relansează celelalte taskuri;
dacă rdv > 0, blocare task curent (aşteaptă celelate taskuri)
Probleme la sincronizarea taskurilor
eliminarea situaţiilor în care unele taskuri ocupă resurse fără a mai progresa
(aşteaptă evenimente care nu se mai pot produce)
⇒ producator-consumator
V. 4 Arhitecturi STR
Un STR distribuit consideră noduri interconectate în reţea.
Comunicarea între nodurile distribuite se va face prin mesaje.
Se vor asocia deadline-uri şi pentru mesaje.
A. NIVEL NOD
Ceas virtual
Schema Molle: se construieşte o lista FIFO după timp sosire mesaj
Schema Yhao şi Ramamrithan: se construieşte o lista FIFO după
Minimum Laxity First, Earliest Dealine First, Shortest Length First
Dezavantaj: nu foloseşte istoria evenimentelor în selectarea
mesajelor de transmis
Protocoale window-based
Când un canal este liber se alege fereastra pentru timpii de sosire şi
din acest interval se selectează un mesaj de transmis
Dezavantaj: nu garantează determinist trimiterea mesajelor şi
respectarea termenelor pentru taskurile critice
Metoda Agrawal
Fiecărui nod i se aloca un interval de timp (cuanta). Nodul va deservi
intâi mesajele critice
Avantaj: se pot anticipa mai uşor rezultatele
2) pentru reţele punct la punct
Avantaj:
- există mai multe legături între orice două noduri (în caz de defect – variante de
rezervă)
Dezavantaj:
- pot să nu existe legături directe între orice 2 noduri.
- traseul optim greu de ales.
Pentru siguranţă, mesajele se pot transmite în mai multe copii, pe căi diferite
Varianta Garcia, Molina: 2 copii
Alte variante: numar copii ales în funcţie de importanţa mesajului, intensit.
taficului, nr. noduri intermediare
V.5 Dispozitive IO
IO afectează hotărâtor viteza STR.
O variantă:
- Sunt grupate dispozitivele IO;
- Pentru fiecare cluster se foloseşte un controller;
- Controllerul poate fi accesat de N noduri;
- Pentru alocarea dispozitivelor, controllerul poate folosi algoritmi
Metode de sincronizare:
1) software
Principiul metodei:
- pentru sincronizare ceasurile îşi transmit mesaje între ele (cu ora lor
exactă);
- se compară informaţiile primite;
- momentele de timp pentru sincronizare sunt prestabilite
o Algoritm cu mediere
Fiecare ceas calculeaza deviaţia sa ştiind valoarea citită şi momentul de
citire
Deviaţia finală
= media aritmetică a deviaţiilor
= media aritmetică pentru unele deviaţii (cele mai mari m deviaţii
sunt eliminate)
- eventual dacă deviaţia este mai mare decât un prag – neconsiderată.
Anomalia bizantină
= un ceas din STR este stricat şi minte celelate ceasuri
1:00 1:00
1:05 1:10 12:55 1:10
1:00 1:00
1:05 12:55
2 3 2 3
1:10 1:10
2) hardware
dezavantaje: hardware adiţional
CLK
Detector U=kϕ Oscilator
CLK
de fază comandat
sincronizat
REFERINŢĂ în tensiune
OBS:
rata anomaliilor pe conexiunile dintre ceasuri este mai mare decât rata defectării
ceasurilor
V.7. Aplicaţii. Direcţii de dezvoltare
Aplicaţii:
Controlul proceselor
Inteligenţă artificială:
Construcţia unor baze de reguli
Probleme de predictibilitate: îmbunătăţirea bazei de reguli separat, în
paralel; on-line se foloseşte un planificator anterior proiectat
Baze de date: acces rapid şi garanţii temporale
Direcţii de dezvoltare:
Determinarea timpilor de execuţie (în cazul resurselor partajate, bucle dependente
de datele de intrare, în funcţie de SO, limbaj-compilator)
Metode sistematice de asignare a termenelor limită pe taskuri, mesaje
Formalizarea determinării cazului mai nefavorabil
Comunicare în TR
Planificare IO
Baze de date: verificarea capacităţii lor de respecta restricţiile de timp privind
accesul, planificarea accesărilor
Diagnoza anomaliilor, reconfigurare
Experimentare pe cazuri complexe