Scheduling di processi hard real-time



Похожие документы
Scheduling di processi HRT

Riassunto di Sistemi in Tempo Reale LS

Algoritmi di scheduling - Parte 2

Schedulazione in RTAI

Sistemi Real-Time Ing. Rigutini Leonardo

Scheduling. Scheduling 14/12/2003 1/7

RTAI e scheduling. Andrea Sambi

Principi di Schedulazione in tempo reale

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Lo scheduling. Tipici schedulatori

Sistemi Operativi SCHEDULING DELLA CPU

Scheduling della CPU:

Scheduling. Lo scheduler è la parte del SO che si occupa di

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Algoritmi di scheduling

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Approccio stratificato

Scheduling della CPU Simulazione in linguaggio Java

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Algoritmi di scheduling

Sistemi di Controllo Real Time

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU

Corso di Informatica

Sistemi Operativi Kernel

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Low Power Scheduling per Sistemi Real Time

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

GESTIONE DEI PROCESSI

GESTIONE INFORMATICA DEI DATI AZIENDALI

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni

Processi e Thread. Scheduling (Schedulazione)

Sistemi Operativi a.a Esercizi - 2

Esercitazione E6 Esercizi d esame

Scheduling della CPU

SCHEDULATORI DI PROCESSO

SCHEDULING SCHEDULING

IL SISTEMA OPERATIVO

J. Assfalg Appunti di Sistemi Operativi

Schedulazione di attività in presenza di attività interrompibili

AND NON CAP WEIGHTED PORTFOLIO

Architettura di un sistema di calcolo

Base di dati e sistemi informativi

MODELLISTICA DI IMPIANTI E SISTEMI 2

La schedulazione. E.Mumolo

La Metodologia adottata nel Corso

FONDAMENTI di INFORMATICA L. Mezzalira

Corso di Sistemi di Elaborazione delle informazioni

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi di Automazione Industriale

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Algoritmi Priority-Driven RT. Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo

La Gestione delle risorse Renato Agati

Il descrittore di processo (PCB)

Calcolatori: Algebra Booleana e Reti Logiche

La riforma del servizio di distribuzione del

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Java Virtual Machine

J. Assfalg Appunti di Sistemi Operativi

Lo scheduler di UNIX (1)

Sistemi Operativi. 5 Gestione della memoria

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Pronto Esecuzione Attesa Terminazione

Ottimizzazione Multi Obiettivo

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

Sistema operativo: Gestione della memoria

Più processori uguale più velocità?

12. Evoluzione del Software

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Il sistema operativo TinyOS

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique

Monitor. Introduzione. Struttura di un TDA Monitor

Nozione di algoritmo. Gabriella Trucco

Progettaz. e sviluppo Data Base

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Sequence Diagram e Collaboration Diagram

Il costrutto monitor [Hoare 74]

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Descrizione di un algoritmo

TECNICHE DI SIMULAZIONE

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

Automazione Industriale (scheduling+mms) scheduling+mms.

Le Infrastrutture Software ed il Sistema Operativo

2. Leggi finanziarie di capitalizzazione

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Транскрипт:

Scheduling di processi hard real-time Eugenio Faldella Dipartimento di Elettronica, Informatica e Sistemistica Facoltà di Ingegneria, Università di Bologna eugenio.faldella@unibo.it http://www.ing.unibo.it Scheduling di processi HRT

U PRIMO MODELLO DI RIFERIMETO PER LA SCHEDULAZIOE DI PROCESSI PERIODICI processi P,,, P indipendenti senza vincoli di precedenza senza risorse condivise ogni processo P (,,,) è periodico, con periodo T prefissato è caratterizzato da un tempo massimo di esecuzione C prefissato, con C < T è caratterizzato da una deadline D T 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 Scheduling di processi HRT

U TEOREMA SULLA SCHEDULABILITÀ I requisiti temporali sono coerenti e consistenti? Condizione necessaria (ma in generale non sufficiente) affinché un insieme di processi periodici sia schedulabile è che il risultante fattore di utilizzazione del processore sia non superiore a : U U C T Il mo termine della sommatoria C / T (C (H / T )) / H rappresenta la frazione dell iperperiodo H mcm (T, T,, T ) richiesta per l esecuzione di P. Scheduling di processi HRT 3

SCHEDULAZIOE CLOCK-DRIVE Schedulazione di tipo off-line, guaranteed, non-preemptive, semplice da realizzare ed efficiente (l overhead associato al cambio di contesto e alla comunicazione tra processi è trascurabile), ma non idonea in contesti che implicano dinamicità e flessibilità. I parametri temporali dei processi si intendono noti a priori e non soggetti a variazioni significative a run-time. Tutti i vincoli temporali vengono soddisfatti a priori in sede di costruzione di un feasible schedule. Problema P-hard Allo scopo possono essere usati algoritmi anche molto complessi, senza incorrere in una penalizzazione delle prestazioni conseguibili a run-time. Scheduling di processi HRT 4

SCHEDULAZIOE CLOCK-DRIVE Lo schedule viene costruito con riferimento al generico iperperiodo, assumendo che qualunque decisione riguardante la schedulazione dei processi venga presa in corrispondenza di predefiniti istanti decisionali. Tali istanti possono essere o meno equidistanziati. Lo schedule risultante è di norma esplicitato in termini di una tabella, la cui generica k-esima entry è del tipo: ( t k, P(t k )) nel caso di istanti decisionali non equidistanziati, con t k t k+ -t k, (P(t k )) nel caso di istanti decisionali equidistanziati, dove P(t k ) e P(t k ) identificano rispettivamente il processo o l insieme di processi da schedulare all istante t k. Lo scheduler a run-time, avvalendosi di un timer hardware che, opportunamente programmato, genera un interrupt in corrispondenza di ogni istante decisionale, ciclicamente si limita a interpretare il contenuto di tale tabella, procedendo a riprogrammare il timer se necessario (ovvero nel caso di istanti decisionali non equidistanziati), a selezionare il processo o i processi da schedulare, a porsi quindi in attesa del successivo interrupt. Ipotesi per un corretto funzionamento: no ob overrun Scheduling di processi HRT 5

TIMER-DRIVE SCHEDULER esempio Istanti decisionali non equidistanziati t k, P(t k ), P C T, P 4 5 0 P 4 0 U 0.85? H 0 P P P P P 4 P 0 4 6 8 0 4 6 8 0!,, P,, P,, P esempio t t -t, P, C T P 6 5 8 t t 3 -t t k t k+ -t k 5,, P, 5,, P 4, P, U 0.96, P? H 4!, 5, P P P P, P 0 4 6 8 0 4 6 8 0 4 Scheduling di processi HRT 6

CYCLIC EXECUTIVE Istanti decisionali equidistanziati t P(t k ) esempio P, C T P P 4 cicli minori 5 0? P P P P P 4 P! P P 4 0 0 4 6 8 0 4 6 8 0 P, esempio ciclo maggiore P 4 P C T P 6 5 8? non esiste un feasible schedule, a meno che Scheduling di processi HRT 7

U TIPICO AMBIETE DI ESECUZIOE PREELABORAZIOI ITERE LETTURA IGRESSI ESECUZIOE DEL PROGRAMMA AGGIORAMETO USCITE Programmable Logic Controller (PLC) una differenza sostanziale rispetto ad altre piattaforme computazionali: il sistema operativo programmazione molto semplice non esiste a run-time la nozione esplicita di processo (non si pongono problemi di concorrenza e quindi di condivisione di risorse) a meno che il tempo necessario per eseguire un intera scansione del programma risulti incompatibile con i vincoli real-time imposti dall applicazione Scheduling di processi HRT 8

AMBIETI DI ESECUZIOE SEQUEZIALE aspetti temporali un approccio empirico alquanto diffuso gestione: allarmi motorizzazioni user interface A C[ms] T[ms] C/T P 5 5.6 5 50. 7.5 00.075 U(A ) 0.775 P P P P + I/O refresh T ciclo C + C + C 3 7.5 > T 5 Scheduling di processi HRT 9

AMBIETI DI ESECUZIOE SEQUEZIALE gestione: allarmi motorizzazioni user interface termoregolatori A C[ms] T[ms] C/T P 5 5.6 5 50. 7.5 00.075 P 4 0 00. U(A ) 0.875 P P P P 4 P P P P P P 4 () T ciclo 3 * C + C + C 3 + C 4 67.5 > T 50 gestione: allarmi motorizzazioni user interface A C[ms] T[ms] C/T P 5 5.6 5 50. 7.5 00.75 U(A ) 0.875 Scheduling di processi HRT 0

