Schedulazione task aperiodici priorita` statiche - Robotica
Schedulazione task aperiodici priorita` statiche - Robotica
Schedulazione task aperiodici priorita` statiche - Robotica
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Corso di Sistemi Real-time<br />
<strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a priorita’<br />
<strong>statiche</strong><br />
Tullio Facchinetti<br />
<br />
20 dicembre 2011<br />
00:26<br />
http://robot.unipv.it/toolleeo<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri
Task <strong>aperiodici</strong><br />
RM<br />
τ1<br />
τ2<br />
τ3<br />
0 5 10 15 20 25<br />
2 3 1<br />
quando schedulare le richieste aperiodiche<br />
garantendo i vincoli dei <strong>task</strong> periodici?<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri
Task <strong>aperiodici</strong><br />
Ji<br />
Ci<br />
0 5 10 15 20 25 30 t<br />
ri,1 ri,2 ri,3<br />
<strong>task</strong> <strong>aperiodici</strong><br />
<strong>task</strong> sporadici<br />
ri,k+1 > ri,k<br />
ri,k+1 ≥ ri,k +Ti<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri
Background scheduling<br />
τ1<br />
τ2<br />
τ3<br />
ape<br />
0 5 10 15 20 25<br />
• la schedulazione dei <strong>task</strong> <strong>aperiodici</strong> avviene quando il<br />
processore e’ idle<br />
• tecnica piu’ semplice e immediata<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri
Polling Server<br />
assunzioni:<br />
schedulazione di <strong>task</strong> <strong>aperiodici</strong> soft<br />
insieme a <strong>task</strong> periodici hard<br />
• i <strong>task</strong> periodici sono schedulati con RM<br />
• deadline uguali al periodo<br />
• per i <strong>task</strong> <strong>aperiodici</strong> tempi di arrivo sconosciuti e tempi di<br />
calcolo noti a priori<br />
• tutti i <strong>task</strong> sono preemptabili<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri
Polling Server<br />
• periodo Ts e capacita’ Cs<br />
• ogni Ts unita’ di tempo la capacita’ viene ricaricata al<br />
massimo valore Cs<br />
• ogni istante di esecuzione di <strong>task</strong> <strong>aperiodici</strong> consuma una<br />
unita’ di capacita’<br />
• se non ci sono <strong>task</strong> <strong>aperiodici</strong> in attesa, il server si<br />
auto-sospende e azzera la capacita’<br />
l’azzeramento della capacita’ puo’ causare la presenza di<br />
idle time non sfruttabili dai <strong>task</strong> <strong>aperiodici</strong> anche se la<br />
coda aperiodica non e’ vuota<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri
Polling Server<br />
Cs<br />
τ1<br />
τ2<br />
aper<br />
2<br />
1<br />
0<br />
2 1 2 1<br />
0 2 4 6 8 10 12 14 16 18 20 22 24<br />
τ1 = (1,4) τ2 = (2,6) Cs = 2 e Ts = 5<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri
Analisi della schedulabilita’<br />
dal punto di vista della schedulabilita’ un Polling Server si<br />
comporta come un <strong>task</strong> periodico di periodo Ts e WCET Cs<br />
n<br />
Ci<br />
Ti<br />
i=1<br />
Up +Us ≤ Ulub(n +1)<br />
+ Cs<br />
Ts<br />
nel caso di m Polling Server<br />
Up +<br />
m<br />
j=1<br />
<br />
≤ (n+1) 2 1/(n+1) <br />
−1<br />
Usj ≤ Ulub(n +m)<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri
Sporadic Server<br />
parametri di definizione e di funzionamento:<br />
• periodo Ts<br />
• massimo budget Cs<br />
• priorità Ps statica (es., fissata in base a RM)<br />
siano<br />
• C(t) la capacità corrente del server<br />
• Pexe la priorità del <strong>task</strong> in esecuzione<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri
Sporadic Server: funzionamento<br />
il funzionamento dello Sporadic Server é definito come segue:<br />
• il server é detto attivo all’istante t quando Pexe ≥ Ps e<br />
C(t) > 0<br />
• il server é detto idle all’istante t quando Pexe < Ps oppure<br />
C(t) = 0<br />
• inizialmente il server é idle e C(0) = Cs<br />
• quando il server diviene attivo all’istante t1 viene fissato<br />
l’istante di ricarica pari a tr = (t1 +Ts)<br />
• quando il server diviene idle all’instante t2 > t1 la quantità di<br />
ricarica viene fissata pari alla capacità Cr consumata<br />
nell’intervallo [t1,t2)<br />
• all’istante tr la capacità viene ricaricata della quantità Cr<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri
Sporadic Server: esempio<br />
Cs<br />
τ1<br />
τ2<br />
aper<br />
SS<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
2 2<br />
0 2 5 6 8 10 12 14 16 18 20 22 24<br />
τ1 = (1,5) τ2 = (4,15) Cs = 5 e Ts = 10<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri<br />
+2<br />
+2
SS: analisi della schedulabilita’<br />
• uno Sporadic Server non si comporta come un <strong>task</strong> periodico<br />
n<br />
Ci<br />
Ti<br />
i=1<br />
≤ n<br />
2<br />
Us +1<br />
1/n<br />
−1<br />
• data Up che rappresenta l’utilizzazione dei <strong>task</strong> periodici, la<br />
dimensione massima che garantisce la schedulabilita’ dei<br />
periodici e’<br />
U ∗ SS<br />
<br />
Up<br />
= 2<br />
n +1<br />
−n −1<br />
Tullio Facchinetti Corso di Sistemi Real-time <strong>Schedulazione</strong> di <strong>task</strong> <strong>aperiodici</strong> a pri