Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di...

25
Principi di Schedulazione in tempo reale 1

Transcript of Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di...

Page 1: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Principi di Schedulazione in tempo reale

1

Page 2: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Task in tempo reale

n Un task ti è una sequenza di processi in tempo reale τik ciascuno caratterizzato daq un tempo d’arrivo rik (r=release time, oppure a=arrival time)

q un tempo di inizio esecuzione sik q un tempo di fine esecuzione fikq una deadline assoluta dik, q una deadline relativa Dik, q da un tempo di esecuzione Cik

k

k

sik fik

2

Page 3: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Task periodici

Task periodico τi

n Triggerati a periodi fissi da un timer

n Consistono in una sequenza infinita di attività identiche, chiamate istanze.

n Ciascuna istanza è caratterizzata da un periodo T e da un tempo di calcolo C

3

Page 4: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Task aperiodici

Task aperiodici:

Task sporadici:

n Triggerati da interrupt esternin I task sporadici sono triggerati da interrupt esterni con un minimo tempo di interarrivo tra gli interrupt

4

Page 5: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Parametri descrittivi dei processi in tempo reale

n Lateness: L=f-d

n Exceeding time: E=max(0,L) à tempo in cui un processo è rimasto attivo oltre la propria deadline

n Slack time (o LAXITY): LX=d-a-C à ritardo di attivazione max consentita

n Metriche di valutazione: basate sulla funzione di costo che dipende dal tempo di terminazione del task. La funzione di costo rappresenta l’importanza relativa del task.

5

Page 6: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Parametri descrittivi dei processi in tempo reale

n Qualche esempio di funzioni di costo:

6

Page 7: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Esempi di funzioni di costo

n Andamento della importanza dei task:

f

f

f

f

v(f)‏

v(f)‏v(f)‏

v(f)‏

Non real time

hard real time

soft real time

critico

−∞

7

Page 8: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Sistemi operativi in tempo reale

n FATTI DEI SISTEMI OPERATIVI RTq In un sistema di controllo RT ogni processo è ben noto! Nessun

task del sistema è un processo casualeq è importante assicurare che tutti i task critici completino la loro

attività entro la deadlineq in una applicazione RT, i vari processi sono cooperanti: non è

necessario usare spazi di indirizzamento separatin PRESUPPOSTI DESIDERATI DAL S.O.

q Scheduling ottimo per rispettare i vincoli temporaliq Condivisione risorse à condivisione spazio indirizzamentoq Garanzia di esecuzione à i task critici vengono attivati solo se

possono essere completati in tempoq Prevedibilità del meccanismo dello scheduling à tutte le primitive

devono avere un tempo di esecuzione massimo definitoq Flessibilità à struttura modulare per adattarsi alla applicazione

8

Page 9: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

n CARATTERISTICHE REALI (Ereditate dalle implementazioni classiche)‏q Multitaskingq Schedulazione prioritaria (non adatta ai sistemi RT)‏q Risposta alle interruzioni (una rapida risposta puo’ rallentare

l’esecuzione dei processi)‏q Sincronizzazione e cooperazione dei processi (indesiderato nei

SORT)‏q Piccolo nucleo e veloce T.S. (Ma: il veloce T.S. non garantisce la

terminazione dei task)‏q Clock RT per la generazione di un riferimento temporale. I sistemi

commerciali non forniscono primitive per i vincoli temporali à l’utente deve trasformare i vincoli temporali in priorità

n PREVEDIBILITA’ DEL SISTEMAq Devo sapere se i processi possono essere completati in tempo à

determinismo dei processi

Sistemi operativi in tempo reale

9

Page 10: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Sistemi operativi in tempo reale

n Cause di aleatorietà: q DMAq CACHE (cache fault)‏q Interrupts (un processo puo’ essere più urgente di un interrupt).

Approcci:q Disabilitazione delle interruzioni (polling)‏q Disabilit. Interruz. Tranne il Timer che interroga periodicamente

l’I/Oq Mantenere gli interrupts ma schedulare un task come un altroq Primitive del nucleo (devono avere durata max)‏q Mutua esclusione (soluzioni ad hoc)‏q Gestione della memoria (page fault! à partizioni statiche)‏q Linguaggio di programmazione (deve trattare i vincoli temporali)‏

10

Page 11: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

n SCHEDULAZIONE q Def.: schedulazione fattibile se esiste un

assegnamento ai task tale che i task vengono completati rispettando i vincoli

q Def.: un insieme di task è schedulabile se esiste una schedulazione fattibile

q Def.: vincoli sui processi: temporali, di precedenza, su risorse condivise

Sistemi operativi in tempo reale

11

Page 12: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Scheduling real-timedi task APERIODICIn Ottimizzare una funzione di costo definita sui parametri temporali

n Notazione di Graham: (α|β|γ)‏ dove:

