Scheduling di processi HRT Primo modello per la schedulazione di processi periodici N processi P1, P2,, PN indipendenti senza vincoli di precedenza, senza risorse condivise; ogni processo Pj (j = 1, 2,,N) è: periodico, con periodo Tj prefissato, caratterizzato da un tempo massimo di esecuzione Cj prefissato, con Cj < Tj, caratterizzato da una deadline Dj = Tj; l esecuzione dei processi è affidata ad un sistema di elaborazione monoprocessore; il tempo impiegato dal processore per operare una commutazione di contesto tra processi è trascurabile. Teorema sulla schedulabilità Condizione necessaria (ma in generale non sufficiente) affinché un insieme di N processi periodici sia schedulabile è che il risultante fattore di utilizzazione del processore sia non superiore a 1: Il j-esimo termine della sommatoria rappresenta la frazione dell iperperiodo H = mcm (T1, T2,, TN) richiesta per l esecuzione di Pj. 1. Schedulazione Clock-Driven Schedulazione di tipo: off-line: pianificata a priori; guaranteed: rispetta i vincoli temporali di tutti i processi; non-preemptive: l'esecuzione di un processo non può essere sospesa; I parametri temporali non subiscono variazioni a run-time; Tutti i vincoli temporali vengono soddisfatti a priori; Lo schedule viene costruito con riferimento al generico iperperiodo; Lo schedule risultante è di norma esplicitato in termini di una tabella; Lo scheduler, a run-time e avvalendosi di un timer hardware che genera interrupt negli istanti decisionali, ciclicamente interpreta il contenuto della tabella, riprogrammando il timer se necessario, selezionando il processo/i da schedulare e ponendosi in attesa del successivo interrupt. Abbiamo il Timer-Driven Scheduler (istanti decisionali non equidistanti) e il Cyclic Executive (istanti decisionali equidistanti). 1.2 Approccio Cyclic Executive Scenario più elementare: costruzione di un feasible schedule per un insieme di N 1
processi semplicemente periodici (ovvero con periodi in relazione armonica, cioè multipli del più piccolo di essi). 1.3 Dimensionamento del ciclo maggiore (o iperperiodo) (1) M = iperperiodo = mcm(t 1,, T N ) 1.4 Dimensionamento del ciclo minore ( o frame) (2) M mod m = 0 garantisce che un ciclo maggiore consista di un numero finito di cicli minori: n cm = M/m ; (3) m C i, i garantisce che ogni job sia eseguito all'interno di un ciclo minore ( no job preemption ); (4) m T i, i garantisce l'esecuzione in ogni ciclo maggiore del numero di job associati a ciascun processo: n Ji = M/T i, i ; (5) 2m mcd (m, T i ) \ T i, i garantisce la condizione di no job overrun ; 1.5 Pianificazione L esecuzione del k-esimo (k=1,,n Ji ) job J ik del processo P i (i=1,,n) può essere pianificata nel j-esimo (j=1,,n cm ) ciclo minore c j se e soltanto se: (k-1) T i (j-1)m jm k T i C i m- s C s, s P s S j, dove Sj denota l'insieme dei processi la cui esecuzione è già stata pianifica in cj. Criteri di associazione job ciclo minore : 1. precedenza ai job di processi con frequenza di esecuzione più elevata; 2. precedenza ai job con tempo di esecuzione più elevato; 3. precedenza ai cicli minori con minor tempo residuo libero. 1.6 Costruzione di un feasible schedule 2
1.6 Partizionamento dei processi Non sempre esiste un feasible schedule; in tali casi occorre partizionare il processo (o i processi) con maggiore tempo di esecuzione in sottoprocessi ( job slicing ), rilassando così il vincolo (3): P i (C i,t i ) P i (C i ',T i '), P i (C i,t i ), con C i ' + C i +... = C i ed i vincoli P i > P i 2. Schedulazione Priority-Driven Ad ogni processo è staticamente o dinamicamente associata una priorità in dipendenza dei corrispondenti requisiti temporali. Ad ogni processo è dinamicamente associata una informazione che ne identifica lo stato ai fini della esecuzione: processo IDLE; processo READY; processo RUNNING; L esecuzione di un processo è sospesa se un altro processo di priorità superiore è pronto per l esecuzione (PREEMPTION). 2.1 Algoritmo Rate Monotonic Priority Ordering Ad ogni processo è staticamente associata una priorità direttamente proporzionale alla corrispondente frequenza di esecuzione: 2.2 Analisi di schedulabilità p(p j ) = p j 1 / T j = 1 / D j (j = 1, 2,,N) Costruzione di diagrammi temporali che evidenziano l'evoluzione dei processi dal punto di vista dell'esecuzione esito sempre conclusivo; Applicazione di criteri basati sul fattore di utilizzazione del processore da 3
parte dei (singoli) processi esito non sempre conclusivo; Calcolo dei tempi di risposta dei singoli processi esito sempre conclusivo; 2.3 Condizione necessaria e sufficiente Una condizione necessaria e sufficiente di una proposizione è quell'evento che è vero se e solo se la proposizione è vera. La condizione necessaria è quella che deve essere soddisfatta affinché la proposizione sia vera. La condizione sufficiente è quella che, se soddisfatta, garantisce la verità della proposizione. Un algoritmo o test per la verifica della schedulabilità pone una condizione che se: sufficiente ma non necessaria: da risposta definitiva se verificata ma non definitiva se non verificata; necessaria e sufficiente: da risposta definitiva se verificata o non; necessaria ma non sufficiente: da risposta definitiva se non verificata ma non definitiva in caso contrario. 2.4 Analisi di schedulabilità attraverso diagrammi temporali U 1 è condizione sufficiente per la schedulabilità di un insieme di processi semplicemente periodici ; in caso contrario la schedulabilità è garantita se per ogni processo è rispettata la prima deadline a partire dalla condizione più sfavorevole di contemporanea attivazione del processo stesso e di tutti i processi di priorità superiore (istante critico). 2.5 Test di schedulabilità basato sul fattore di utilizzazione del processore ( Liu-Layland) Condizione sufficiente (ma non necessaria) affinché un insieme di N processi sia schedulabile con l algoritmo RMPO è che: U U RMPO (N) = N(2 1/N 1) L'applicazione di un algoritmo di scheduling determina il partizionamento dello spazio dei processi in tre sottospazi disgiunti: quello dei processi non schedulabili, quello dei processi difficilmente schedulabili e quello dei processi schedulabili. L'insieme di processi che costituiscono il limite superiore minimo del fattore di utilizzazione viene detto least upper bound. Corollario del teorema di Liu-Layland: U RMPO (U 1,U 2,...,U N ) = Π j=1..n (1+U j ) 2 2.6 Altri test di schedulabilità dipendenti dai parametri dei processi 1. Test di Kuo-Mok: condizione sufficiente ma non necessaria; 2. Test di Burchard:? 3. Test di Han: condizione sufficiente ma non necessaria; 4
2.7 Analisi della schedulabilità basata sul calcolo dei tempi di risposta 1. Audsley: risposta sempre conclusiva; 3. Estensione del modello per la schedulazione di processi periodici ed aperiodici I processi sporadici impongono vincoli più stringenti per quanto concerne il tempo di completamento della loro esecuzione (processi urgenti): j Dj < Tj. Allora ogni processo Pj deve essere caratterizzato esplicitamente da tre parametri: Tj (MIT nel caso di processi sporadici, periodo nel caso di processi periodici), Dj Tj ( < minore nel caso di processi sporadici, = nel caso di processi periodici) e Cj < Dj. 3.1 Algoritmo Deadine Monotonic Priority Ordering Ad ogni processo è staticamente associata una priorità inversamente proporzionale alla corrispondente deadline relativa: p j 1 / D j 3.2 Analisi di schedulabilità attraverso diagrammi temporali Per poter schedulare applicazioni con un elevato fattore di utilizzazione del processore, occorre utilizzare un algoritmo che attribuisca le priorità ai processi non staticamente, bensì dinamicamente risposta sempre conclusiva. 3.3 Analisi della schedulabilità basata sul calcolo dei tempi di risposta Algoritmo di Audsley: risposta sempre conclusiva; 3.4 Test di schedulabilità 1. Primo test: condizione sufficiente ma non necessaria; 2. Test basato sulla densità di utilizzazione : condizione sufficiente ma non necessaria; 3. Test di Lehoczky: condizione sufficiente ma non necessaria; 4. Test basato sul fattore di utilizzazione efficace dei processi: condizione sufficiente ma non necessaria; 4. Schedulabilità in presenza di Interrupt Service Routines E sufficiente procedere al calcolo del fattore di utilizzazione efficace di ogni ISR e di ogni processo, tenendo conto che le ISR vengono eseguite ad una priorità in generale più elevata di quella che loro deriverebbe dalla corrispondente frequenza di esecuzione. 4.1 Algoritmo Earliest Deadline First Ad ogni processo è dinamicamente associata una priorità tanto maggiore quanto più imminente è la corrispondente deadline assoluta. 5
Condizione necessaria e sufficiente affinchè un insieme di N processi sia schedulabile con EDF è che: U = i=1..n C i /T i U EDF = 1 Condizione sufficiente (ma non necessaria) affinché un insieme di N processi periodici e sporadici sia schedulabile con l algoritmo EDF è che: = i=1..n C i /D i 1 4.2 Approccio processor Demand Condizione sufficiente. 6