Schedulazione real-time Flashcards
Parametri che caratterizzano un problema di schedulazione
J = {Ji } : insieme dei processi aperiodici
tau = { tau i } : insieme dei processi periodici
g : grafo dei vincoli di precedenza
M : misura di prestazione
Misure di prestazione
- Ammissibilità
- Minimizzazione Lmax
- Minimizzazione Nlate
Lmax
Lateness massima: massimo tra le lateness Li di ogni processo i-esimo
Li = fi - di (tempo di fine - deadline)
Nlate
Numero di processi che terminano oltre la propria deadline
Funzione h(t) e insieme delle possibili soluzioni
- Dato un problema di schedulazione, la funzione h(t) restituisce, per ogni istante di tempo, il processo da eseguire.
- Una qualsiasi soluzione del problema si dice schedulazione.
- Tra tutte le schedulazioni, ne esistono alcune che soddisfano i vincoli temporali, dette schedulazioni ammissibili.
Un problema che ammette una schedulazione ammissibile si dice problema schedulabile. - Tra le schedulazioni ammissibili, ce ne sono alcune ottime per una certa misura di prestazione
Problemi schedulabili: implicazioni
MIN Lmax - > Schedulazione ammissibile ( Lmax < = 0 )
MIN Nlate - > Schedulazione ammissibile ( Nlate = 0 )
MIN Lmax - > MIN Nlate
Non valgono le implicazioni inverse
Problemi non schedulabili: implicazioni
MIN Lmax - > Lmax > 0
MIN Nlate - > Nlate > 0
Nessuna relazione tra MIN Lmax e MIN Nlate
Caratteristiche di problemi e algoritmi
Algoritmo Preemptive - Non Preemptive :
Dipende dal sistema operativo e dalla natura del problema; in alcuni casi la preemption non è necessaria
Problema Online - Offline :
In un problema Online non si conosce nulla dei processi prima dell’attivazione, i processi si attivano a Runtime. In un certo istante di tempo un problema può essere schedulabile, l’istante successivo no.
In un problema offline a priori si conosce tutto sui processi e si può già sapere se un problema è schedulabile
Algoritmo Dinamico - Statico :
In un algoritmo statico i processi hanno priorità definita a priori che non può essere cambiata. In un algoritmo dinamico la priorità assegnata ai processi può essere cambiata durante l’esecuzione.
Algoritmo Ottimale - Euristico :
Un algoritmo ottimale trova sempre la soluzione ottima. Un algoritmo euristico non dà la garanzia di trovare una soluzione ottima.
Algoritmi per la schedulazione di processi aperiodici
- Attivazione sincrona:
- Senza vincoli di precedenza: EDD (Earliest Due Date)
- Con vincoli di precedenza: LDF (Latest Deadline First) - Attivazione asincrona:
a. Preemptive:
- Senza vincoli di precedenza: EDF (Earliest Deadline First)
- Con vincoli di precedenza: EDF*
b. Non-Preemptive:
- Senza vincoli di precedenza: Batley
- Con vincoli di precedenza: Spring
EDD
Earliest Due Date
- Problema: n processi aperiodici, attivazione sincrona, senza vincoli di precedenza
- Algoritmo: I processi vengono eseguiti in ordine non decrescente di deadline
- Risultato: Minimizzazione di Lmax - > Ottimo per MIN Lmax
EDF
Earliest Deadline First
- Problema: n processi aperiodici, attivazione asincrona, senza vincoli di precedenza, con preemption
- Algoritmo: Ad ogni quanto temporale viene eseguito il processo ready con la deadline più piccola
- Proprietà: Ottimo per minimizzazione di Lmax
- Complessità: è un ordinamento di processi ready, se si usa un quicksort è O(n*log2(n))
EDF*
- Problema: n processi aperiodici, attivazione asincrona, con vincoli di precedenza
- Algoritmo:
passo 1) problema trasformato in un problema ausiliario senza vincoli di precedenza, equivalente al primo
passo 2) si applica EDF al problema ausiliario
Modifica del problema:
- Aumento tempo di attivazione
- Diminuisco deadline
a1* = MAX { a1, ai* + Ci } Vi diretto successore d1* = MIN { d1, dk* - Ck } Vk diretto predecessore
Batley/Spring
- Problema: n processi aperiodici, attivazione asincrona, senza preempion
- Sistemi senza preemption : primitivi, o problemi con attività non decomponibili
- Sequenza di processi, ognuno dei quali eseguito dall’inizio alla fine
- Approccio Branch and Bound:
- Scelto primo processo da eseguire (in ordine ad esempio di numerazione)
- Riporto istante in cui mi trovo dopo la sua esecuzione
- Se ho violato delle scadenze torno indietro, altrimenti proseguo
- Complessità O(2^n) , non è possibile avere complessità polinomiale
- Si può migliorare velocità media di soluzione applicando dei criteri di scelta, ad esempio tempo di arrivo e deadline; in ogni caso, però, nel caso peggiore la soluzione si trova in tempo esponenziale
- Si può decidere di restituire una soluzione entro un tempo prefissato, anche se questa è non accettabile
- > Algoritmo euristico
Fattore di utilizzazione
- In problemi con processi periodici, non si può simulare la schedulazione per sapere se un problema è schedulabile
- Un processo può essere schedulabile in una data attivazione, può non esserlo più nell’attivazione successiva
- Si potrebbe simulare la schedulazione in un tempo pari al minimo comune multiplo dei periodi, ma questo approccio richiede, nel caso peggiore, un tempo pari al prodotto di tutti i periodi, troppo lungo
- Si introduce quindi il fattore di utilizzazione U per un problema P:
U(P) = ∑ Ci/Ti
Che rappresenta quanto il processo i utilizza rispetto alla durata del suo periodo - Se U > 1 , il problema è non schedulabile, indipendentemente dall’algoritmo
- In base all’algoritmo utilizzato, esiste una soglia massima di U, al di sotto della quale un problema è schedulabile con quell’algoritmo, mentre al di sopra di tale soglia, e con U < 1 , non si può concludere nulla riguardo alla schedulabilità.
Algoritmi schedulazione processi periodici
- Priorità statica
- Deadline = periodi: RM Rate Monotonic
- Deadline < periodi: DM Deadline Monotonic
- Priorità dinamica: EDF
Def sezione critica
Intervallo di tempo lungo da 0 al massimo tra i periodi, nel quale tutti i processi partono con la stessa fase
RM
- Rate Monotonic
- Problema: n processi periodici, Ti = Di, priorità fissa
- Algoritmo: RM assegna ad ogni processo una priorità pari a 1/Ti, ed esegue preferendo processi a priorità maggiore.
- Proprietà: RM è ottimo per ammissibilità tra tutti gli algoritmi statici quando tutte le fasi sono uguali
Condizione di Lyu e Layland
- Condizione sufficiente per la schedulabilità con RM
- U(P) < = N*(2^1/N - 1)