0% au considerat acest document util (0 voturi)
76 vizualizări23 pagini

STR Colocviu

Documentul prezintă concepte de bază ale multitasking-ului și planificării task-urilor, inclusiv multitasking, resurse partajate, nucleu, priorități, semafoare și evenimente. De asemenea, descrie algoritmul de planificare Rate Monotonic și condițiile de fezabilitate pentru planificarea task-urilor periodice.

Încărcat de

Liviu92
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
76 vizualizări23 pagini

STR Colocviu

Documentul prezintă concepte de bază ale multitasking-ului și planificării task-urilor, inclusiv multitasking, resurse partajate, nucleu, priorități, semafoare și evenimente. De asemenea, descrie algoritmul de planificare Rate Monotonic și condițiile de fezabilitate pentru planificarea task-urilor periodice.

Încărcat de

Liviu92
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

Cap 1

Multitaskingul reprezint procesul de planificare si comutare ntre taskuri a


CPU-ulu. Un singur CPU este partajat de mai multe task-uri secveniale.
Multitaskingul maximizeaz folosirea procesorului.
Resurse
O resurs reprezint o entitate folosit de un task. O resurs poate fi un
dispozitiv de I/O (exemplu imprimanta, o tastatur, un afior) sau o variabil, structur, array,
etc.
O resurs partajat reprezint o resurs care este folosit de mai multe task-uri.
Fiecare task trebuie s aib acces exclusiv la resurs pentru a evita coruperea datelor. Acest
lucru se realizeaz prin excludere mutual.
Un task, denumit i fir de execuie, este un program simplu care are impresia ca
folosete doar el procesorul. Fiecare task are asociat o prioritate, are propriul set de registre, i
propria stiva.
Nucleul reprezint partea sistemului multitasking care este responsabil pentru
managementul task-urilor (administrarea timpului procesor) i comunicaia dintre task-uri.
Serviciul fundamental furnizat de nucleu l reprezint comutarea task-urilor.
Nucleul consum i timp procesor (de obicei ntre 2 si 5%).
Planificatorul, denumit i dispatcher, este partea nucleului care este responsabil
pentru determinarea task-ului care va rula n continuare. Cele mai multe nuclee de timp real sunt
bazate pe prioriti.
Exist 2 tipuri de nuclee bazate pe prioriti: preemtiv i non-preemtiv.
Nucleele non-preemptive solicit ca fiecare task s realizeze o funcie explicit
de renunare a controlului n favoarea CPU-ului. Planificarea non-preemptiv este denumit de
asemenea i multitasking de colaborare; task-urile colaboreaz unele cu celelalte pentru a
partaja CPU-ul. Evenimentele asincrone sunt nc tratate de ISR-uri.
Un nucleu preemtiv este folosit atunci cnd timpul de rspuns al sistemului este
[Link] acest motiv, majoritatea nucleelor in timp real sunt [Link]-ul cu
prioritatea cea mai mare din starea ready va primi ntotdeauna controlul [Link]
task-ului cu prioritatea cea mai mare este determinist (putem calcula timpul n care task-ul cel
mai prioritar preia cotrolul CPU-ului).
O funcie reentrant este o funcie care poate fi apelat de mai multe task-uri fr
coruperea datelor.O funcie reentrant poate fi intrerupt n orice moment i reluat mai trziu
fr pierderea datelor.

Prioriti statice
Prioritile task-urilor sunt statice atunci cnd prioritatea fiecrui task nu se
schimb n timpul execuiei aplicaiei. Prioritile task-urilor sunt asociate n momentul
compilri.

Prioriti dinamice
Prioritile task-urilor sunt dinamice atunci cnd prioritatea fiecrui task se
schimb n timpul execuiei aplicaiei.
Asignarea prioritilor specifice task-urilor
Tabelul prezint valoarea pentru dimensiunea (2
1/n
-1) bazat pe numrul de taskuri.

Cele mai folosite medote pentru a obine acces exclusiv la o
resurs partajat sunt:
Dezactivarea intreruperilor;
Dezactivarea planificatorului;
Folosirea semafoarelor.



Semaforul este un mecanism oferit de majoritatea nucleelor multitasking.
Semafoarele sunt folosite pentru:
controloarea accesului la o resurs partajat;
semnalarea apariiei unui eveniment;
permite task-urilor s-i sincronizeze activitile.
Semaforul reprezint o cheie pe care un task obine pentru a-i putea continua
execuia.
Dac semaforul este deja folosit, taskul care cere semaforul este suspendat pn
cnd acesta este eliberat.
n general sunt doar trei operaii care pot fi folosite la lucrul cu semafoare:
Initializarea (CREATE);
Ateptarea semaforului (PEND);
Eliberarea semaforului (POST).

Evenimente
Evenimentele sunt folosite cnd un task trebuie s se sincronizeze cu apariia
unor evenimente.
Task-ul se poate sincroniza cnd a aprut oricare din evenimente. Aceasta este
denumit sincronizare disjunctiv (SAU logic).
Task-ul se poate sincroniza cnd au aprut toate evenimente. Aceasta este
denumit sincronizare conjunctiv (SIlogic).
Evenimentele pot fi folosite pentru a semnala diferite task-uri. De obicei
evenimentele sunt grupate.
n funcie de nuclee, un grup este format din 8, 16, 32 de evenimente (32 este cel
mai utilizat).
O rutina ISR poate seta sau sterge orice eveniment dintr-un grup. Un task este
reluat cnd toate evenimentele pe care le ateapt sunt active.

