Sistemi operativi real time basati
su Linux: gestione delle risorse e
dei processi.
Tesina per l’esame di Sistemi Operativi
a cura di Giuseppe Montano.
Prof. Aldo Franco Dragoni
Corso di laurea in Ingegneria Informatica e dell’Automazione.
Settembre 2004
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.1
Linux e il Real Time
Settembre 2004
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.2
Definizioni iniziali
¾ Processo - istanza di un programma in esecuzione.
¾ Latenza - riferita a un processo, e’ la differenza di tempo tra l’istante in cui tale
processo sarebbe dovuto iniziare (o finire) e l’istante in cui cio’ si e’ effettivamente
verificato.
¾ Vincolo temporale - uno dei seguenti:
• Deadline: istante entro il quale un task deve essere completato.
• Zero execution time: semplificazione ideale secondo cui un task dovrebbe
avere durata pari a zero.
• QoS (Qualita’ del servizio): un task deve utilizzare una precisa quantita’ di
risorse per unita’ di tempo.
Settembre 2004
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.3
Cos e’ un sistema operativo Real Time?
Due possibili definizioni:
9 Un sistema operativo real time e’ in grado di eseguire tutti i suoi compiti senza
violare specifici vincoli di tempo.
9 I tempi in cui le operazioni vengono eseguite possono essere determinati a priori
deterministicamente sulle basi della conoscenza del hardware e del software del
sistema in questione.
RTOS
Hard Real Time
I vincoli temporali stabiliti
devono essere rispettati
imprescindibilmente.
Settembre 2004
Soft Real Time
I vincoli temporali stabiliti
vengono rispettati in maniera
elastica.
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.4
Modelli di esecuzione
Nei sistemi operativi esistono due differenti modelli di esecuzione dei processi che
sono un cardine fondamentale su cui si basano le funzionalita’ real time del
sistema in questione:
1) modalita’ preemptive
2) modalita’ non-preemptive
¾ Preemptive: un task in kernel space puo’ essere interrotto (preempted)
durante la sua esecuzione da un altro task
¾ Non-preemptive: dal momento in cui un task in kernel space viene avviato non
ne puo’ essere eseguito nessun altro fino al momento in cui il primo termina o
rilascia la CPU.
Settembre 2004
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.5
Cos e’ Linux?
¾ E’ un Sistema Operativo (banale!)
¾ E’ la tesi di laurea di Linus Torvalds all’Universita’ di Helsinki
¾ Sviluppato a partire da Minix (un sistema UNIX molto ridotto) su un 80386
¾ Nel 1991 viene rilasciata la prima versione di Linux (la 0.02)
¾ L’ultima versione (corrente) e’ la 2.6
¾ E’ considerato un S.O. eccellente, economico e alternativo ad altri S.O. molto
costosi (Windows2003, UNIX, MacOS…)
¾ Ha un kernel a struttura monolitica
¾ Non e’ adatto a scenari real time perche’ (tra le tante motivazioni):
• ha un kernel non-preemptive
• ha politiche di scheduling “eque”, con scarsa possibilita’ di variazione sulle
priorita’
• ha un comportamento non deterministico
Settembre 2004
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.6
Real Time Linux: approccio 1
ll kernel viene sostituito con una versione ex-novo dotata di funzionalita’ real time
Settembre 2004
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.7
Real Time Linux: approccio 2
ll kernel ordinario viene affiancato da un resource kernel in grado di fornire
funzionalita’ real time all’occorrenza. Il kernel Linux rappresenta ora un thread
in esecuzione con bassa priorita’.
Settembre 2004
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.8
Real Time Linux: approccio 3
Stesso approccio del caso 2 con la differenza che in kernel Linux non ha piu’ la
possibilita’ di accedere al hardware di sistema. Le hard-routines del kernel
ordinario diventano delle soft-routines.
Settembre 2004
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.9
L’architettura di RTLinux
Linux
app
Linux
app
Linux
app
Linux
app
Linux
app
User
KernelLinux
Linuxkernel
RT thread
Kernel
RT thread
Resource Kernel (RealTime)
Settembre 2004
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.10
L’architettura di RTAI
RTAI (Real Time Application Interface) e’ un progetto avviato dall’italiano Paolo
Mantegazza che lo ha sviluppato a partire da RTLinux. RTAI si compone di 5 livelli
complementari:
¾ HAL (Hardware Abstraction Layer): fornisce una interfaccia verso il hardware di
sistema (crea una sorta di macchina virtuale real time su cui poggia il sistema).
¾ Linux Compatibility Layer: fornisce una interfaccia tra RTAI e Linux standard.
¾ Core RTOS: nucleo di RTAI che fornisce funzionalita’ real time al sistema.
¾ LX/RT (Linux / Real Time): insieme di moduli caricabili dal kernel che
permettono ai processi in user space di sfruttare funzionalita’ real time del sistema.
¾ Pacchetti con funzionalita’ avanzate: forniscono degli extra al sistema come
particolari forme di IPC, drivers real time, ecc...
Settembre 2004
Sistemi operativi real time basati su Linux: gestione
delle risorse e dei processi
Giuseppe Montano
1.11