L APPROCCIO CYCLIC EXECUTIVE Scenario più elementare: costruzione di un feasible schedule per un insieme di processi semplicemente periodici (ovvero con periodi in relazione armonica). A C T C/T P 5 5.6 5 50. 7.5 00.075 t5 t.u. U(A ) 0.775 estensione del ciclo maggiore: M max (T, T,, T ) 00 estensione del ciclo minore: m min (T, T,, T ) 5 ciclo maggiore ciclo minore ciclo minore 3 ciclo minore 4 ciclo minore 0 0 0 30 40 50 60 70 80 90 00 processo in esecuzione - P Scheduling di processi HRT

COSIDERAZIOI REALIZZATIVE Linguaggio standard per PLC: IEC 63-3 structured text (* loop *) if (next_minor_cycle_start_time) (* from rtc interrupt *) then next_minor_cycle_start_time : false; case (minor_cycle) of : call P_handler; call P_handler; : call P_handler; call P3_handler; 3: call P_handler; call P_handler; 4: call P_handler; end_case; if (minor_cycle < last_minor_cycle) then minor_cycle : minor_cycle + ; (* next minor cycle *) else minor_cycle : first_minor_cycle; (* repeat maor cycle *) end_if; if (next_minor_cycle_start_time) then ; (* ob overrun *) end_if; end_if; (* end_loop *) Scheduling di processi HRT

PECULIARITÀ DELL APPROCCIO semplice realizzabilità non esiste a run time la nozione esplicita di processo non si pongono problemi di concorrenza e quindi di condivisione di risorse macchinosità il procedimento può risultare laborioso, specialmente se P k per cui T k >> T, k (ad es., con riferimento a A, se T 3 fosse di 0.000 anziché 00 t.u.) limitata diretta applicabilità esistono dei vincoli per quanto riguarda i valori dei parametri T e C (sempre nel rispetto della condizione U ). Ad es., con riferimento a A, se C 3 fosse di 7.5 anziché 7.5 t.u., l insieme dei processi risulterebbe non schedulabile pur risultando U 0.875, a meno di Scheduling di processi HRT 3

e LIMITI a meno di ricorrere alla tecnica del ob slicing, ovvero ad un partizionamento del (la procedura corrispondente al) processo A C T C/T P 5 5.6 5 50. 7.5 00.75 U(A ) 0.875 0 00. 7.5 00.075 con il vincolo di precedenza ciclo maggiore ciclo minore ciclo minore 3 ciclo minore 4 ciclo minore 0 0 0 30 40 50 60 70 80 90 00 processo in esecuzione - P Scheduling di processi HRT 4

STRUTTURA GEERALE [BAKER-SHAW (88)] Dimensionamento del ciclo maggiore: () M iperperiodo mcm (T,, T ) Dimensionamento del ciclo minore (o frame ): vincolo motivazione () M mod m 0 onde garantire che un ciclo maggiore consista di un numero intero di cicli minori: n cm M / m (3) m C i, i (4) m T i, i onde garantire che ogni ob di qualunque processo possa iniziare e completare la propria esecuzione all interno di un ciclo minore ( no ob preemption ) onde garantire l esecuzione in ogni ciclo maggiore del numero di ob associati a ciascun processo: n Ji M / T i, i in generale il vincolo è più restrittivo Scheduling di processi HRT 5

STRUTTURA GEERALE Dimensionamento del ciclo minore (o frame ): vincolo (5) m mcd (m, T i ) T i, i.b.: (5) (4) se (T i mod m) 0, i motivazione onde garantire che tra release time e deadline di un qualunque ob sia comunque compreso un ciclo minore completo, nell ambito del quale il ob possa essere interamente eseguito ( no ob preemption ) ed al termine del quale sia verificabile la condizione no ob overrun frame - frame frame + m m m δ i > 0 m-δ i T i (k-)t i kt i t Job ik max (m - δ i ) + m m min (δ i ) + m m - mcd (m, T i ) + m T i, i ipotesi: φ i n * m, i, n 0 (,,, ) Scheduling di processi HRT 6

IDETIFICAZIOE DEL FRAME-SIZE esempio () M mcm (T,, T 4 ) M 0 C T C/T P 4 0.5 5 0.40 0 0.0 (3) m C i, i (4) m T i, i () M mod m 0 m.. 4 m, 4 P 4 0 0.0 mcd (m, T i ) m mcd (m, T i ) T i (5) m mcd (m, Ti) Ti, i m 3 4 5 0 0 OK m m 4 4 4 4 7 6 4 4 5 0 0 O m4 T 5?? 0 4 6 8 0 4 6 8 0 Scheduling di processi HRT 7

PIAIFICAZIOE Procedimento iterativo basato su criteri euristici L esecuzione del k-esimo (k,,n Ji ) ob J ik del processo P i (i,,) può essere pianificata nel -esimo (,,n cm ) ciclo minore c se e soltanto se: (k-) T i (-) m, m k T i, C i m - Σ s C s, s P s S, dove S denota l insieme dei processi la cui esecuzione è già stata pianificata in c. Criteri di associazione ob - ciclo minore :. precedenza ai ob di processi con frequenza di esecuzione più elevata;. precedenza ai ob con tempo di esecuzione più elevato; 3. precedenza ai cicli minori con minor tempo residuo libero. Scheduling di processi HRT 8

COSTRUZIOE DI U FEASIBLE SCHEDULE C T P 4 5 0 P 4 0 M 0, m n cm 0 n J 5 n J 4 n J3 n J4 identificazione del ciclo minore (o dei cicli minori) in cui ciascun ob può essere eseguito: J J J 3 J 4 J 5 J J J 3 J 4 J 3 J 3 J 4 0 c x x x x c x x x x 4 c 3 x x x 6 c 4 x x x x 8 c 5 x x x x 0 c 6 x x x x c 7 x x x x 4 c 8 x x x 6 c 9 x x x x 8 c 0 x x x x 0 t Scheduling di processi HRT 9

COSTRUZIOE DI U FEASIBLE SCHEDULE pianificazione dell esecuzione di ciascun ob: criteri:,3 c J J J 3 J J 3 J J c J J c 3 J J J J J J J c 4 c 5 J 3 c 6 J 3 J3 J 3 J3 J 3 J3 c 7 J 4 J 4 J 4 J 3 J 4 J 3 c 8 J 4 c 9 J 5 J 5 J4 J 5 J4 J 5 J4 c 0 P P P P P 4 P 0 4 6 8 0 4 6 8 0 Scheduling di processi HRT 0