Tick-ul de ceas
Un tick de ceas reprezint o intrerupere care apare periodic. Aceast intrerupere
poate fi vzut ca btaia de inim a sistemului.
Timpul dintre ntreruperi este specific aplicaiilor i, n general, este de 10-
200ms.
Tick-ul de ceas permite nucleului s aplice temporizri pentru un numr ntreg de
tick-uri de ceas i furnizeaz time-out-uri cnd task-urile ateapt apariia de evenimente.
Toate nucleele permit task-urilor s fie temporizate pentru un numr de tick-uri
de ceas. Rezoluia temporizrii este de 1 tick de ceas, lucru care nu nseamn ca acurateea lui
este de 1 ciclu de ceas.
Cap 2

Pentru a facilita descrierea rezultatelor obinute n urma planificrii, vom utiliza urmtoarele
notaii:
un set de taskuri periodice

i
un task periodic generic

i,j
a j-a instan a taskului
i

r
i,j
timpul de execuie pentru a j-a instan a taskului
i


i
faza taskului
i
care este timpul de execuie a primei instane (
i
= r
i,1
)
D
i
termenul limit relativ a taskului
i

d
i,j
termenul limit absolut pentru a j-a instan a taskului
i
(d
ij
=
i
+(j-i)T
i
+D
i
)
s
i,j
timpul de start pentru a j-a instan a taskului
i
(timpul la care incepe execuia)
f
i,j
timpul la care se termin j-a instan a taskului
i
(timpul la care s-a terminat
execuia)

Pentru a simplifica analiza planicafibilitii, se fac urmtoarele presupuneri:

[Link] unui task periodic
i
sunt activate periodic la o rat constant. Intervalul T
i

dintre dou activri consecutive reprezint perioada taskului.
[Link] instanele unui task periodic
i
au acelai timp pentru cazul cel mai defavorabil
de execuie C
i

[Link] instanele unui task periodic
i
au acelai termen limit relativ D
i
, care este egal
cu perioada T
i
.
[Link] taskurile sunt indepedente (nu exist relaii de preceden i constrngeri de
resurse).
n plus, urmtoarele presupuneri sunt fcute implicit:
[Link] nu se pot autosuspenda, de exemplu la o operaie I/O.
[Link] taskurile sunt executate de ndat ce sosesc.
[Link] supracontrolul generat de nucleu este neglijabil (timpul consumat este neglijabil).

Fie U
ub
(, A)limita superioar a factorului de utilizare a procesorului pentru un set
de taskuri pentru un anumit algoritm A.
Cnd U = U
ub
(, A), se spune c setul poate utiliza pe deplin timpul procesor.
n aceast situaie, este planificabil de algoritmul A, dar o cretere a timpului de calcul
pentru oricare din taskuri va face setulnefezabil.
U
lub
definete o caracteristic important a unui algoritm de planificare util pentru
verificarea cu uurin a planificabilitii unui set de taskuri.
De fapt, orice set de taskuri al crui factor de utilizare a procesorului este mai mic sau egal
cu aceastlimit, este planificabil de algoritm.
Pe de alt parte, atunci cnd U
lub
<U1.0, planificabilitatea poate fi realizat numai n
cazul n care perioadele taskurilor sunt legate corespunztor.







Hrnete vaca 25 min la fiecare 50 min
Hrneteporcul 10 min la fiecare20 min



Algoritmul optim: hrnete animalul cel mai flmnd
animal




Evaluare: Toat lumea este fericit


Hrnete vaca 4 min la fiecare16 min
Hrneteporcul 20 min la fiecare40 min

Ideea de baz:
mparte timpul in sloturi de lungime egal
n cadrul fiecrui slot fiecare task cu un timp proporional cu utilizarea lui:
Factor utilizare [Link] = 4/16 = 1/4
Factor utilizare [Link] = 20/40 = 1/2


Porcul (4/16)
Vaca (20/40)
n general:
Fie: U
i
= fraciunea de timp necesar pentru hrnire
= c.m.m.d.c (T
1
,T
2
) = 8

Execut fiecare task pentru
i
=U
i
pentru fiecare slot

Porcul (4/16)
Vaca (20/40)

Planificarea Rate Monotonic (RM)

Algoritmul de planificare Rate Monotonic este de fapt o regul simpl prin care sunt asignate
prioriti task-urilor n funcie de perioadele lor.
Mai precis, task-urile cu o perioad mai mic vor avea prioriti mai mari.
ntruct perioadele sunt constante, RM folosete prioriti fixe: o prioritate P
i
este atribuit unui
task nainte de execuie i nu se modific n timpul execuiei.
Mai mult, RM este intrinsec preemptiv: taskul aflat in execuie poate fi ntrerupt de un alt task cu
prioritatea mai mare.

S lum n considerare un set de dou taskuri periodice
1
si
2
, cu T
1
<T
2
. Dac prioritile nu sunt
alocate n conformitate cu RM, atunci taskul
2
va primi cea mai mare prioritate. Aceast situaie este
descris n Figura, din care este uor s vedem c, la instanele critice, planificarea este fezabil dac
este ndeplinit inegalitatea:
C
1
+C
2
T
1
(2.1)







Pe de alt parte, n cazul n care prioritile sunt alocate n conformitate cu RM, taskul
1
va primi
cea mai mare prioritate.
n aceast situaie, cuscopul de a garanta o planificare fezabil trebuie s fie luate n considerare
dou cazuri.
Considera F = T
2
/T
1
numrul de perioade a taskului
1
coninute n ntregime n T
2
.
Practic, s-a demonstrat c, avnd dou taskuri periodice
1
si
2
, cu T
1
<T
2
, n cazul n care
planificarea este fezabil pentru o atribuire arbitrar de prioriti, atunci este fezabil i de RM.
Astfel, planificarea RM este optim. Acest rezultat poate fi extins cu uurin la un set de n
taskuri periodice.


