Lezione? Real-Time Marco Cesati Marco Cesati Lezione R13
Total Page:16
File Type:pdf, Size:1020Kb
Sistemi operativi Sistemi operativi real-time Di cosa parliamo in questa lezione? real-time Marco Cesati Marco Cesati Lezione R13 Sistemi operativi real-time – II In questa lezione descriviamo brevemente alcuni dei più diffusi Schema della lezione sistemi operativi real-time Schema della lezione Caratteristiche comuni Caratteristiche comuni VxWorks VxWorks LynxOS LynxOS 1 Caratteristiche comuni degli RTOS QNX QNX Sistemi embedded e real-time 2 eCos VxWorks eCos Windows 3 LynxOS Windows Linux come RTOS Linux come RTOS 4 15 gennaio 2013 QNX Neutrino 5 eCos 6 Windows Embedded CE 7 Linux come RTOS Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT’13 R13.1 SERT’13 R13.2 Sistemi operativi Sistemi operativi Caratteristiche comuni dei principali RTOS real-time La schedulazione nei principali RTOS real-time Marco Cesati Marco Cesati Corrispondenza agli standard: generalmente le API sono Almeno 32 livelli di priorità differenti proprietarie, ma gli RTOS offrono anche compatibilità Possibilità di scelta fra FIFO e Round Robin per la (compliancy) o conformità (conformancy) allo standard gestione dei task nello stesso livello di priorità Real-Time POSIX Possibilità di cambiare la priorità a run-time Modularità e Scalabilità: il kernel ha una dimensione Schema della lezione Schema della lezione Caratteristiche comuni Caratteristiche comuni (footprint) ridotta e le sue funzionalità sono configurabili Generalmente non supportano in maniera nativa politiche VxWorks VxWorks di scheduling a priorità dinamica (es. EDF) o la possibilità Dimensione del codice: spesso basati su microkernel LynxOS LynxOS QNX di integrare server a conservazione di banda, ecc. QNX Velocità e Efficienza: basso overhead per cambi di eCos Offrono meccanismi di controllo dell’inversione di priorità: eCos contesto, latenza delle interruzioni e primitive di Windows Windows tipicamente priority inheritance, alcuni RTOS anche sincronizzazione Linux come RTOS Linux come RTOS priority ceiling Porzioni di codice non interrompibile: generalmente molto corte e di durata predicibile Risoluzione nominale di timer e orologi di un nanosecondo, ma l’accuratezza non è mai sotto a 100 ns Gestione delle interruzioni “separata”: interrupt handler a causa della latenza di gestione delle interruzioni corto e predicibile, ISR lunga e di durata variabile Gestione della memoria: possibilità di utilizzare memoria virtuale e protezione dello spazio di indirizzi kernel Alcuni meccanismi, come quelli di controllo dell’inversione di (disabilitabili); non esiste in genere la paginazione priorità, possono essere abilitati o disabilitati in fase di progetto SERT’13 R13.3 SERT’13 R13.4 Sistemi operativi Sistemi operativi Quanti sono gli RTOS? real-time Quanti sono gli RTOS? (2) real-time Marco Cesati Marco Cesati Esistono molti sistemi operativi RTOS, in particolare per il Abassi, AMOS, AMX RTOS, ARTOS (Locamation), ARTOS (Robotu), Atomthreads, AVIX, segmento embedded BeRTOS, BRTOS, CapROS, ChibiOS/RT, ChorusOS, ChronOS, CMX RTOS, cocoOS, Concurrent CP/M, Concurrent DOS, Contiki, COS, CooCox CoOS, Deos, DioneOS, DNIX, Ad esempio: GEC DOS, DrRtos, DSPnano RTOS, DSOS, eCos, eCosPro, embOS, Embox, ERIKA Schema della lezione Schema della lezione VxWorks Enterprise, EROS, Femto OS, FlexOS, FreeRTOS, FunkOS, Fusion RTOS, Helium, Caratteristiche comuni HP-1000/RTE, Hybridthreads, IBM 4680 OS, IBM 4690 OS, INTEGRITY, IntervalZero Caratteristiche comuni LynxOS VxWorks VxWorks RTX, ITRON, µITRON, ioRTOS, iRTOS, KolibriOS, LynxOS, MaRTE OS, MAX II,IV, LynxOS LynxOS QNX MenuetOS, Micrium µC/OS-II, Micrium µC/OS-III, Milos, Microsoft Invisible Computing QNX QNX (MMLite), MP/M, MERT, Multiuser DOS, Nano-RK, Neutrino, Nokia OS, Nucleus OS, Windows CE eCos eCos Linux Windows NuttX, On Time RTOS-32, OS20, OS21, OS4000, OPENRTOS, OSA, OSE, OS-9, OSEK, Windows Linux come RTOS Phar Lap ETS, PaulOS, PICOS18, picoOS, Phoenix-RTOS, PikeOS, Portos,POK, Linux come RTOS eCos PowerTV, Prex, Protothreads, pSOS, QNX, Q-Kernel, QP, RDOS, REAL/32, Real-time PikeOS Linux (CONFIG_RT_PREEMPT), REX OS, RSX-11, RT-11, RTAI, RTEMS, rt-kernel, ThreadX RTLinux, RT-Thread, RTXC Quadros, SafeRTOS, Salvo, SCIOPTA, scmRTOS, SDPOS, RTEMS SHaRK, SimpleAVROS, SINTRAN III, Sirius RTOS, SMX RTOS, SOOS Project, Symbian OS, SYS/BIOS, Talon DSP RTOS, TargetOS, T-Kernel, THEOS, ThreadX, Trampoline Operating System Embedded Operating System (OSEK and AUTOSAR), TNKernel, Transaction Processing Facility, OS-9 TRON project, TUD:OS, Unison RTOS, UNIX-RTR, µTasker, u-velOSity, VRTX, Windows Nucleus OS CE, Xenomai, xPC Target, Y@SOS, MontaVista Linux, µnOS, uOS SERT’13 R13.5 SERT’13 R13.6 Sistemi operativi Sistemi operativi VxWorks real-time Gestione delle interruzioni in VxWorks real-time Marco Cesati Marco Cesati VxWorks è un RTOS commerciale prodotto dalla WindRiver (www.windriver.com) Le Interrupt Service Routine (ISR) eseguono in un Installato su oltre 500 milioni di dispositivi contesto differente rispetto a quello di tutti i task ed a priorità più elevata di quelle dei task Basato sul microkernel Wind Schema della lezione Schema della lezione Caratteristiche comuni È possibile aggiustare la priorità di interruzioni provenienti Caratteristiche comuni È utilizzato in sistemi ad elevata affidabilità con VxWorks da particolari periferiche VxWorks certificazione DO-178B livello A, Arinc 653, IEC 61508 LynxOS LynxOS QNX Ciascuna ISR può essere interrotta da una ISR di priorità QNX Ha un ambiente di sviluppo basato su Eclipse eCos eCos superiore (WorkBench) Windows Windows Linux come RTOS Linux come RTOS Supporta lo sviluppo cross-platform e semplifica la Le ISR condividono un unico stack (che deve essere creazione delle toolchain di compilazione e collegamento abbastanza grande in rapporto al massimo livello di annidamento di interruzioni richiesto dal progetto) Adatto sia per sistemi embedded che per sistemi con molte risorse Le interruzioni possono essere disabilitate o abilitate mediante le API proprietarie intLock() ed Le API (interfaccie per le applicazioni) sono proprietarie intUnLock() Fornisce anche un’interfaccia di compatibilità per le API POSIX Real-Time SERT’13 R13.7 SERT’13 R13.8 Sistemi operativi Sistemi operativi Schedulazione in VxWorks real-time Gestione della memoria e comunicazione in VxWorks real-time Marco Cesati Marco Cesati Se presente, può utilizzare un dispositivo MMU (Memory I task del sistema sono in generale interrompibili Management Unit) Lo scheduler è a priorità fissa a livello di task per realizzare memoria virtuale Schema della lezione Schema della lezione Task di pari priorità possono essere gestiti con politiche Caratteristiche comuni per proteggere lo spazio di indirizzamento Caratteristiche comuni FIFO oppure Round Robin VxWorks VxWorks LynxOS sono comunque meccanismi disabilitabili LynxOS È possibile disabilitare l’interrompibilità di un task QNX QNX (API proprietarie taskLock() e taskUnLock()) eCos eCos Windows Supporta i principali meccanismi di comunicazione fra task: Windows Supporta il meccanismo di priority inheritance Linux come RTOS Linux come RTOS Memoria condivisa Supporta architetture SMP (multiprocessore simmetrico) ed architetture AMP (multiprocessore asimmetrico) Semafori e mutex Consente di specificare la CPU preferenziale di Code di messaggi e pipe esecuzione di un task (taskCpuAffinitySet()) Segnali SERT’13 R13.9 SERT’13 R13.10 Sistemi operativi Sistemi operativi LynxOS real-time Gestione delle interruzioni in LynxOS real-time Marco Cesati Marco Cesati LynxOS è una linea di RTOS commerciali prodotti dalla LynuxWorks (www.lynuxworks.com) La gestione delle interruzioni è di tipo “separata”: Esistono diverse versioni, tra le quali: LynxOS RTOS: per sistemi embedded Schema della lezione La prima parte della gestione è effettuata a priorità più Schema della lezione LynxOS-SE RTOS: per sistemi partizionati con Caratteristiche comuni elevata rispetto a quella dei task Caratteristiche comuni applicazioni POSIX, Linux e conformi a Arinc 653 VxWorks VxWorks LynxOS Nel caso la prima parte non completi la gestione LynxOS LynxOS-178 RTOS: per sistemi safety-critical, certificabili QNX dell’interruzione, viene impostata una interruzione QNX DO-178B livello A e Arinc 653 eCos (software) asincrona per interrompere il kernel eCos Windows Windows Il cuore di tutti questi SO è LynxOS RTOS: Linux come RTOS Non appena il kernel è in esecuzione in modalità Linux come RTOS interrompibile, viene schedulato un thread per la gestione Utilizzato in milioni di dispositivi secondaria dell’interruzione Compatibile con l’ABI (Application Binary Interface) di Il thread esegue alla priorità del task che ha effettuato Linux l’“apertura” del device che ha generato l’interruzione Utilizza un kernel monolitico L’ambiente di sviluppo è tipicamente “cross-platform” e basato su Eclipse SERT’13 R13.11 SERT’13 R13.12 Sistemi operativi Sistemi operativi Lo scheduler di LynxOS real-time Altri dettagli su LynxOS real-time Marco Cesati Marco Cesati I task di LynxOS sono in generale interrompibili Schema della lezione Ha supporto completo (ma disabilitabile) per i meccanismi Schema della lezione Caratteristiche comuni di memoria virtuale e protezione della memoria Caratteristiche comuni Lo scheduler è a priorità fissa, con 256 livelli di priorità VxWorks VxWorks LynxOS Ha supporto per il meccanismo di allocazione della LynxOS Task di uguale priorità sono gestiti come FIFO o Round QNX memoria “su richiesta” (demand paging) QNX Robin eCos eCos Windows Supporta architetture SMP Windows