PARTIZIOAMETO DEI PROCESSI on sempre esiste un feasible schedule esempio () M mcm (T,, T 3 ) M 4 C T C/T P 6 0.67 5 8 0.65 0.67 (3) m C i, i (4) m T i, i () M mod m 0 m 5, 6 m 6 mcd (m, T i ) m mcd (m, T i ) T i (5) m mcd (m, Ti) Ti, i m 6 6 6 6 0 6 6 8 O In tali casi occorre partizionare il processo (o i processi) con maggiore tempo di esecuzione in sottoprocessi ( ob 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 di precedenza P i P i Scheduling di processi HRT

PARTIZIOAMETO DEI PROCESSI C T C/T () M mcm (T,, T 3 ) M 4 P 6 0.67 5 8 0.65 0.67 (3) m C i, i (4) m T i, i () M mod m 0 m 3.. 6 m 3, 4, 6 (5,8) (3,8), (,8) mcd (m, T i ) m mcd (m, T i ) T i O C T C/T P 6 0.67 3 8 0.375 m 3 3 3 3 5 3 6 8 OK 8 0.50 0.67 m 4 4 4 6 4 4 6 8 OK (5) m mcd (m, Ti) Ti, i m 3, 4 Scheduling di processi HRT

PARTIZIOAMETO DEI PROCESSI C T P 6 3 8 8 m 4 M 4 n cm 6 n J 4 n J n J 3 n J3 J J J 3 J 4 J. J. J.3 J 3 J 3 0 c x x x 4 c x x 8 c 3 x x x c 4 x x x 6 c 5 x x 0 c 6 x x x 4 t c J J J J J J J A J B c J J J 3 J J 3 c 3 J J J J J J J A J B c 4 J 3 J 3 J J 3 J J 3 J c 5 J 3 J 3 J 3? J A3 J 3 c 6 J 4 J 4 J 3 J 4 J 3 J 4 J B3 J 3 E possibile identificare un feasible schedule solo ricorrendo nuovamente alla tecnica del ob slicing. (3,8) A (,8), B (,8) A B Scheduling di processi HRT 3

PARTIZIOAMETO DEI PROCESSI C T m 3 M 4 n cm 8 n J 4 n J n J 3 n J3 P 6 3 8 8 Anche in questo caso, applicando nell ordine i criteri euristici delineati, è possibile identificare un feasible schedule solo ricorrendo nuovamente alla tecnica del ob slicing. J J J 3 J 4 J. J. J.3 J 3 J 3 0 c x x x 3 c x x x 6 c 3 x x 9 c 4 x x x c 5 x x x 5 c 6 x x 8 c 7 x x x c 8 x x x 4 c J J J t c J J J J J E possibile in alternativa identificare c 3 J J 3 direttamente un feasible schedule c 4 J J J J privilegiando l allocazione dei ob c 5 J J J 3 J J 3 contraddistinti da vincoli di precedenza. c 6 J 3 J 3 c 7 J 3 J 3 c 8 J 3 J 3 J 4 J 3 J 4 Scheduling di processi HRT 4

PARTIZIOAMETO DEI PROCESSI 3 esempio () M mcm (T,, T 3 ) M 40 C T C/T P 5 0.40 8 0.5 5 0 0.5 (3) m C i, i (4) m T i, i () M mod m 0 m 5 m 5 mcd (m, T i ) m mcd (m, T i ) T i (5) m mcd (m, Ti) Ti, i m 5 5 5 5 9 5 5 8 0 O Rilassamento del vincolo (3): (5,0) (3,0), (,0) con Scheduling di processi HRT 5

PARTIZIOAMETO DEI PROCESSI C T C/T () M mcm (T,, T 3 ) M 40 P 5 0.40 8 0.5 5 0 0.5 (3) m C i, i (4) m T i, i () M mod m 0 m 3.. 5 m 4, 5 (5,0) (3,0), (,0) (5) m mcd (m, Ti) Ti, i O C T C/T mcd (m, T i ) m mcd (m, T i ) T i P 5 0.40 8 0.5 3 0 0.5 m 4 4 4 7 4 4 5 8 0 O 0 0.0 Ulteriore rilassamento del vincolo (3): (3,0) A (,0), B (,0) con A B Scheduling di processi HRT 6

PARTIZIOAMETO DEI PROCESSI C T C/T () M mcm (T,, T 3 ) M 40 P 5 0.40 8 0.5 3 0 0.5 0 0.0 (3) m C i, i (4) m T i, i () M mod m 0 m.. 5 m, 4, 5 (3,0) A (,0), B (,0) O C T C/T P 5 0.40 8 0.5 A 0 0.0 B 0 0.05 0 0.0 (5) m mcd (m, Ti) Ti, i m mcd (m, T i ) m mcd (m, T i ) T i 3 5 8 0 OK A B Scheduling di processi HRT 7

PARTIZIOAMETO DEI PROCESSI C T P 5 8 A 0 B 0 0 A B M 40, m n cm 0 n J 8 n J 5 n J3A n J3B n J3 J J J 3 J 4 J 5 J 6 J 7 J 8 J J J 3 J 4 J 5 J 3. J 3. 0 c x x x c x x x 4 c 3 x x 6 c 4 x x x 8 c 5 x x x 0 c 6 x x x c 7 x x x 4 c 8 x x 6 c 9 x x x 8 c 0 x x x 0 c x x x c x x x 4 c 3 x x 6 c 4 x x x 8 c 5 x x x 30 c 6 x x x 3 c 7 x x x 34 c 8 x x 36 c 9 x x x 38 c 0 x x x 40 Scheduling di processi HRT 8 t

PARTIZIOAMETO DEI PROCESSI C T P 5 8 A 0 B 0 c c c 3 c 4 c 5 c 6 J J J 3 J J J J J 3 J J J 3A J J J 3 J J J 3A J J J 3 J J J 3A J J J 3 0 4 6 8 0 0 c 7 c 8 J 3B J 3B J 3 4 6 c 9 J 4 J 4 J 4 J 4 J 4 8 A B c 0 J 3 J 3 J 3 J 3 0 c J 5 J 5 J 5 J 5 J 5 M 40, m c c 3 J 4 J 3A J 4 J 3A J 4 J 3A J 4 4 6 c 4 J 6 J 6 J 6 J 6 J 6 8 c 5 J 3B J 7 J 3B J 7 30 n cm 0 c 6 c 7 J 7 J 7 J 5 J 7 J 5 J 5 J 5 3 34 n J 8 c 8 c 9 J 8 J 8 J 8 J 8 J 3 J 8 36 38 n J 5 c 0 40 t n J3A n J3B n J3 Scheduling di processi HRT 9

SCHEDULAZIOE PRIORITY-DRIVE 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 RUIG L esecuzione di un processo è sospesa se un altro processo di priorità superiore è pronto per l esecuzione (PREEMPTIO). Scheduling di processi HRT 30

L'ALGORITMO RATE MOOTOIC PRIORITY ORDERIG (RMPO) Ad ogni processo è staticamente associata una priorità direttamente proporzionale alla corrispondente frequenza di esecuzione: p(p ) p / T / D (,,,) OTTIMALITÀ DELL'ALGORITMO Se un insieme di processi periodici è schedulabile con un qualche algoritmo che prevede un attribuzione statica di priorità, allora tale insieme è schedulabile anche con RMPO. Se un insieme di processi periodici non è schedulabile con RMPO, allora tale insieme non è schedulabile con alcun altro algoritmo che preveda un attribuzione statica di priorità. Scheduling di processi HRT 3

IL MECCAISMO DELLA PREEMPTIO A C T C/T p P 5 5.6 max 5 50. 7.5 00.75 min U(A ) 0.875 P 0 0 0 30 40 50 60 70 80 90 00 preempted Idle Ready Running Scheduling di processi HRT 3

AALISI DI SCHEDULABILITÀ costruzione di diagrammi temporali che evidenziano l evoluzione dei processi dal punto di vista dell esecuzione applicazione di criteri basati sul fattore di utilizzazione del processore da parte dei (singoli) processi calcolo dei tempi di risposta dei singoli processi Esito sempre conclusivo? sì no Scheduling di processi HRT 33

AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 3 C T C/T p P 5 5 0.6 max 5 50 0. 30 00 0.3 min U(A 3 ) P 0 0 0 30 40 50 60 70 80 90 00 Idle Ready Running U è condizione sufficiente per la schedulabilità di un insieme di processi semplicemente periodici (con periodi in relazione armonica). Scheduling di processi HRT 34

AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 4 C T C/T p P 5 0 0.5 max 6 5 0.4 min U(A 4 ) 0.9 P 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 30 Idle Ready Running missed deadline (): insieme di processi non schedulabile Quando non sussiste una relazione armonica tra i periodi dei processi, la condizione U non è sufficiente per garantire la schedulabilità. Scheduling di processi HRT 35

AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 5 C T C/T p P 5 0 0.50 max 8 9 0.4 min U(A 5 ) 0.9 P 0 4 6 8 0 4 6 8 Idle Ready Running 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). Scheduling di processi HRT 36

TEST DI SCHEDULABILITÀ BASATO SUL FATTORE DI UTILIZZAZIOE DEL PROCESSORE [LIU-LAYLAD (73)] Condizione sufficiente (ma non necessaria) affinché un insieme di processi sia schedulabile con l algoritmo RMPO è che: U U RMPO / ( ) ( ) insieme di processi schedulabile U 0,75 0,5.88.779.756.743 3 4 5 no forse si lim U RMPO ( ) ln 0. 693 Scheduling di processi HRT 37