Pentru un set arbitrar de taskuri periodice, limita superioar a factorului de utilizare procesorului
n algoritmul de planificare RM este:

Valorile lui U
lub
pentru diferite valori a lui n:

Pentru valori mari ale lui n, limita superioar converge la:


EDF -EARLIEST DEADLINE FIRST

Algoritmul EDF (Earliest Deadline First) este o regula de planificare dinamic care selecteaz
taskurile n conformitate cu termenele lor limita absolute.
Concret, taskurile cu termene limit cele mare apropiate vor fi executate cu prioriti mai mari.
Deoarece termenul limit absolut a unui task periodic depinde de a j-a instan poate fi exprimat
ca

EDF folosete o asignare dinamic a prioritilor.
Mai mult dect att, taskurile sunt executate in mod preemptiv, in sensul ca taskul curent este
ntrerupt atunci cnd apar instane ale altor taskuri care au termenul limita mai devreme.
Reinei c EDF nu face nici o presupunere specific privind periodicitatea taskurilor, prin
urmare, acesta poate fi folosit pentru planificarea taskurilor periodice, precum i taskurilor aperiodice.
n acest caz, cu toate c limita superioar este 1. Prin urmare, taskurile pot utiliza procesorul
pn la 100% i totui s fie [Link] special, se folosete urmtoarea teorem:

Teorema. Un set de taskuri periodice este planificabil cu EDF, dac i numai dac


Considerai setul de taskuri periodice ilustrat in fig., pentru care factorul de utilizare a
procesorului este:

Aceasta nseamn c 97% din timpul procesorului este utilizat pentru execuia taskurilor
periodice, iar 3% din timp, procesorul st n starea idle.
Deoarece U > 2(2-1)0.83, planificabilitatea setului de taskuri nu poate fi garantat de
algoritmul RM, n schimb poate fi garantat de algoritmul EDF.
Dup cum se poate vedea i din figur, RM genereaz o ratare a termenului limit la timpul t = 7,
n schimb EDF completeaz toate taskurile cu respectarea termenelor limit.


DMDEADLINE MONOTONIC

In Deadline monotonic (DM) atribuirea prioritilor se bazeaz pe slbiciunile sistemelor bazate
pe constrngerea "perioada este egal cu termenul limit" n cadrul unui sistem de planificare cu
prioriti. statice.

Concret, fiecare task
i
periodic este caracterizat de patru parametri:
Faza
i

Un timp de calcul C
i
pentru cel mai prost caz de execuie (constant pentru toate
instanele)
Un termen limit relativ D
i
(constant pentru toate instanele)
Perioada T
i



Conform algoritmului DM, fiecare activitate i este atribuit o prioritate fix P
i
,
inversproporional cu termen su limit relativ -D
i
.
Astfel, n orice moment, este executat taskul cu cel mai scurt termen limit relativ. Deoarece
termenele limit relative sunt constante, DM folosete prioriti statice.
Ca i RM, DM este utilizat n mod normal cu execuie preemptiv, n care, taskul aflat n execuie
este ntrerupt de un task cu un termen limit mai mic (prioritate mai mare).
Fezabilitatea unui set de taskuri cu termene restrnse ar putea fi garantat prin utilizarea testului
bazat pe de utilizare, prin reducerea perioadelor taskurilor la termenele limite relative:

Pentru a clarifica testul de planificabilitate, considerarm setul de taskuri periodice prezentat n
tabel, activate simultan la momentul t = 0.
Cu scopul de a garanta
4
, trebuie s calculeze R
4
i s verifice dac R
4
D
4
.


Planificarea celor 4 taskuri de ctre DM



Deoarece R
4
D
4
,
4
este planificabil n termenul su limit. Dac R
i
D
i
pentru toate taskurile,
putem concluziona c setul de taskuri este planificabil de DM.
Cap 3

Toi algoritmi prezentai n acest capitol se bazeaz pe urmtoarele ipoteze:
Taskurile periodice sunt planificate cu ajutorul unui algoritm cu prioriti fixe, i
anume, algoritmul RM (Rate Monotonic).
Toate taskurile periodice sunt activate simultan la momentul t = 0 i termenele lor
limite relative sunt egale cu perioadele lor.
Nr. de activri a cererilor aperiodice sunt necunoscute.
Atunci cnd nu este explicit specificat, se presupune c timpul minim dintre dou
activri pentru un task sporadic este egal cu termenul su.
Toate taskurile sunt complet ntreruptibile (nucleul folosit este preemptiv).


PLANIFICAREA N FUNDAL


Cea mai simpl metod de a gestiona un set de taskuri aperiodice soft n prezena taskurilor
periodice este de a le planifica n fundal, atunci cnd nu exist taskuri periodice n execute.
Problema major cu aceast tehnic este faptul c, pentru taskuri periodice mari, timpul de
rspuns al cererilor aperiodice poate fi prea lung pentru anumite aplicaii.
Din acest motiv, planificarea n fundal poate fi adoptat numai n cazul n care activitile
aperiodice nu au constrngeri stricte de timp i ncrcarea cu taskurile periodice nu este mare.
Figura ilustreaz un exemplu n care dou taskuri periodice sunt planificate de ctre RM, n timp
ce dou taskuri aperiodice sunt executate n fundal.


Deoarece factorul de utilizare a procesorului pentru setul de taskuri periodice (U = 0,73) este mai
mic dect limita superioar pentru dou taskuri (U
lub
(2)0,83), taskurile periodice fiind planificabile
de RM.

