22
FACOLT FACOLT Á Á DI INGEGNERIA DI INGEGNERIA CORSO DI LAUREA CORSO DI LAUREA INGEGNERIA INFORMATICA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

Embed Size (px)

Citation preview

Page 1: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

FACOLTFACOLTÁÁ DI INGEGNERIA DI INGEGNERIA

CORSO DI LAUREACORSO DI LAUREAINGEGNERIA INFORMATICAINGEGNERIA INFORMATICA

Progetto e Sviluppo di un Algoritmo di Scheduling per il

Sistema RTAI

Candidato:Luca Marzario

Page 2: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

SommarioSommario

Motivazioni Obiettivi Architettura del sistema RTAI Implementazione Test Conclusioni

Page 3: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

MotivazioniMotivazioni

Applicazioni interattive e multimediali Quality of service

Sistemi operativi general-purpouse (Windows, Linux, ...) non offrono garanzie temporali

Sistemi operativi real-time troppo costosi non offrono supporto adeguato alle applicazioni

multimediali e interattive

Page 4: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

Caratteristiche di LinuxCaratteristiche di Linux Linux non è un sistema operativo real-time Possiede molte caratteristiche che ne fanno un

ottimo sistema operativo:

robusto e affidabileampio supporto di processori

e periferichenetworking avanzatostrumenti di sviluppo e dubugginginterfaccia graficaampia disponibilità di software

Page 5: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

Linux e Real-TimeLinux e Real-Time

Linux non possiede le caratteristiche tipiche dei sistemi real-time:determinismo (prevedibilità)possibilità di preemtionspecifica vincoli temporaliprogrammazione “fine” del timer

Page 6: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

RTAIRTAI Real-Time Application Interface (RTAI)

Affianca a Linux un kernel real-time Schedula Linux come idle task

Vantaggi Buone prestazioni real-time per i task RTAI Sistema di sviluppo basato su Linux

Problemi Starvation di Linux in caso di alti carichi

real-time Crash del sistema in caso di errori di

programmazione o malfunzionamenti

Page 7: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

SoluzioniSoluzioni

Implementare un algoritmo di reservation su RTAI Riservare banda di utilizzo del processore a ogni task

Tempo minimo di esecuzione garantito Protezione del sistema da errori di

programmazione o malfunzionamenti

Schedulare Linux con il CBS Shell di comandi sempre attiva Minor tempo di risposta delle applicazioni Linux

Page 8: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

Real Time Application Interface (RTAI)Real Time Application Interface (RTAI)

Sistema real-time che permette l’esecuzione di applicazioni tipo hard real-time

Fa parte dei progetti Linux Real-Time

Questo tipo di sistemi si definisce “real time executive”

Solo il kernel real-time ha il pieno controllo dell’hardware

Principali sistemi: RTAI e RTLinux

real time executive

hardware

Linux Task 1 Task n

Page 9: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

RTAI vs RTLinuxRTAI vs RTLinux

Prestazioni offerte paragonabili. Interfacce di programmazione (API) molto simili RTAI è meno intrusivo rispetto a RTLinux:

Maggiore mantenutibilità Più facile aggiornamento delle modifiche kernel Linux

RTLinux open-source non è più mantenuto RTAI costantemente aggiornato

Ultima versione di RTAI rilasciata il 23 settembre 2002

Page 10: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

RTAIRTAI

Costituito di moduli da inserire nel kernel Linux precedentemente modificato

Moduli principali Gestore interruzioni

(interrupt dispatcher) Scheduler

Moduli aggiuntivi FIFO shared memory POSIX etc.

Task Real-Time

Gest. Interr

Scheduler

FIFO

Shared Mem

POSIX

RT task

kernel

Linux

modificato

LinuxTask

Page 11: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

Applicazione RTAIApplicazione RTAICostituita di due componenti

Meccanismi di comunicazione fifo scambio di messaggi segnali memoria condivisa ...

TaskRT1

RTAI

TaskRTn

TaskRT2

Linux

P1

P2

Pk

Real-time (acquisizione, elaborazione, controllo etc.) eseguita da task RTAI (real-time)

Non real-time (visualizzazione, tracing etc.) eseguita da processi Linux non disturba le attività real-time

Page 12: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

RTHALRTHAL

Attivazione RTAI modifica dei puntatori dell’rthal

Linux disable interrupt

RTHAL disable interrupt

Hard disable

Soft disable

Disattivazione ripristino dei puntatori alle funzioni originali di Linux

Modifiche kernel Linux Linux perde il controllo diretto dell’hardware

RTHAL

hardware

Linux Task 1 Task n

Page 13: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

RTAI interrupt dispatcherRTAI interrupt dispatcher

RTAI dispatcher

Salva registri

rtai handler? rtai handler

Linux in esec?

Linux handler

Linux handler?

interruzionependente

Ripristina registri

Page 14: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

SchedulerScheduler Architetture supportate

monoprocessoremultiprocessore

Politiche di schedulingPrioritario SempliceRate MonotonicEarliest Deadline First

Gestione del Timermodalità periodicamodalità one-shot

Page 15: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

Resource reservationResource reservation

Ogni task ha riservato un tempo Q ogni periodo T

Processi hard real-time e soft real-time possono convivere

E’ possibile riservare una frazione del tempo macchina a Linux

Page 16: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

Il Constant Bandwidth ServerIl Constant Bandwidth Server

Resource reservation tramite CBS (Constant Bandwidth Server)

Basato sul TBS e DSSRispetto al TBS non richiede WCETRispetto al DSS migliori prestazioni

Page 17: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

Algoritmo CBSAlgoritmo CBS Ad ogni task viene associato un server schedulato

con EDFcapacità massimaperiodo

Ad ogni istanza servita dal server viene associata una deadline dinamica

Durante l’esecuzione la capacità viene decrementata. Una volta esaurita, viene ricaricata al suo valore massimo e la deadline viene posposta (diminuzione priorità)

Page 18: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

Applicazione di provaApplicazione di prova

Linux P1

RT3

RT2

RT1

FIFO

Page 19: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario
Page 20: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario
Page 21: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

Frequenze jitter con CBS

0102030405060708090

100

-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6

jitter (ms)

Frequenze jitter senza CBS

01020

30405060

708090

-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6

jitter (ms)

Page 22: FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario

ConclusioniConclusioni

Risultati ottenutiDiminuzione dei tempi di risposta delle

applicazioni LinuxGaranzia di schedulazione di Linux anche in

caso di grossi carichi real-timeMaggior controlloMaggiore robustezza