IL LIMITE SUPERIORE MIIMO (LEAST UPPER BOUD) DEL FATTORE DI UTILIZZAZIOE L applicazione di un algoritmo di scheduling (A) induce nello spazio dei possibili insiemi di processi Σ {σ (, T,, T, C,, C )} una partizione in tre sottospazi disgiunti Σ, Σ, Σ 3 U Σ {σ insieme di processi non schedulabile} Σ {σ insieme di processi difficilmente schedulabile (una variazione di C (C +ε) o di T (T -ε) per un qualunque P in σ conduce ad un nuovo insieme di processi σ non più schedulabile)} Σ 3 {σ insieme di processi schedulabile cui non corrisponde la piena utilizzazione del processore} U lub (A) min {U ub (σ, A)} σ Σ least upper bound upper bound Scheduling di processi HRT 38

CALCOLO DI U lub per RMPO ) Analisi del caso elementare corrispondente a processi T T T T mod T + i + f T T T U C T? Uub( U, T / T ) limite superiore (upper bound) di U? ub ( U, T / T ) U Uub U + limite superiore (upper bound) di U? U lub min { U ub } limite superiore minimo (least upper bound) di U ) Generalizzazione dei risultati nel caso di > processi Scheduling di processi HRT 39

CALCOLO DI U ub () caso : f > U, > ovvero f T C T... T Idle P Ready Running T i T f T ( T C) + f T C [ i ( U) + f U] T ub C i C ( U ) C i + f U U Uub T i + f Scheduling di processi HRT 40

CALCOLO DI U ub () caso : f U, ovvero f T C T... T Idle P Ready Running T i T f T ( T C) i ( U) T ub C i C ( U ) C i U Uub T i + f Scheduling di processi HRT 4

CALCOLO DI U ub () ( U, i, f ) U Uub U + ub U ub ( f ) U U i + f ( U ) < f U i + f f f U T / T i + f Scheduling di processi HRT 4

CALCOLO DI U ub () U U ub ( f ) f U U < i + f ( U ) i + f U f f -U -U ub U T / T i + f Scheduling di processi HRT 43

CALCOLO DI U lub () ( U, i, f ) Uub ( f ) U U i + f ( U ) < f U i + f f f U U ( U, i, f ) Uub ( U, i, f ) Uub U f ( f ) f U lub ( i, f ) i + f T... T Idle P Ready Running T i T f T Scheduling di processi HRT 44

CALCOLO DI U lub () ( f ) f U lub ( i, f ) i + f 0.95 0.9 0.85 i U lub ( i, f ) Ulub 0.8 0.75 0.7 0.65 + f i Ulub( f ) + f 0.6 0.55 0.5 3 4 5 6 7 8 9 0 T / T i + f Scheduling di processi HRT 45

CALCOLO DI U lub () U lub ( f ) + f + f 0.98 0.96 0.94 du df ( f ) f + f ( + f ) lub 0 Ulub 0.9 0.9 0.88 0.86 0.84 f U lub ( ) 0.8 0 0. 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 f Scheduling di processi HRT 46

CALCOLO DI U lub () i T < < T T U f T + T C C T T C T C T T f / / T T C T ( ) C T ( / ) C / / U U i processi concorrono uniformemente al fattore di utilizzazione del processore T C C P T T +C T -T Idle Ready Running Scheduling di processi HRT 47

CALCOLO DI U lub (>) C T T C T3 T M T C C T T C ub C T T T T T... T T T............ T T... P... P Idle Ready Running Scheduling di processi HRT 48

Scheduling di processi HRT 49 CALCOLO DI U lub (>) T T C 3 T T C ub T T C T T C M R R R R U ub L R T T U + R K R U U U ub ub + + K T T U T T U 3 T T U M T T U ub

Scheduling di processi HRT 50 CALCOLO DI U lub (>) R K R U ub +,,, 0 R R K R R K R U i i i i ub L / K R R R L ( ) ( ) K K K K U / / lub +

CALCOLO DI U lub (>) U lub / ( ) U,, L, i processi concorrono uniformemente al fattore di utilizzazione del processore ( ) T T T,..., ( ) C T ( ) C C C,..., Scheduling di processi HRT 5

Scheduling di processi HRT 5... Esplicitando l utilizzazione schedulabile dell algoritmo RMPO in funzione dei singoli fattori di utilizzazione dei processi (non semplicemente del numero di processi, come nel teorema), si perviene ad un test di schedulabilità meno conservativo. T T C T T C 3 T T C T T C ( ),,..., U T T + + ( ) U T T + ( ) ( ) U U,, U U, U RMPO + L U COROLLARIO DEL TEOREMA DI LIU-LAYLAD

U COROLLARIO DEL TEOREMA DI LIU-LAYLAD se U U ( U, U, L, U ) U ( ) U L U RMPO RMPO 0.9 utilizzazione schedulabile in accordo a RMPO () URMPO () URMPO (U,U,,U) 0.8 0.7 0.6 U 0.5 0.4 0.3 0. 0. 0 0 0. 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 U Scheduling di processi HRT 53

U COROLLARIO DEL TEOREMA DI LIU-LAYLAD C T C/T P 5 0 0.5 5 5 0. 5 50 0. U RMPO 3 ( 3) 0. 78 U 0.8 > U RMPO 3 3 ( U 0.5, U 0., U 0.) ( + U ).98 P 0 0 0 30 40 50 Idle Ready Running Scheduling di processi HRT 54

ALTRI TEST DI SCHEDULABILITÀ DIPEDETI DAI PARAMETRI DEI PROCESSI: IL TEST DI KUO-MOK (9) Un insieme S di processi P,,, P contraddistinto da un fattore di utilizzazione del processore U è schedulabile con RMPO se (condizione solo sufficiente) U U RMPO (K), essendo K il numero di sottoinsiemi disgiunti di processi semplicemente periodici in S. La schedulabilità dell insieme S è garantita se è schedulabile l insieme S di K < processi P,,, P K ad esso equivalente. Al processo P (,,, K) in S, corrispondente al sottoinsieme di processi semplicemente periodici P x, P y,, P z in S, compete un fattore di utilizzazione del processore U U x + U y + + U z, un periodo T min (T x, T y,, T z ) e un tempo di esecuzione C U T. S C T C/T P 5 0 0.5 5 5 0. 5 50 0. P P {, } S C T C /T P 5 0 0.5 7.5 5 0.3 3 ( 3) 0. 78 U 0.8 > URMPO ( ) 0. 88 U ' 0.8 URMPO Scheduling di processi HRT 55

IL TEST DI KUO-MOK S C T C/T P 4 0 0.40 4 0 0.0 8 40 0.0 P 4 3.6 45 0.08 P 5.8 90 0.0 P {P,, } {P 4,P 5 } S C T C /T P 8 0 0.8 4.5 45 0. 5 ( 5) 0. 743 U 0.9 > URMPO U ' 0.9 > URMPO ( ) 0. 88 ( U 0.4, L, U 0. 0) URMPO 5 corollario ( U ' 0.8, U ' 0. ) URMPO 5 ( + U ). > ( + U ').98 Scheduling di processi HRT 56