α : macchina fisica (monoprocessore, multiprocessore, etc)‏β : tipo di vincoli ai processi (precedenza, preemption, etc.)‏γ : funzione di costo minimizzata

n Esempio: (1|prec|LMAX), (3|nopreempt.|Σfi), (2| |Σfi)‏

12

Page 13: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Algoritmo di Jacksonn Algoritmo (1|a0|Lmax) per un sistema di n tasksn Consideriamo un insieme di task

J={Ji(ai, Ci, di), i=1…n}, dove ai=a0 per ogni i=1…nn Algoritmo:

la massima lateness Lmax è minimizzata se i processi sono schedulati in ordine di deadline crescenti

n La complessità di calcolo dipende principalmente dalla procedura di ordinamento dell’insieme di task à O(nlogn)‏

46783di

21111Ci

J5J4J3J2J1

0 1 2 3 4 5 6 7 8 9

J1 J5 J4 J3 J2

1 5 4 3 2

Lmax = -1

13

Page 14: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Algoritmo di Jackson

n Test di schedulabilità: i

∀ i=1..n; ∑ Ck ≤ di k=1 n Esempio di schedulazione Non Fattibile

57463di

22112Ci

J5J4J3J2J1

0 1 2 3 4 5 6 7 8 9

J1 J3 J4J5 J2

1 5 43 2

Lmax = 1

14

Page 15: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Algoritmo di Jacksonn Ottimalità dell’algoritmo di Jacksonn Per una schedulazione generica, esisteranno almeno due task Ja e

Jb con da ≤ db tali che Jb precede Ja:

n Se si invertono i due task, la lateness massima diminuisce:

dbda

JaJb

La=fa-da

Lb=fb-dbLmax=fa-da

fb fa

JbJa

L’a=f’a-da

L’b=f’b-db

f’bf’adbda

Se (L’a> L’b) L’max = f’a-da < fa-da à L’max < Lmax

Se (L’b> L’a) L’max = f’b-db = fa-db < fa-da à L’max < Lmax

Eseguendo un numero finito di scambi di questo tipo si ottiene la schedulazioneottima

15

Page 16: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Algoritmo di Hornn Algoritmo (1|preemp|Lmax)‏n Rimuove l’ipotesi di attivazioni simultanee: attivazione dinamica e pre-emptionn Estensione dell’algoritmo di Jacksonn Algoritmo: La massima lateness Lmax di un insieme di n task con attivazione

dinamica è minimizzata se, ogni volta che un nuovo task entra nel sistema la coda dei processi pronti viene riordinata per deadline crescente e la CPU viene assegnata al processo con deadline più imminente.

n Chiamata anche Earliest Deadline First (EDF)‏

n Ottimalità nel senso che minimizza Lmax e nel senso della schedulazione.

0 5 10

J1

J2

J3

J4

J5

16

Page 17: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Algoritmo di Hornn Complessità O(n2), dove n è il numero di processi che possono essere

attivati dinamicamente.n Test di garanzia di schedulabilità: derivato dal test di Jackson: i

∀ i=1..n; ∑ ck(t) ≤ di k=1 dove ck(t) sono i tempi residui istantanei di esecuzione e di sono le

deadline riscalate rispetto ai tempi di arrivo.n Minimizzazione di Lmax: deriva da Jacksonn Teorema:

Se un insieme di task aperiodici non è schedulabile con l’algoritmo di Horn, allora non è schedulabile con nessun altro algoritmo.

Dim.:In altre parole, l’enunciato del teorema afferma che:

se un insieme di task è schedulabile con un qualche algoritmo A,allora sicuramente è schedulabile con l’algoritmo di Horn.

17

Page 18: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Algoritmo di Horn (cont.)‏n Si divida la scala temporale in quanti pari all’unità di tempo del sisteman Sia t=0 il primo istante di attivazione dei processin Sia D=max(di) la deadline più lontanan Sia σA una qualsiasi schedulazione fattibilen Sia σ (t) il task in esecuzione al tempo t nella schedulazione correnten Sia E(t) il task con deadline più imminenten Sia tE l’istante di tempo in cui inizia E(t) nella schedulazione correnteAllora: la schedulazione può essere trasformata in una schedulazione di Horn

con il seguente algoritmo:Trasforma(){ σ = σA;

for (t=0; t<D; t++)‏ if(σ(t) ≠ E(t)){ σ(tE)=σ(t);

σ(t)=E(t); }}

18

Page 19: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Algoritmo di Horn (cont.)‏n Ciascuna trasformazione preserva il tempo di calcolo dei task (i quanti

possono essere solo traslati, non accorciati o allungati)‏n Tutti i tempi possono al più essere ritardati di tE

n Se la schedulazione σA è fattibile, allora prima della trasformazione (tE+1) ≤ dE, ma dE ≤ di per ogni i, quindi dopo la trasformazione (tE+1) ≤ di

quindi tutti i task terminano entro le deadline à Horn è fattibilen Esempio di una trasformazione:

5

J1