Avantajul major al planificrii n fundal este simplitatea sa. Aa cum se arat n figur, sunt
necesare dou cozi pentru punerea n aplicare a mecanismului de planificare: una (cu o prioritate mai
mare) dedicat taskurilor periodice i una (cu o prioritate mai mic) rezervat pentru cererile aperiodice.




SERVER DE SONDAJ

Timpul mediu de rspuns a taskurilor aperiodice poate fi mbuntit cu respectarea planificrii n
fundal, prin utilizarea unui server, care este un task periodic al crei scop este acela de a deservi
cererile aperiodice ct mai curnd posibil.
Ca orice activitate periodic, un server este caracterizat printr-o perioad T
s
i un timp de calcul
C
s
- numit capacitatea sau bugetul serverului.
n general, serverul este planificat cu acelai algoritm folosit pentru taskurile periodice, i o dat
activat servete cererile aperiodice n limita bugetului su.
Ordonarea cererilor aperiodice nu depinde de algoritmul de planificare utilizat pentru taskurile
periodice i se poate face dup momentul activrii, timpul de calcul, termenul limit sau orice alt
parametru.
Serverul de sondaj (PS Polling Server) este un algoritm bazat pe o astfel de abordare.
La intervale regulate, egale cu perioada T
s
, PS devine activ i servete cererile aperiodice n
ateptare n limita capacitii sale C
s
.
Dac nu sunt n ateptarea cererilor aperiodice, PS se autosuspend pn la nceputul urmtoarei
perioade, i bugetul alocat iniial pentru serviciul aperiodic este eliberat i cedat taskurilor periodice.
Reinei c, dac o cerere aperiodic este activat dup ce serverul s-a autosuspendat, aceasta
trebuie s atepte pn la nceputul urmtoarei perioade, atunci cnd capacitatea serverul este
alimentat la valoarea sa maxim.


Figura anterioar ilustreaz un exemplu de serviciu aperiodic obinut prin intermediul unui server
de sondaj planificat de RM.
Cererile aperiodice sunt raportate pe al treilea rnd, n timp ce al patrulea rnd prezint
capacitatea de serverul ca o funcie de timp.
Numerele de lng sgeile indic timpul de calcul asociat cererilor aperiodice.
n exemplul prezentat n figura anterioar, SP are o perioad de T
s
= 5 i o capacitate C
s
=2, deci
se execut cu o prioritate intermediar raportat la celelalte taskuri periodice.
La momentul t = 0, procesorul este atribuit taskului
1
, care este taskul cu cea mai mare cu
prioritate n conformitate cu RM.


Cu toate acestea, deoarece nu sunt n curs cereri aperiodice, serverul se autosuspend i
capacitatea sa este folosit de taskurile periodice.
Ca o consecin, cererea care ajunge la momentul t = 2 nu poate primi serviciul imediat, trebuie
s atepte pn la nceputul urmtoarei perioade a serverului (t = 5).
n acest moment, capacitatea este alimentat la valoarea sa total (C
s
= 2) i este folosit pentru a
servi taskul aperiodic pn la finalizare.
Reinei c, deoarece capacitatea a fost consumat n totalitate, nici o alt cerere aperiodice nu
poate fi servit n aceast perioad, astfel serverul devine inactiv.
A doua cerere aperiodic primete acelai tratament.
Cu toate acestea, deoarece a doua cerere folosete doar jumtate din capacitatea serverului,
jumtatea rmas este eliberat, deoarece nu sunt n curs alte taskuri aperiodice.
De asemenea, reinei c la momentul t = 16, a treia cerere aperiodic este ntrerupt de taskul
1
i capacitatea serverului este pstrat.


Analiza planificabilitii


De fapt, independent de numrul de taskuri aperiodice gestionate de server, un timp maxim egal
cu C
s
este dedicat cererilor aperiodice la fiecare perioad a serverului.
Ca o consecin, factorul de utilizare al procesorului de ctre PS este de U
s
= C
s
/T
s
, i prin urmare
planificabilitatea unui set de n taskuri periodice cu factorul de utilizare a procesorului U
p
poate fi
garantat n cazul n care


n cazul n care taskurile periodice (inclusiv PS) sunt planificate de ctre RM, testul de
planificabilitate devine



Reinei c pot fi create i executa simultan mai multe servere de sondare pe diferite
seturi de taskuri aperiodice.
De exemplu, un server cu prioritate mare ar putea fi rezervat pentru un subset de taskuri
aperiodice importante, n timp ce un server cu prioritate mic ar putea fi folosit pentru a trata cererile
mai puin importante.
Pentru a simplifica calculul, mai nti sunt stabilite relaiile dintre cele mai defavorabile cazuri
pentru taskuri i limita este calculat fa de modelul corespunztor celui mai defavorabil caz.


Cap 4

Server cu schimb de prioriti dinamice

Serverul cu schimb de prioriti dinamice (DPE Dynamic Priority Exchange) este o
tehnic de servire a cererilor aperiodice propus de Spuri i Buttazzo.
Ideea principal a algoritmului este de a lsa serverul s schimbe timpul su de execuie cu timpul
de execuie a taskurilor cu prioritate sczut (in EDF acest lucru nseamn un termen limit mai lung),
n cazul n care nu exist n ateptare cereri de aperiodice.
n acest fel, timpul de execuie a serverului este schimbat cu taskurile periodice i niciodat
pierdut.
Timpul de execuie este pur i simplu pstrat, chiar dac la o prioritate mai mic, i poate fi
recuperat mai trziu, atunci cnd solicitrile aperiodice intra n sistem.
Algoritmul este definit dupa cum urmeaza:
Serverul DPE are o perioada Ts specifica si o capacitata Cs
La inceputul fiecarei perioade, capacitatea serverului aperiodica este setata la C
d
s
, unde d este
termenul limita al perioadei curente a serverului