IL TEST DI KUO-MOK ei casi in cui il partizionamento non sia univoco, conviene optare per quello che induce una distribuzione del fattore di utilizzazione del processore quanto più disuniforme possibile. S C T C/T P 5.5 0 0.55 5 5 0. 5 50 0. S C T C /T S C T C /T P 5.5 0 0.55 7.5 5 0.3 P P {, } P {P, } P 6.5 0 0.65 5 5 0. U ' 0.85 > U RMPO ( ) 0. 88 U RMPO ( U 0.55, U ' 0. 3) ' U RMPO ( U 0.65, U ' 0. ) ' ( + ').05 > U corollario ( + U ').98 Scheduling di processi HRT 57

IL TEST DI BURCHARD et al. (96) L utilizzazione schedulabile dell algoritmo RMPO è tanto maggiore (tendendo al valore limite nel caso di processi semplicemente periodici) quanto meno i periodi dei processi si discostano dalla relazione armonica. X log T log T ζ max X min X U RMPO (, ζ) ( ) / ( ) ζ /( ) ( ) + ζ ζ < / ζ / Scheduling di processi HRT 58

IL TEST DI BURCHARD 0.95 U RMPO (,ζ) 0.9 0.85 0.8 0.75 U RMPO () 0.7 4 6 8 0 0.8 0.6 ζ 0.4 0. 0 Scheduling di processi HRT 59

IL TEST DI BURCHARD A 5 C T C/T P 5 0 0.50 8 9 0.4 ( ) 0. 88 U 0.9 > URMPO ( + U ).3 URMPO( U 0.5, U 0.4) > X 0.3 X 0.48 ζ0.074 (, ζ 0.074) 0. 95 U 0.9 < URMPO Scheduling di processi HRT 60

IL TEST DI HA (97) Un insieme S di processi P,,, P è schedulabile con RMPO se (condizione solo sufficiente) ad esso corrisponde un insieme accelerato S di processi P,,, P semplicemente periodici e con fattore di utilizzazione del processore U U + U + + U. insieme S insieme accelerato S P (T, C ) P (T T, C C ) (T, C )...... (T T, C C )... P (T, C ) P (T T, C C ) Scheduling di processi HRT 6

IL TEST DI HA S C T C/T P 5 0.500 6 6.375 X 0.3, X 0 ζ0.3 ( ) 0. 88 U 0.875 > U RMPO ( + U ).065 URMPO ( U 0.5, U 0.375) > (, ζ 0.3) 0. 85 U 0.875 > U RMPO insieme accelerato S C T C /T P 5 8.65 6 6.375 U +U Scheduling di processi HRT 6

IL TEST DI HA Scheduling di processi HRT 63

IL TEST DI HA iterazione Complessità computazionale dell algoritmo: O( ) P T T T......... P k T k T k T i T i- * T i / T i- i,...,......... P T T P T T......... T i T i+ / T i+ / T i i k-,..., k - P k T k T k T k......... T i T i- * T i / T i- i k+,..., P T T P T T......... P k T k T k......... T i T i+ / T i+ / T i i -,..., P T T T Scheduling di processi HRT 64

IL TEST DI HA Limiti dell algoritmo S C T C/T I iterazione P T 0 T 0 P 8 0 0.4 6 60 0. 7 90 0.3 P 4 8 80 0. U.05 II iterazione T 60 T 60 T 3 90 T 3 60 P 4 T 4 80 T 4 80 P T 0 T 0 T * T / T 0 * 60 / 0 T * T 3 / T 60 * 90 / 60 T 3 * T 4 / T 3 60 * 80 / 60 T / T / T 60 / 60 / 0 U 0.9 U.05 T 60 T 60 T 3 90 T 3 60 P 4 T 4 80 T 4 80 T * T 3 / T 60 * 90 / 60 T 3 * T 4 / T 3 60 * 80 / 60 S C T C/T III iterazione P T 0 T 5 T / T / T 45 / 45 / 0 P 8 0 0.40 6 40 0.5 7 80 0.34 U.067 T 60 T 45 T 3 90 T 3 90 P 4 T 4 80 T 4 80 T 3 / T 3 / T 90 / 90 / 60 T 3 * T 4 / T 3 90 * 80 / 90 P 4 8 60 0. IV iterazione P T 0 T 5 T / T / T 45 / 45 / 0 U.0 U.067 T 60 T 45 T 3 90 T 3 90 P 4 T 4 80 T 4 80 T 3 / T 3 / T 90 / 90 / 60 T 4 / T 4 / T 3 80 / 80 / 90 Scheduling di processi HRT 65

AALISI DI SCHEDULABILITÀ BASATA SUL CALCOLO DEI TEMPI DI RISPOSTA [AUDSLEY et al. (93)] La schedulabilità è garantita se il tempo di risposta di ogni processo nelle condizioni più sfavorevoli (cioè a partire da un istante critico) non eccede la corrispondente deadline: ( R ) T i,,..., R i Ci + Ii i i I i rappresenta l interferenza sul tempo di risposta R i del processo P i derivante dall esecuzione di processi di priorità superiore. I i ( R i ) p p i R > i C T R i può essere calcolato nel seguente modo: n ( R ) n,,... 0 n R i C i, R i Ci + Ii i Scheduling di processi HRT 66

L ALGORITMO DI AUDSLEY A 5 C T C/T il processo a priorità massima non è soggetto a interferenza processo P : processo : P 5 0 0.50 U(A 5 ) 0.9 8 9 0.4 R R 0 C 5 < T 0 R 0 C 8 R C + R 0 /T * C 8 + 8/0 * 5 3 R C + R /T * C 8 + 3/0 * 5 8 R 3 C + R /T * C 8 + 8/0 * 5 8 R 3 R 8 < T 9 n0 n n n3 C R 0 I (R 0 ) + C R I (R ) + C R I (R ) + C R 3 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 Scheduling di processi HRT 67

L ALGORITMO DI AUDSLEY A 4 C T C/T P 5 0 0.5 6 5 0.4 U(A 4 ) 0.9 processo P : R R 0 C 5 < T 0 processo : R 0 C 6 R C + R 0 /T * C 6 + 6/0 * 5 R C + R /T * C 6 + /0 * 5 6 R 6 > T 5 n0 n n C R 0 I (R 0 ) + C R I (R ) + C R 0 3 4 5 6 7 8 9 0 3 4 5 6 Scheduling di processi HRT 68

U TEST PIÙ EFFICIETE, MA Ai fini della schedulabilità, è sufficiente verificare se per ogni processo, nelle condizioni più sfavorevoli (cioè a partire da un istante critico), risulta: C i T T i ( T ) C + C T i,, L, + Ii i i p > p i i A 5 C T C/T P 5 0 0.50 8 9 0.4 U(A 5 ) 0.9 processo P : C + I (T ) 5 < T 0 processo : C + T /T * C 8 + 9/0 * 5 8 < T 9 Scheduling di processi HRT 69

MEO EFFICACE Il test identifica un insieme di condizioni solo sufficienti: C T C/T P 5 0.50 P : C + I (T ) 5 < T 0 0 30.333 0 65.308 : C + T /T * C 0 + 30/0 * 5 0 < T 30 U 0.89 : C 3 + T 3 /T * C + T 3 /T * C 0 + 65/0 * 5 + 65/30 * 0 70 > T 3 65 P Idle Ready : Running 0 0 0 30 40 50 60 R 30 C 3 0 R 3 C 3 + R 30 /T * C + R 30 /T * C 0 + 0/0 * 5 + 0/30 * 0 35 R 3 C 3 + R 3 /T * C + R 3 /T * C 0 + 35/0 * 5 + 35/30 * 0 50 R 33 C 3 + R 3 /T * C + R 3 /T * C 0 + 50/0 * 5 + 50/30 * 0 55 R 34 C 3 + R 33 /T * C + R 33 /T * C 0 + 55/0 * 5 + 55/30 * 0 55 R 34 R 33 55 < T 3 65 Scheduling di processi HRT 70

U ESTESIOE DEL MODELLO PER LA SCHEDULAZIOE DI PROCESSI SIA PERIODICI CHE SPORADICI I processi sporadici, pur essendo tipicamente caratterizzati da una bassa frequenza di esecuzione, impongono vincoli più stringenti per quanto concerne il tempo di completamento della loro esecuzione (processi urgenti): D < T Ai fini della schedulazione è sufficiente estendere il precedente modello, prevedendo che ogni processo P sia esplicitamente caratterizzato da tre parametri: T (MIT nel caso di processi sporadici, periodo nel caso di processi periodici), D T (< nel caso di processi sporadici, nel caso di processi periodici) e C < D. Scheduling di processi HRT 7

L'ALGORITMO DEADLIE MOOTOIC PRIORITY ORDERIG (DMPO) [LEUG-WHITEHEAD (8)] Ad ogni processo P ( ) è staticamente associata una priorità inversamente proporzionale alla corrispondente deadline relativa: p / D. OTTIMALITÀ DELL'ALGORITMO Se un insieme di processi periodici e/o sporadici è schedulabile con un qualche algoritmo che prevede un attribuzione statica di priorità, allora tale insieme è schedulabile anche con DMPO. Se un insieme di processi periodici e/o sporadici non è schedulabile con DMPO, allora tale insieme non è schedulabile con alcun altro algoritmo che preveda un attribuzione statica di priorità. Scheduling di processi HRT 7

0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 6 C T D C/T p(rmpo) p(dmpo) P 4 0 0 0.40 3 5 6 0.0 max max U(A 6 ) 0.87 6 0.7 min min P 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 P Idle Ready Running RMPO: missed deadline DMPO: no missed deadline Scheduling di processi HRT 73

AALISI DI SCHEDULABILITÀ ATTRAVERSO DIAGRAMMI TEMPORALI A 7 C T D C/T p P 4 0 0 0.40 3 5 6 0.0 max 7 0.3 min U(A 7 ) 0.9 P 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 4 5 Idle Ready Running missed deadline (): insieme di processi non schedulabile Per poter schedulare applicazioni con un elevato fattore di utilizzazione del processore (come A 7 o A 4 ), occorre utilizzare un algoritmo che attribuisca le priorità ai processi non staticamente, bensì dinamicamente. Scheduling di processi HRT 74

AALISI DI SCHEDULABILITÀ: CALCOLO DEI TEMPI DI RISPOSTA Algoritmo di Audsley: condizione necessaria e sufficiente affinché un insieme di processi periodici e sporadici sia schedulabile con l algoritmo DMPO è che: R i R T i ( R ) C + C D i,, L, Ci + Ii i i p > p i i A 6 C T D C/T P 4 0 0 0.40 3 5 6 0.0 6 0.7 U(A 6 ) 0.87 : P : R R 0 C 3 < D 6 R 0 C 4 R C + R 0 /T * C 4 + 4/5 * 3 7 R C + R /T * C 4 + 7/5 * 3 7 R R 7 < D 0 : R 30 C 3 6 R 3 C 3 + R 30 /T * C + R 30 /T * C 6 + 6/5 * 3 + 6/0 * 4 3 R 3 C 3 + R 3 /T * C + R 3 /T * C 6 + 3/5 * 3 + 3/0 * 4 7 R 33 C 3 + R 3 /T * C + R 3 /T * C 6 + 7/5 * 3 + 7/0 * 4 0 R 34 C 3 + R 33 /T * C + R 33 /T * C 6 + 0/5 * 3 + 0/0 * 4 0 R 34 R 33 0 < D 3 Scheduling di processi HRT 75

TEST DI SCHEDULABILITÀ Condizione sufficiente (ma non necessaria) affinché un insieme di processi periodici e sporadici sia schedulabile con l algoritmo DMPO è che: C i D T i ( D ) C + C D i,, L, + Ii i i p > p i i A 6 C T D C/T P 4 0 0 0.40 3 5 6 0.0 6 0.7 U(A 6 ) 0.87 : C + I (D ) 3 < D 6 P : C + D /T * C 4 + 0/5 * 3 7 < D 0 : C 3 + D 3 /T * C + D 3 /T * C 6 + /5 * 3 + /0 * 4 4 > D 3 Scheduling di processi HRT 76

TEST DI SCHEDULABILITÀ Test basato sulla densità di utilizzazione del processore Condizione sufficiente (ma non necessaria) affinché un insieme di processi periodici e sporadici sia schedulabile con l algoritmo DMPO è che: C D U RMPO / ( ) ( ) Condizione fortemente conservativa se esistono uno o più processi con deadline relativa << periodo. Scheduling di processi HRT 77

TEST DI SCHEDULABILITÀ C T D C/D P 4 3 0.33 5 5 0.0 3 5 0.5 0.9 3 C 0.8 > U RMPO ( 3) 0. 78 D Il test fallisce nonostante l insieme dei processi sia schedulabile con l algoritmo DMPO: P 0 3 4 5 6 7 8 9 0 3 4 5 Idle Ready Running Scheduling di processi HRT 78

IL TEST DI LEHOCZKY (90) Condizione sufficiente (ma non necessaria) affinché un insieme di processi periodici e sporadici, ciascuno contraddistinto da una deadline relativa D δ * T,,,,, sia schedulabile con l algoritmo DMPO è che: C T U (, δ) ( ) ) δ / + δ 0.5 δ δ min { δ } δ 0 δ 0.5 C T D C/T D/T P 4 3 0.5 0.75 5 5 0.0 3 5 0.5 0.0 0.7 3 C 0.65 U ( 3, δ 0.7) 0. 656 T Scheduling di processi HRT 79

