Sistemi operativi real time basati su : gestione delle risorse e dei processi. Tesina per l esame di Sistemi Operativi a cura di. Prof. Aldo Franco Dragoni Corso di laurea in Ingegneria Informatica e dell Automazione. Settembre 2004 1.1
e il Real Time Settembre 2004 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 1.3
Cos e un sistema operativo Real Time? Due possibili definizioni: Un sistema operativo real time e in grado di eseguire tutti i suoi compiti senza violare specifici vincoli di tempo. 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 Soft Real Time I vincoli temporali stabiliti devono essere rispettati imprescindibilmente. I vincoli temporali stabiliti vengono rispettati in maniera elastica. Settembre 2004 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 1.5
Cos e? 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 (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 1.6
Real Time : approccio 1 ll kernel viene sostituito con una versione ex-novo dotata di funzionalita real time Settembre 2004 1.7
Real Time : approccio 2 ll kernel ordinario viene affiancato da un resource kernel in grado di fornire funzionalita real time all occorrenza. Il kernel rappresenta ora un thread in esecuzione con bassa priorita. Settembre 2004 1.8
Real Time : approccio 3 Stesso approccio del caso 2 con la differenza che in kernel non ha piu la possibilita di accedere al hardware di sistema. Le hard-routines del kernel ordinario diventano delle soft-routines. Settembre 2004 1.9
L architettura di RT app app app Kernel kernel app app RT thread RT thread Resource Kernel (RealTime) User Kernel Settembre 2004 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 RT. 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). Compatibility Layer: fornisce una interfaccia tra RTAI e standard. Core RTOS: nucleo di RTAI che fornisce funzionalita real time al sistema. LX/RT ( / 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 1.11