Un exemplu de planificare produs de algoritmul DPE este ilustrat n Figura din slide-ul
urmtor.

Se consider dou taskuri periodice, 1 si 2, cu perioade T1 = 8 i T2 = 12 i timpii de execuie
pentru cel mai defavorabil caz C1 = 2 i C2 = 3, i un server de DPE cu perioada Ts = 6 i
capacitatea Cs = 3, sunt prezente n sistem.








Teorema. (Spuri, Buttazzo) Dat fiind un set de taskuri periodice cu utilizarea procesorului Up si
un server de DPE cu utilizarea procesorului Us, ntregul set este planificabil de EDF dac i numai
dac
Up+Us1

Server sporadic dynamic

Serverul sporadic dinamic (DSS) este o strategie de servire a taskurilor aperiodice. La fel ca alte
servere, DSS se caracterizeaz printr-o perioad Ts i o capacitate Cs, care este pstrat pentru
eventualele solicitri aperiodice.
Spre deosebire de ali algoritmi cu servere, capacitatea nu este iniializat la valoarea integrala la
nceputul fiecrei perioade a serverului, numai atunci cnd aceasta a fost consumat.
Momentele n care sunt realizate reaprovizionrile sunt alese n funcie de o regul de
reaprovizionarea care permite sistemului s obin utilizarea deplin a procesorului.
Figura urmtoare ilustreaz o planificare EDF obinut pe un set de taskuri format din dou
taskuri periodice cu perioadele T1 = 8, T2 = 12 i timpi de execuie C1 = 2, C2 = 3, i un DSS cu
perioada Ts = 6 i capacitate Cs = 3.


La momentul t = 0, capacitatea serverului este iniializat la valoarea complet Cs = 3.
Deoarece nu exist cereri aperiodice n ateptare, procesorul este atribuit taskului 1, care are cel
mai apropiat termen limit.
La momentul t = 3, este activat o cerere aperiodic cu timpul de execuie 2 sosete, deoarece
Cs> 0, primul moment de reaprovizionarea a capacitii i termenul limit a serverului sunt stabilite la
RT1=dS=3+ Ts = 9.
ds fiind cel mai apropiat termen limit, DSS devine taskul cu cea mai mare prioritate n sistem,
iar cererea este servit pn la finalizare.
La momentul t = 5, cererea este finalizat i nu exist alte cereri aperiodice n curs, deci, o
reaprovizionarea cu dou uniti de timp este programat s aib loc la momentul RT1 = 9.
La momentul t = 6, a doua cerere aperiodic este activat.
Fiind c Cs>0, urmtoare reaprovizionarea i noul termen limit a serverului sunt stabilite la RT2
= dS = 6 + T = 12.
Din nou, serverul devine taskul cu cea mai mare prioritate n sistem (presupunem c legturile
dintre taskuri sunt ntotdeauna rezolvate n favoarea serverului) i cererea primete serviciul imediat.
De data aceasta capacitatea are disponibil o singur unitate de timp, i acesta devine epuizat la
momentul t = 7.
Prin urmare, o reaprovizionarea de o unitate de timp este programat pentru RT2 = 12, i cererea
aperiodic este ntrziat pn la t = 9, atunci cnd Cs devine din nou mai mare dect zero.
La momentul t = 9, urmtoare reaprovizionare i noul termen limit a serverului sunt setate cu
RT3 = dS = 9 + T = 15.
Ca i nainte, DSS devine taskul cu cea mai mare prioritate, astfel, cererea aperiodic primete
serviciul imediat si se termina la momentul t = 10.
O reaprovizionare a unei uniti este programat s aib loc la momentul RT3 = 15.
Reinei c att timp ct capacitatea serverul este mai mare dect zero, toate cererile aperiodice n
ateptare sunt executate cu acelai termen.
n figura se ntmpl acest lucru la momentul t = 14, cnd ultimele dou cereri aperiodice sunt
deservite cu aceleai termen limit dS=20.
Teorema (Spuri, Buttazzo) Avnd dat un set de n taskuri periodice cu utilizarea procesorului Up
si un server sporadic dinamic cu utilizarea procesorului Us, ntregul set este planificabil dac i numai
dac
Up+Us1
Cap 5
n acest capitol se folosesc urmtoarele notaii:

Bi timpul maxim de blocare a taskului i..
zi,k o seciune critic a taskului i controlat de semaforul Sk.
Zi,k cea mai lung seciune critic a taskului i controlat de semaforul Sk.
i,k durata seciuni critice Zi,k.

indic faptul c seciunea critic

este inclus n totalitate n seciunea critic

.
i reprezint setul de semafoare folosit de taskul i.
i,j reprezint setul de semafoare asociate taskului de prioritate mai mic j i care pot bloca
taskul i.
i,j reprezint un set care conine cele mai lungi seciuni critice care pot bloca un task i,
seciuni critice accesate de taskul i cu prioritate mai mic. Acest set este:


i reprezint un set care conine toate seciunile critice cele mai lungi care pot bloca un task i.
Acest set este:



Definirea protocolului de motenire a prioritilor