IL TEST DI LEHOCZKY U RMPO () 0.8 U(, δ) 0.6 0.4 0. 0 δ * U RMPO () 0.8 0.6 δ 0.4 0. 0 0 8 6 4 Scheduling di processi HRT 80

IL TEST BASATO SUL FATTORE DI UTILIZZAZIOE EFFICACE DEI PROCESSI Il test di Lehoczky nella formulazione precedente risulta ancora decisamente conservativo se i δ sono alquanto diversi fra loro. In tal caso è conveniente applicare il test calcolando individualmente per ogni processo P, in ordine di priorità decrescente, il fattore di utilizzazione efficace f, definito da: f C i + C + C i H T n i T k H k essendo H e H n i due sottoinsiemi di processi di priorità p(p ) con periodo, rispettivamente, D e < D, f e verificando se risulta: ( H + δ δ ) U n, L insieme di processi è schedulabile se tale condizione (sufficiente, non necessaria) è soddisfatta per P,,,,. Scheduling di processi HRT 8

IL TEST BASATO SUL FATTORE DI UTILIZZAZIOE EFFICACE DEI PROCESSI C T D C/T C/D D/T P 4 4 0.50 0.50 6 5 0.67 0.00 0.833 7 0.083 0.43 0.583 P 4 9 9 0. 0. 4 C D 0.85 > U RMPO ( 4) 0. 757 4 C 0.7 > U ( 4, δ 0.583) 0. 574 T H n H f U(,δ) P P 4 { } { } {P } { } {P, } { } {P, } { } /4 0.5 /4 + /6 0.47 /4 + /6 + / 0.5 /4 + /6 + (+)/9 0.75 U(,) U(,5/6) 0.749 U(3,7/) 0.575 U(3,) 0.78 Scheduling di processi HRT 8

SCHEDULABILITA I PRESEZA DI ITERRUPT SERVICE ROUTIES Il test basato sul fattore di utilizzazione efficace può essere convenientemente applicato per verificare la schedulabilità di un insieme di processi periodici (e/o sporadici) gestiti in accordo alla strategia RMPO (o DMPO) in presenza di interrupt service routines (ISR). E sufficiente a tale scopo 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. Esempio: la precedente applicazione risulterebbe ancora schedulabile se, al posto di P 4, considerassimo una ISR di pari frequenza e tempo di esecuzione? Scheduling di processi HRT 83

SCHEDULABILITA I PRESEZA DI ITERRUPT SERVICE ROUTIES C T D C/T C/D D/T P 4 4 0.50 0.50 6 5 0.67 0.00 0.833 7 0.083 0.43 0.583 ISR P 4 9 9 0. 0. H n H f U(,δ) ISR P { } { } { } {ISR} {P } {ISR} /9 0. (+)/4 0.75 /4 + (+)/6 0.75 U(,) U(,) U(,5/6) 0.749 {P, } {ISR} /4 + /6 + (+)/ 0.667 U(3,7/) 0.575 ISR P 0 3 4 5 6 7 8 9 0 condizione sufficiente, non necessaria Idle Ready Running Scheduling di processi HRT 84

L'ALGORITMO EARLIEST DEADLIE FIRST (EDF) Ad ogni processo è dinamicamente associata una priorità tanto maggiore quanto più imminente è la corrispondente deadline assoluta. A 4 C T D C/T P 5 0 0 0.5 6 5 5 0.4 U(A 4 ) 0.9 P 0 0 0 30 Idle Ready Running task-level dynamic-priority algorithm ob-level fixed-priority algorithm Scheduling di processi HRT 85

JOB-LEVEL FIXED vs. DYAMIC PRIORITY C T D C/T P 0.8 0.40.5 5 5 0.30.5 6 6 0.5 U 0.95 Idle Ready Running EDF p(j ) > p(j 3 ) P 0 0.5.5.5 3 3.5 4 4.5 5 5.5 6 (nonstrict) Least Slack Time First: task-level and ob-level dynamic-priority algorithm istanti decisionali: all atto del release o del complemento della esecuzione di un ob slack t 0 t 0.8 t t.8 t 4 t 4.3 t 5 t 5.3 t 5.4 t 6 P. -. -. 0.9 0.9 0.6 -. 3.5.7.7.9 0.7-3.5 3. 3. 3. 4.5 3.7.5.7.7.4 0.7 - - 4.5 LST p(j ) > p(j 3 ) p(j ) < p(j 3 ) p(j ) > p(j 3 ) P 0 0.5.5.5 3 3.5 4 4.5 5 5.5 6 Scheduling di processi HRT 86

