--------------------------------------------------------------------- Hack~Lab Firenze * STAI FERMO DUE SECONDI * Sistemi operativi real time e RTLinux A cura di giannibi - giannibi (at) firenze.linux.it ---------------------------------------------------------------------- I sistemi real time rivestono un'importanza fondamentale soprattutto in ambito industriale ma anche nei settori della multimedialita', delle comunicazioni, della robotica, della medicina. In questi campi, dove talvolta il mancato rispetto di precisi vincoli temporali puo' portare ad effetti catastrofici, e' necessita' irrinunciabile il poter disporre di sistemi di elaborazione caratterizzati da elevata prevedibilita' dei tempi di risposta anche in applicazioni che comportino un forte grado di interazione con l'utente. Gli ambienti multiprogrammati di uso generale (specialmente *nix), se da una parte sono orientati all'impiego efficiente delle risorse ed alla versatilita' nell'utilizzo, dall'altra non forniscono alcuna garanzia riguardo alla temporizzazione delle operazioni. Lo scopo dei sistemi real time e' quello di conciliare queste due esigenze, impiegando soluzioni architetturali necessariamente molto diverse da quelle adottate nei sistemi operativi general purpose. Analizzeremo alcune delle filosofie utilizzate e vedremo come la necessita' di prestazioni tempo reale influenzi il progetto di componenti fondamentali del sistema come lo scheduler, la gestione delle interruzioni hardware ed i meccanismi di sincronizzazione. La maggior parte degli ambienti real time e' basata su tecnologie proprietarie. Real Time Linux (RTLinux), valida alternativa free ai sistemi commerciali, e' costituito da un'estensione piuttosto semplice del kernel linux per l'architettura Intel. Analizzeremo gli aspetti realizzativi che rendono RTLinux compatibile con i requisiti di un sistema tempo reale (interruzioni, scheduling, temporizzazione) e l'interfaccia di programmazione (API) per lo sviluppo di applicazioni real time.