Blocarea direct. Ea apare atunci cnd un task cu prioritate mai mare ncearc s dobndeasc o
resursa deja deinut de un task cu o prioritate mai mic. Blocarea direct este necesar pentru a
asigura consistena resurselor partajate.
Blocarea indirect. Ea apare atunci cnd un task cu prioritate medie este blocat de un task cu
prioritate redus, care a motenit o prioritate mai mare la un task pe care l blocheaz direct. Blocarea
indirect este necesar pentru a evita inversiunea de prioritate pentru un timp nedeterminat.
EX

Aici, taskul
1
folosete o resurs R
a
controlat de un semafor S
a
, taskul
2
folosete o resurs R
b

controlat de un semaforS
b
, iar taskul
3
utilizeaz ambele resurse prin intermediul unor seciuni
imbricate (S
a
este blocat primul).
La momentul t
1
, taskul
2
ntrerupe taskul
3
n prin intermediul unei seciuni critice imbricate,
prin urmare, n momentul t
2
, atunci cnd taskul
2
ncearc s blocheze semaforul S
b
, taskul
3

motenete prioritatea sa, P
2
.
n mod similar, n momentul t
3
, taskul
1
ntrerupe taskul
3
n cadrul aceleai seciunii critice, i
n momentul t
4
, atunci cnd taskul
1
ncearc s blocheze semaforul S
a
, taskul
3
motenete prioritatea
P
1
.
La momentul t
5
, cnd taskul
3
deblocheaz semaforul S
b
, taskul
2
este trezit, dar taskul
1
este
nc blocat, prin urmare, taskul
3
i continua execuia cu prioritatea taskului
1
.
La momentul t
6
, taskul
3
deblocheaz semaforul S
a
i, din moment ce nu sunt blocate alte
taskuri, taskul
3
reprimete prioritate sa original P
3
.
Un exemplu de motenire tranzitiv a prioriti este prezentat n slide-ul urmtor.

Aici, taskul
1
folosete o resurs R
a
controlat de semaforul S
a
, taskul
3
folosete o resurs R
b

controlat de semaforul S
b
, iar taskul
2
utilizeaz ambele resursele prin intermediul unor seciuni
imbricate (S
a
controleaz seciunea critic extern i S
b
controleaz seciunea critic intern).
La momentul t
1
, taskul
3
este ntrerupt n cadrul seciunii sale critice de taskul
2
, care la rndul
su intr prima seciune critic (cea controlat de S
a
), iar n momentul t
2
este blocat de semaforul S
b
.
Ca o consecin,
3
i reia execuia i motenete prioritatea P
2
.
La momentul t
3
, taskul
3
ntrerupt de taskul
1
, care la momentul t
4
, ncearc s obin semaforul
R
a
.
Deoarece S
a
este blocat de taskul
2
, taskul
2
motenete prioritatea P
1
.
Cu toate acestea, taskul
2
este blocat de taskul
3
, prin urmare, pentru tranzitivitate, taskul
3

motenete prioritatea P
1
prin intermediul taskului
2
.
Cnd taskul
3
prsete seciunea sa critic, nu sunt blocate alte taskuri de ctre aceasta; astfel el
reprimete prioritatea sa P
3
. P
1
este acum prioritatea motenit de taskul
2
, care blocheaz n
continuare taskul
1
pn la momentul t
6
.

Determinarea timpului de blocare a unui task

n conformitate cu Lema 4-3, un task
i
poate fi blocat cel mult o dat de fiecare task din
cele l
i
taskuri cu prioriti inferioare. Prin urmare, pentru fiecare task
j
cu prioritate mai mic
care poate bloca taskul
i
, se adun seciunile critice cele mai lungi care pot bloca taskul
i
.
Aceast sum, notat B
i
l
, este:


n conformitate cu Lema 4-4, un task
i
poate fi blocat cel mult o dat de fiecare semafor din
cele si semafoare care pot bloca taskul
i
. Prin urmare, pentru fiecare semafor S
k
care poate bloca taskul

i
, se adun seciunile critice cele mai lungi care pot bloca taskul
i
. Aceast sum, notat B
i
s
, este:


n conformitate cu Teorem 4-1, taskul
i
poate fi blocat pentru cel mult
i
=min(l
i
,s
i
) seciuni
critice. Prin urmare, B
i
poate fi calculat ca minimul dintre


Identificarea seciunilor critice care pot bloca un task poate fi mult simplificat dac pentru
fiecare semafor S
k
vom defini un plafon C(S
k
), egal cu cea mai mare prioritate a taskurilor care folosesc
S
k
:


Prin urmare, se poate defini urmtoarea lem.
Folosind rezultatele din Lema 4-5, parametri de blocare

pot fi determinai ca:


Reinei c factorul de blocare B
n
este ntotdeauna egal cu zero, deoarece nu exist taskuri cu o
prioritate mai mic dect P
n
, care poate bloca
n
.
Pentru a ilustra algoritmul prezentat mai sus, considerm exemplul prezentat n Tabelul 4-1, n
cazul n care patru taskuri partajeaz trei semafoare.
Pentru fiecare task
i
, durata celei mai lungi seciunii critice dintre cele care folosesc acelai
semafor S
k
se noteaz cu
i,k
i prezentate n tabel.
i,k
= 0 nseamn c taskul
i
nu utilizeaz semaforul
S
k
. Plafoanele semafor sunt indicate n paranteze.

Conform algoritmului prezentat, factorii de
blocare a taskurilor sunt calculai dup cum
urmeaz (reinei c se scade din fiecare durat o
unitate de timp):

= 8+7+5 = 20

= 8+5 = 15 ==>B
1
= 15

= 7+5 = 12

= 7+6+3 = 16 ==>B
2
= 12

= 5

= 5+4+3 = 12 ==>B
1
= 5