OSTRICT LST slack 4.5 C T D C/T P 0.8 0.40.5 5 5 0.30.5 6 6 0.5 4 J 3 slack t 0 t 0.8 t P. -. 3.5.7.7 4.5 3.7.5 3.5 3 J P.5 0 0.5.5 J J 0 0.5.5 t Scheduling di processi HRT 87

STRICT vs. OSTRICT LST C T D C/T P.5 8 8 0.3 7 0.58 nonstrict LST slack t 0 t 7 P 5.5 -.5 5 - P 0 4 6 8 strict LST slack t 5 4 J J J J P 3 0 4 6 8 0 0 0 4 6 8 0 t Scheduling di processi HRT 88

EDF: CODIZIOI DI SCHEDULABILITÀ Condizione necessaria e sufficiente affinché un insieme di processi periodici sia schedulabile con l algoritmo EDF è che: U i Condizione sufficiente (ma non necessaria) affinché un insieme di processi periodici e sporadici sia schedulabile con l algoritmo EDF è che: Ci UEDF T i i Ci D i A 7 C T D C/T C/D P 4 0 0 0.40 0.40 3 5 6 0.0 0.50 7 0.3 0.3 U(A 7 ) 0.9 (A 7 ). Idle Ready Running P 0 0 0 30 40 Scheduling di processi HRT 89

AALISI DI SCHEDULABILITÀ: L APPROCCIO PROCESSOR DEMAD [BARUAH et al. (90)] La schedulabilità di un insieme di processi periodici e sporadici, contraddistinti da un fattore di utilizzazione del processore U ed attivati contemporaneamente all istante 0, è garantita se in ogni intervallo [0,t] il tempo di elaborazione cumulativamente richiesto per completare l esecuzione di tutti i ob aventi deadline t non eccede il tempo disponibile t: C P i i i t D Ti i ( 0, t) C ( 0, t) + C t i Ai fini della schedulabilità, è sufficiente verificare se tale condizione è soddisfatta per t D {d ik d ik (k-) T i + D i, d ik < BI, i, k }, essendo [0,BI] ( busy interval ) il più piccolo intervallo entro il quale termina l esecuzione di tutti i ob attivati in esso (ovvero all istante BI il processore risulta idle). BI può essere calcolato iterativamente nel seguente modo: n 0 n BI BI Ci BI Ci n,,... i i Ti (se U, n BI n BI n- H (iperperiodo); solo in caso contrario BI ) Scheduling di processi HRT 90

L APPROCCIO PROCESSOR DEMAD A 7 C T D C/T C/D P 4 0 0 0.40 0.40 3 5 6 0.0 0.50 7 0.3 0.3 U(A 7 ) 0.9 (A 7 ). BI 0 C + C + C 3 4 BI BI 0 /T C + BI 0 /T C + BI 0 /T 3 C 3 4/0 4 + 4/5 3 + 4/ 7 8 BI BI /T C + BI /T C + BI /T 3 C 3 8/0 4 + 8/5 3 + 8/ 7 BI 3 BI /T C + BI /T C + BI /T 3 C 3 /0 4 + /5 3 + / 7 5 BI 4 BI 3 /T C + BI 3 /T C + BI 3 /T 3 C 3 5/0 4 + 5/5 3 + 5/ 7 3 BI 5 BI 4 /T C + BI 4 /T C + BI 4 /T 3 C 3 3/0 4 + 3/5 3 + 3/ 7 39 BI 6 BI 5 /T C + BI 5 /T C + BI 5 /T 3 C 3 39/0 4 + 39/5 3 + 39/ 7 39 BI 5 BI 39 < H mcm (0, 5, ) 330 D {6, 0, 0,,, 30, 36} Scheduling di processi HRT 9

L APPROCCIO PROCESSOR DEMAD 0 C (0,t) 0 0 0 0 0 30 40 t 40 0 30 C (0,t) 0 C P (0,t) 0 0 0 0 0 30 40 t 0 0 0 0 0 0 30 40 t C 3 (0,t) 0 0 0 0 0 30 40 t Scheduling di processi HRT 9

L APPROCCIO PROCESSOR DEMAD BI 39 < H 330 P 0 0 0 30 40 D {6, 0, 0,,, 30, 36} t C (0,t) C (0,t) C 3 (0,t) C P (0,t) t 6 0 3 0 3 0 4 3 0 7 0 8 3 0 8 6 0 4 8 6 7 30 6 7 5 36 9 7 8 Scheduling di processi HRT 93

L APPROCCIO PROCESSOR DEMAD A 8 C T D C/T C/D P 4 0 0 0.40 0.40 3 5 6.5 0.0 0.46 8 0.38 0.38 U(A 8 ) 0.98 (A 8 ).4 n BI n 0 5 9...... (BI 8 BI 7 60) t C (0,t) C (0,t) C 3 (0,t) C P (0,t) t 6.5 0 3 0 3 0 4 3 0 7 0 8 3 0 8 3 8 9.5 8 6 8 P 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8 9 0 3 Idle Ready Running Scheduling di processi HRT 94

Scheduling di processi HRT 95 L APPROCCIO PROCESSOR DEMAD Indicato con: U C T D t i i i i * è possibile, qualora risulti t* < BI, migliorare l efficienza dell approccio limitandosi a verificare se è soddisfatta la condizione C P (0,t) t solo per il seguente insieme D* di istanti t: ( ) ( ) t C, T D Ut C T D t 0,t C 0,t C i i i i i i i i * P + + e quindi che C P (0,t) t per t t*. D* {d ik d ik (k-) T i + D i, d ik < t*, i, k }. Ciò deriva dalla constatazione che:

L APPROCCIO PROCESSOR DEMAD La diversa modellazione del tempo di elaborazione complessivamente richiesto in [0,t]: C (0,t) 0 0 A 7 C T D C/T C/D P 4 0 0 0.40 0.40 3 5 6 0.0 0.50 7 0.3 0.3 0 0 0 0 30 40 t 40 0 30 C (0,t) 0 C P (0,t) 0 0 0 0 0 30 40 t 0 0 0 0 0 0 30 40 t C 3 (0,t) 0 BI 39 D {6, 0, 0,,, 30, 36} 0 0 0 0 30 40 t t* D* {6, 0, 0, } t* < BI D* D Scheduling di processi HRT 96

L APPROCCIO PROCESSOR DEMAD A 9 C T D P 4 0 5 3.5 5 8 5 BI 0 D {5, 8, 5} t* 7.7 D* {5, 8, 5,, 3, 5} t* > BI D* D t C (0,t) C (0,t) C 3 (0,t) C P (0,t) t 5 4 0 0 4 8 4 3.5 0 7.5 5 8 3.5 0.5 In generale: t* o BI? min (t*,bi) BI n Scheduling di processi HRT 97

RMPO, DMPO, EDF: ASPETTI REALIZZATIVI Separazione tra aspetti funzionali e temporali ame P... P Period P Period... P Period Relative Deadline P Deadline... P Deadline InitializationEntryPoint P ResetHandler... P ResetHandler JobEntryPoint P Handler... P Handler MissedDeadlineEntryPoint P MissedDeadlineHandler... P MissedDeadlineHandler Specifiche a livello di application design SystemTickRate ( ) /* real-time clock frequency */ SystemTickConnect (EntryPoint) /* hook to real-time clock interrupt handler */ TaskSpawn (ame, Priority, Options, StackSize, EntryPoint, Arg,, Arg0) /* creation & activation */ SetTaskPriority (TaskId, Priority) /* TaskId 0: calling task */ TaskSuspend (TaskId) /* TaskId 0: calling task */ TaskResume (TaskId) TaskIsSuspended (TaskId) Primitive del Sistema Operativo (VxWorks) Distinzione tra politiche e meccanismi Scheduling di processi HRT 98

RMPO, DMPO: IL RUOLO DEL METASCHEDULER A C T P 5 5 5 50 7.5 00 Ad ogni processo è attribuita una priorità (statica) in base alla corrispondente deadline relativa RESUME SUSPEDRESUME SUSPEDRESUME SUSPEDRESUME SUSPEDRESUME P RESUME SUSPED RESUME SUSPED RESUME RESUME SUSPED RESUME Metascheduler P 0 0 0 30 40 50 60 70 80 90 00 Idle Ready Running Scheduling di processi HRT 99