J2J3J4

5

J1

J2J3J4

0 10 13 D

50 10 13 D

19

Page 20: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Algoritmo di Horn (cont.)‏

n Analisi della schedulabilità: deve essere fatta ad ogni arrivo è le deadline devono essere riscalate ad ogni arrivo del tempo dell’arrivo

q Istante 0: sono presenti in coda J1 e J2 (nell’ordine).Tempo residuo per J1: 1; per J2: 2. 1 <= d1= 2 1+2 <= d2=5

q Istante 2: sono presenti in coda J3 e J2 (nell’ordine).Tempo residuo per J3: 2; per J2: 1. 2 <= d3=2 2+1 <= d2=3

q Istante 3: sono presenti in coda J3, J2, J4 (nell’ordine).Tempo residuo per J3: 1; per J2: 1; per J4: 2. 1 <= d3=1 1+1 <= d2=2 1+1+2 <= d4=7

q Istante 6: sono presenti in coda J5, J4 (nell’ordine).Tempo residuo per J5: 2; per J4: 1. 2 <= d5=3 2+1 <= d4=4

0 5 10

J1

J2

J3

J4

J5

20

Page 21: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Schedulazione senza pre-emption algoritmo di Horn

n Se si esclude l’ipotesi di preemption, con attivazione dinamica l’algoritmo EDF non è più ottimo

n Esempio:

521J2

740J1

DiCiai 5 10

5 10

J1

J2

J1

J2

Schedulazioneottima

SchedulazioneEDF

21

Page 22: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Schedulazione senza pre-emption: Algoritmo di Bratley

n Schedulazione senza pre-emption di un insieme di task attivati dinamicamente

n Ricerca su un albero con pruningn Complessità O(nn!)‏n Algoritmo off-line. Esempio:

420J4

621J3

511J2

724J1

diCiai Numero nel nodo à task che viene schedulatoNumero accanto al nodo à tempo in cui il task terminaJ+ à task che supera la deadline à schedulazione fattibile

22

Page 23: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Schedulazione senza pre-emption: Algoritmo Spring

n Sistema Hard real-timen Garantisce dinamicamente (on-line) l’esecuzione dei processi

attivati tenendo conto dei vincoli (temporali, di precedenza, sulle risorse, no pre-emption, esecuzione su multiprocessore, fault tolerance …)‏

n Usa una funzione di costo H euristican Ogni volta che si estende una schedulazione parziale, si valuta H

per i task non ancora schedulati e si sceglie quello che minimizza Hn Albero delle schedulazioni con pruning.n Alcune funzioni euristiche:

q H=1 à FCFS (First Come First Served)q H=C à SJF (Shortest Job First)q H=d à EDF (Earliest Deadline First)q H=Test à ESTF (Earliest Start Time First)‏q H=d+W*C à EDF+SJF

23

Page 24: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Algoritmi di Schedulingcon Vincoli di Precedenza

n Può essere risolta con algoritmi polinomiali solo se si impongono ipotesi semplificative

n Algoritmo Latest Deadline First (LDF). Algoritmo (1|prec, a0| Lmax)‏n Algoritmo: Dato un insieme J di n task con grafo di precedenza, si costruisce la

lista di scheduling a partire dal fondo. Fra tutti i task che non hanno successori nel grafo, si seleziona il processo con la deadline più lunga.

n Schedulato l’ultimo task, la lista viene eseguita in ordine inverso.n Esempio:

61JF

51JE

31JD

41JC

51JB

21JA

diiCiA

B C

D E F

2

5 4

3 5 65

50

0

8

8

A B D C E F

FEDBCA

LDF

EDF

Lmax=0

Lmax=LD=1

A D C B E F

A D C B E F

24

Page 25: Principi di Schedulazione in tempo reale - unina.stidue.netunina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · k(t) sono i tempi residui istantanei di esecuzione

Algoritmo EDF con vincoli di precedenza

n Algoritmo (1|prec,pre-empt|Lmax)‏n Modifica i tempi di arrivo e le deadline di tutti i processi in modo da

trasformare i vincoli di precedenza in vincoli temporali. Dopo le trasformazioni, i processi sono schedulati con EDF

n Modifica dei tempi di arrivo:n per ogni nodo iniziale del grafo di precedenza, ai*=ain si seleziona un task Jk non ancora modificato, tale che tutti i suoi

predecessori siano stati modificati. Se Jk non esiste, termina.n Modifica il tempo di arrivo di Jk: ak*=max(ak, max(ai*+Ci:JiàJk)]n Vai al punto 2)‏

n Modifica i tempi di deadline:n per ogni nodo terminale, di*=din seleziona un task Jk non ancora modificato tale che tutti i suoi successori

siano stati modificati. Se Jk non esiste, si terminan modifica la deadline di Jk: dk*=min[dk, min(di*-Ci:JkàJi)]n vai al 2)‏

n Complessità O(n2)‏

25