= 0
Pentru a nelege de ce algoritmul este pesimist, reinei c

este calculat prin adugarea duratei


a dou seciuni critice controlate de semaforul S
1
, care nu pot aprea niciodat n practic.


Definirea protocolul cu plafonarea prioritilor

Exemplu
Cu scopul de a ilustra protocol cu plafonarea prioritii, s considerm trei taskuri
1
,
2
i
3

avnd prioritile ordonate descresctor. Taskul cu cea mai mare prioritate
1
acceseaz succesiv dou
seciuni critice controlate de semafoarele S
a
i S
b
; taskul
2
acceseaz doar o seciune critic controlat
de semaforul S
c
; iar taskul
3
folosete semaforul S
c
i apoi face un acces imbricat la semaforul S
b
.
Din necesarul de resurse a taskurilor, toate semafoarele au atribuite urmtoarele prioriti plafon:
{


Acum, s presupunem c evenimentele evolueaz aa cum este ilustrat n figura urmtoare:

La momentul t
0
, taskul
3
este activat, iar din moment ce este singurul task gata de execuie, el
trece n starea de execuie, iar mai trziu blocheaz semaforul S
C
.
La momentul t
1
, taskul
3
devine gata de execuie i ntrerupe taskul
3
.
n momentul t
2
, taskul
2
ncearc s blocheze semaforul S
C
, dar este blocat de protocol, deoarece
P
2
nu este mai mare dect C(S
C
). In acest moment taskul
3
motenete prioritatea taskului
2
i i reia
execuia.
La momentul t
3
, taskul
3
intr cu succes ntr-o seciune critic imbricat prin blocarea
semaforului S
B
. Reinei c taskului
3
i este permis s blocheze semaforul S
B
, deoarece nu sunt
semafoare blocate de alte taskuri.
La momentul t
4
, n timp ce taskul
3
este n stare de execuie cu prioritatea p
3
= P
2
, taskul
1

devine gata de execuie i ntrerupe taskul
3
deoarece P
1
>p
3
.
La momentul t
5
, taskul
1
ncearc s blocheze semaforul S
A
, care nu este blocat alt task.
Cu toate acestea, taskul
1
este blocat de protocol, deoarece prioritatea sa nu este mai mare dect
C(S
B
), care este cea mai mare prioritate plafon dintre toate semafoarele care sunt blocate de alte taskuri.
Deoarece semaforul S
B
este blocat de taskul
3
, taskul
3
motenete prioritatea taskului
1
i i
reia execuia.

La momentul t
6
, taskul
3
prsete seciunea critic imbricat, deblocheaz semaforul S
B
, i
revine la prioritatea p
3
= P
2
. La acest punct, P
1
>C(S
C
), prin urmare, taskul
1
ntrerupe taskul
3
i intr
n starea de execuie pn la finalizarea sa.
La momentul t
7
, taskul
1
este finalizat, iar taskul
3
i reia execuia cu prioritatea p
3
=P
2
.
La momentul t
8
, taskul
3
prsete seciunea critic, elibereaz semaforul S
C
i prioritatea
taskului
3
revine la prioritatea sa nominal P
3
. n acest moment, taskul
2
ntrerupe taskul
3
i trece n
tarea de execuie pn la finalizarea sa.
La momentul t
9
, taskul
2
este finalizat, astfel,
3
i reia execuia.
Reinei c protocolul cu plafonarea prioritii introduce o a treia form de blocare, numit
blocarea plafon n plus fa de blocarea direct i blocarea indirect provocate de protocolul cu
motenirea prioritilor.
Acest lucru este necesar pentru a evita punctele moarte i blocarea nlnuit. n exemplul
anterior, o blocare plafon este experimentat de taskul
1
la momentul t
5
.

Determinarea timpului de blocare a unui task

S lum n considerare acelai exemplu ilustrat pentru
protocolul cu motenirea prioritilor (vezi Tabelul 5-1).
Conform ecuaiei (5-4), avem:


Prin urmare, pe baza ecuaiei (5-5), factorii de blocare a taskurilor sunt calculate dup cum
urmeaz:



Plafonarea resursei

Fiecare resurs R
k
(sau semafor S
k
) este atribuit un plafon C
Rk
(n
k
) egal cu cel mai nalt nivel
preemiune al taskurilor care ar putea fi blocate pe resursa R
k
, dac depete cererea lor maxim.
Prin urmare, plafonul de resurse este o valoare dinamic, care este o funcie de unitile resursei
R
k
, care sunt disponibile n prezent.
Asta este determinat folosind urmtoarea relaie:


n cazul n care sunt disponibile toate unitile resursei R
k
(dac n
k
= N
k
) atunci C
Rk
(N
k
)=0.
Pentru a clarifica mai bine acest concept, luai n considerare urmtorul exemplu, n care trei
taskuri (
1
,
2
,
3
) partajeaz trei resurse (R
1
, R
2
, R
3
), formate din trei, una, respectiv trei uniti,
Toi parametrii taskurilor - termene limit relative, nivelurile de preemiune i cerinele de resurse
- sunt prezentate n Tabelul 6-1.

Pe baza acestor cerine, plafoanele actuale ale resurselor
n funcie de numrul de uniti disponibile n
k
sunt prezentate
n Tabelul 6-2. (liniuele indic cazuri imposibile).



De exemplu, s calculm plafonul resursei R
1

atunci cnd doar dou uniti (din trei) sunt
disponibile.
Din Tabelul 6-2 vom vedea c singurul task care
ar putea fi blocat n aceast condiie este
3
, deoarece
este nevoie de trei uniti a resursei R
1
, prin urmare, C
R1
(2) =
3
= 1.
n cazul n care este disponibil o singur unitate a resursei R
1
, taskurile care ar putea fi blocate
sunt
2
i
3
, prin urmare, C
R1
(1) = max (
2
,
3
) = 2.
n cele din urm, n cazul n care nu este disponibil nici una dintre unitile resursei R
1
, toate
cele trei taskuri ar putea fi blocate pe R
1
, prin urmare, C
R1
(0) = max (
1
,
2
,
3
) = 3.

Exemplu
Cu scopul de a ilustra modul n care funcioneaz SRP, considerm setul de taskuri deja descris
n Tabelul 6-1.
Structura taskurilor este prezentat n Figura 6-2.
n cazul n care directiva wait(R
k
,r) reprezint cererea de r uniti a resursei R
k
, iar signal(R
k
)
reprezint eliberarea lor.
Plafoanele actuale ale resurselor au fost deja prezentate n Tabelul 6-2, iar o posibil planificare
EDF pentru acest set de taskuri este prezentat n Figura 6-3.
n aceast figur, graficul prezint variaia prioriti plafon a sistemului, iar numerele din timpul
planificrii reprezint indici de resurse.

Figura [Link] taskurilor in exemplul SRP



Figura 6-3. Exemplu de planificare cu EDF i SRP. Numerele din zona de execuie a
taskurilor reprezint indecii resurselor.
La momentul t
0
, taskul
3
ncepe execuia i plafonul sistemului este zero, deoarece toate
resursele sunt complet disponibile.
Atunci cnd taskul
3
intr n prima seciune critic, are nevoie de o unitate a resursei R
2
,
astfel plafonul sistemului este setat la cel mai nalt nivel preemiune dintre taskurile care ar
putea fi blocate pe R
2
(a se vedea Tabelul 6-2), care este
s
=
2
= 2. Ca o consecin, taskul
2

este blocat de testul de preceden i taskul
3
i continu execuia.
Reinei c atunci cnd taskul
3
intr ntr-o seciune critic imbricat (lund toate
unitile resursei R
1
), plafonul sistemului este ridicat la
s
=
1
= 3.
Acest lucru determina ca taskul
1
s fie blocat de testul de preceden.
Imediat ce taskul
3
elibereaz R
1
(n momentul t
2
), plafonul sistemului devine
s
= 2;
astfel, taskul
1
ntrerupe taskul
3
i ncepe execuia.
Reinei c odat ce taskul
1
este pornit, acesta nu este blocat n timpul execuiei sale,
deoarece starea
1
>
s
garanteaz faptul c toate resursele necesare taskului
1
sunt disponibile.
Imediat ce taskul
1
se termin, taskul
3
i reia execuia i elibereaz resursa R
2
.
Imediat ce resursa R
2
este eliberat, plafonul sistemului revine la zero i taskul
2
poate
ntrerupe taskul
3
.
Din nou, o dat
2
este pornit, toate resursele de care are nevoie sunt disponibile, astfel
taskul
2
nu este niciodat blocat.







Partajarea stivei de executie

De exemplu, ia n considerare patru taskuri 1, 2, 3, i 4, cu un nivel de preemiune 1, 2, 2, i
3v (3 fiind cel mai nalt nivel preemiune).
Figura din slideul urmator ilustreaz o posibil evoluie a stivelor, presupunnd c fiecare task are
alocat o stiv proprie, a crei mrime este egal cu cerina maxim.


n momentul t1, taskul 1 ncepe execuia, la momentul intr n execuie 2 (ntrerupe taskul 1) i
se finalizeaz n momentul t3, permind taskului 1 si reia execuia.
n momentul t4, taskul 1 este ntrerupt de taskul 3, care, la rndul su, este ntrerupt de taskul 4
la momentul t5.
La momentul t6 taskul 4 se finalizeaz i taskul 3 i reia execuia.
La momentul t7, taskul 3 se finalizeaz i 1 i reia execuia.
Reinei c vrful stivei fiecrui task variaz n timpul execuiei, n timp ce regiunea de stocare
rezervat pentru fiecare stiva rmne constant i corespunde distanei dintre dou linii orizontale.
n acest caz, zona de memorie total care trebuie s fie rezervat este egal cu suma regiunilor
stivei dedicate pentru fiecrui task.
Cu toate acestea, n cazul n care toate sunt independente sau folosesc politica stivei de resurse
pentru a accesa resursele partajate, atunci pot partaja o singur stiv.
n acest caz, atunci cnd un task este ntrerupt de un task , taskul i menine stiva sa i stiva
taskului este aloc pe stiva taskului .
Figura urmtoare prezint o posibil evoluie a setului precedent de taskuri, cnd o singur stiv
este alocat la toate taskurile.


Reinei c spaiul de stiv ntre cele dou linii orizontale superioare (care este echivalent spaiul
de stiv dintre 2 i 3) nu mai este necesar, deoarece 2 i 3 au acelai nivel de preemiune, astfel
nct ele nu pot ocupa spaiul alocat stivei n acelai timp.
n general, cu ct este mai mare numrul de taskuri cu acelai nivel de preemiune, cu att este
mai mare economia cu spaiul alocat stivei.


Analiza planificabilitatii

Testul Liu si Layland pentru algoritmul RM (Rate Monotonic). Un set de taskuri periodice cu
factori blocare i termene limit relative egale cu perioadele este planificabil de RM n cazul n care


Testul Liu si Layland pentru EDF. Un set de taskuri periodice cu factori de blocaj i termene
relative egale cu perioadele este planificabil de EDF n cazul n care

S-ar putea să vă placă și