ESECUZIOE PERIODICA DEL METASCHEDULER Real-Time Clock Interrupt void SystemTickInterruptHandler (void) { SystemTickHandler ( ); SystemTickConnect (SystemTickHandler); } private void SystemTickHandler (void) { if ((--MetaschedulerReleaseTimer) 0) { TaskResume (MetaschedulerId); } } MetaschedulerReleaseTimer MetaschedulerReleaseTime; /* 50 se T RTC 500 µs T METASCHEDULER mcd (5 (P ), 50 ( ), 00 ( )) 5 ms */ Scheduling di processi HRT 00

ESECUZIOE PERIODICA DEI PROCESSI MetaschedulerId TaskSpawn ( Metascheduler, HighPriority, DefaultOptions, DefaultStackSize, MetaschedulerShell, 0); private void MetaschedulerShell (void) { while (true) { TaskSuspend (0); private void Metascheduler (void) Metascheduler ( ); { } repeat for each P } { if ((--PReleaseTimer) 0) { TaskResume (PId); PReleaseTimer PReleaseTime; /* (P ), ( ), 4 ( ) */ } } } Scheduling di processi HRT 0

ESECUZIOE PERIODICA DEI PROCESSI /* for each P */ PId TaskSpawn ( P, PPriority, DefaultOptions, DefaultStackSize, TaskShell, PHandler); private void TaskShell (void (* PHandler) (void)) { while (true) { TaskSuspend (0); PHandler ( ); } } missed deadline Scheduling di processi HRT 0

GESTIOE DEI SOVRACCARICHI Gli stati di un processo a livello di: metascheduler idle not_idle scheduler suspended ready / running Metascheduler: TaskResume (PId) RESUME ready suspended Scheduler: Task Dispatching and Preemption running SUSPED Task: TaskSuspend (self) Scheduling di processi HRT 03

GESTIOE DEI SOVRACCARICHI private void Metascheduler (void) { repeat for each P { if (PState! idle) { PExecutionTimer++; if (TaskIsSuspended (PId)) { ExecutionTimeLogHandler (P, PExecutionTimer) /* min, max, average, */ PState idle; } else { if (PExecutionTimer PCompletionTime) /* missed deadline */ { PMissedDeadlineCounter++; PMissedDeadlineHandler; /* application dependent */ } } } Scheduling di processi HRT 04

GESTIOE DEI SOVRACCARICHI } } MetaSchedulerReleaseTime PReleaseTime if ((--PReleaseTimer) 0) { 50 00 00 if (PState idle) 5 50 00 { TaskResume (PId); PReleaseTimer PReleaseTime; PExecutionTimer 0; PState not_idle; } else /* overrun */ { P POverrunCounter++; if (POverrunHandlingPolicy ASAP) risoluzione PReleaseTimer ; /* release next ob As Soon As Possible */ else PReleaseTimer PReleaseTime; /* skip next ob execution */ } } Scheduling di processi HRT 05

GESTIOE DEI SOVRACCARICHI private void SystemTickHandler (void) { if ((--MetaschedulerReleaseTimer) 0) { if (TaskIsSuspended (MetaschedulerId)) TaskResume (MetaschedulerId); else MetaschedulerOverrunCounter++; MetaschedulerReleaseTimer MetaschedulerReleaseTime; } } Scheduling di processi HRT 06

RMPO, DMPO: IIZIALIZZAZIOE void MetaschedulerAndTasksInitialization (void) { MetaschedulerReleaseTime /* [SystemTicks] */ SystemTickRate /* [SystemTicks/s] */ * MetaschedulerPeriod /* [µs] */ / 000000; repeat for each P { PResetHandler ( ); PReleaseTime /* [MetaschedulerTicks] */ PPeriod /* [µs] */ / MetaschedulerPeriod; PCompletionTime /* idem */ PDeadline /* [µs] */ / MetaschedulerPeriod; PPriority PriorityHandler (PCompletionTime); PId TaskSpawn ( P, PPriority, DefaultOptions, DefaultStackSize, TaskShell, PHandler); PReleaseTimer ; PState idle; PMissedDeadlineCounter 0; POverrunCounter 0; ExecutionTimeLogResetHandler (P); /* min, max, average, */ } MetaschedulerId TaskSpawn ( MetaScheduler, HighPriority, DefaultOptions, DefaultStackSize, MetaschedulerShell, 0); MetaschedulerReleaseTimer ; MetaschedulerOverrunCounter 0; } SystemTickConnect (SystemTickHandler); Scheduling di processi HRT 07

RMPO: RISULTATI SPERIMETALI C T C/T p P 5 0 0.50 max 6 5 0.40 5 0.08 min U 0.98 overrun handling policy: ASAP P 0 0 0 30 40 50 missed deadline Idle Ready Running effetto domino sui processi di priorità inferiore Scheduling di processi HRT 08

RMPO: RISULTATI SPERIMETALI overrun handling policy: SKIP P 0 0 0 30 40 50 no missed deadlline Idle Ready Running t.u. RTC ISR Metascheduler P S.O.: VxWorks Tool: WindView Scheduling di processi HRT 09

head EDF: ASPETTI REALIZZATIVI Gestione dinamica della priorità di ciascun processo in base alla corrispondente deadline assoluta not-idle tasks queue tail next next next P max δct δct priority priority P id previous previous previous P id CT: Completion Time δct: delta Completion Time δct(next(head)) CT(next(head)) δct() CT() - CT(previous()), next( next(head)) inizializzazione: next(head) tail, previous(tail) head Scheduling di processi HRT 0

GESTIOE DIAMICA DELLE PRIORITA Enqueue (, CT()) Dequeue () δct() CT(); c next(head); while (δct() > δct(c)) { δct() - δct(c); c next(c); } if (c! tail) δct(c) - δct(); p previous(c); next(p) ; next() c; previous() p; previous(c) ; UpdatePriorities (); p previous(); c next(); if (c! tail) δct(c) + δct(); next(p) c; previous(c) p; UpdatePriorities (c); UpdatePriorities (i) while (i! tail) { priority(i) (priority(previous(i))); SetTaskPriority (P id (i), priority(i)); i next(i); } Scheduling di processi HRT

GESTIOE DIAMICA DELLE PRIORITA private void Metascheduler (void) UpdateCompletionTimes ( ) { c next(head); UpdateCompletionTimes ( ); repeat for each P while (δct(c) 0) c next(c); { if (c! tail) δct(c)--; idem Enqueue (P, PCompletionTime); TaskResume (PId); idem } } private void TaskShell (void (* PHandler) (void)) { } while (true) { } TaskSuspend (0); PHandler ( ); SetTaskPriority (0, MetaSchedulerPriority); Dequeue (P); Scheduling di processi HRT

UA EFFICIETE GESTIOE ALTERATIVA 3 livelli di priorità (Low, Medium, High), condivisi da tutti i processi. Medium: priorità di un processo allorché running, ovvero con deadline più imminente. Low: priorità di un processo allorché pronto, ovvero con deadline meno imminente. High: priorità (coincidente con quella del metascheduler) di un processo allorché, al termine di un ob e prima di autosospendersi, promuove l esecuzione del processo con deadline ora più imminente, modificandone la priorità da Low a Medium. RESUME READY Low SUSPEDED Medium Low High SUSPED RUIG Scheduling di processi HRT 3

private void Metascheduler (void) { UpdateCompletionTimes ( ); r next(head); repeat for each P { idem EnqueueOnly (P, PCompletionTime); SetTaskPriority (PId, Low); TaskResume (PId); idem } if (next(head)! r) { } UA EFFICIETE GESTIOE ALTERATIVA } if (r! tail) SetTaskPriority (P id (r), Low); SetTaskPriority (P id (next(head)), Medium); private void TaskShell (void (* PHandler) (void)) { while (true) { TaskSuspend (0); PHandler ( ); SetTaskPriority (0, High); DequeueOnly (P); if (next(head)! tail) SetTaskPriority (P id (next(head)), Medium); } } Scheduling di processi HRT 4

EDF: RISULTATI SPERIMETALI C T C/T P 5 0 0.50 6 5 0.40 5 0.08 U 0.98 P 0 0 0 30 40 50 Idle Ready Running RTC ISR Metascheduler P S.O.: VxWorks Tool: WindView Scheduling di processi HRT 5