Sistemi general pourpose
Orizzonte degli eventi non definito: i task forse termineranno;
Gestione della memoria elastica (es. paginazione,…);
Sistemi real-time
I task devono essere conclusi entro un lasso di tempo predefinito e predicibile;
Di solito sono sistemi integrati/embedded (sistemi inseriti e nascosti in un dispositivo);
Hanno risorse limitate e fisse;
Sistemi safety-critical: il non completamento dei task pone problemi seri;
Sistemi real-time
Sistemi Hard-realtime
Hanno vincoli stringenti che impongono il completamento dei task
Sistemi Soft-realtime
Meno restrittivi;
Assegnano priorità ai compiti real-time;
Sistemi real-time
Specializzazione:
Sono progettati per svolgere un solo di compito (o numero ristretto di compiti omogenei)
Dimensione ridotta
Es. forni, orologi;
Processori a bassa potenza (es. 8 bit, 16 bit);
Poca capacità di memorizzazione;
Impronta (footprint): quantità minima di memoria richiesta dal SO e dalle applicazioni
Sistemi real-time
Prodotto su larga scala
Dovuto all’uso nelle apparecchiature di consumo
Necessità di minimizzare i costi
Limiti di tempo precisi
Sfruttano particolari algoritmi di scheduling
Minimizzano il tempo di risposta alle interruzioni
Architettura basata su bus
Si usano strategie SOC (System On Chip) piuttosto che a BUS (come in figura) per contenere i costi
Architettura SOC
Un SOC contiene:
Uno o più core (es. microp. a DSP);
Modulo di memoria (flash, rom, ram,…)
Generatore di clock
I connettori alle interfacce
ADC/DAC
Architetture
Alcuni SO in tempo reale
VxWorks (Motorola, Pentium, StrongArm, Arm)
Aderisce a POSIX
Robotica, controllo di processi, avionica, telecomunicazioni, medicina
Prestazioni su Pentium 200: latenza media 1.7 us, latenza massima 6.8 us
Windows CE .NET (ARM, StrongArm, XScale, MIPS, Pentium)
Non aderisce a POSIX
Prestazioni su Pentium 200: latenza media 2.4 us, latenza massima 5.6 us
QNX Neutrino RTOS (Pentium, Power PC, ARM, StrongArm, XScale, MIPS, SH-4)
Microkernel, aderisce a POSIX
Prestazioni su Pentium 200: latenza media 1.6 us, latenza massima 4.1 us
pSOSystem 3
Aderisce a POSIX
Prestazioni su Pentium 200: latenza media 1.9 us, latenza massima 3.8 us
Arx RTOS http://arx.snu.ac.kr/html/overview-arx.en.html
AvSys http://www.avocetsystems.com
CMX RTOS http://www.cmx.com
Struttura VxWorks
Windows CE
OAL (OEM adaptation layer): si interfaccia con l’hardware (interrupt, timer, ioctl, …)
KTL (Kernel Independent Transport Layer) supporto ai servizi di debugging
GWES (Graphics, Windowing and Events)
eCos
embedded Configurable operating system
Open source
Sistema operativo real-time progettato per sistemi embedded che richiedono un solo processo con thread multipli.
Compatibile con lo standard Posix.
TinyOS
Progettato per sensor network wireless (Smart Dust):
limiti di memoria severi;
È scritto in nesC come un insieme di task e processi cooperativi.
Caratteristiche dei kernel real-time
X X Bluetooth support X X X X USB support X X X X IrDA support X X X X IEEE 1394 support X X X Parallel port support M68k SH MIPS PPC ARM x86 Option Non hanno bisogno di strutture sofisticate a causa della loro specializzazione e dei costi connessi es.:
Periferiche (CD, DVD, …)
Protezione e sicurezza
Utenti multipli
Supporto dei dispositivi per alcune architetture nei kernel linux (ogni architettura ha anche dispositivi specifici):
Memory Management Unit
Traduce indirizzi logici in indirizzi fisici, ma:
Costano
Consumano energia
Il tempo di traduzione di un indirizzo può essere proibitivo se il TLB fallisce
Sono necessari meccanismi più semplici per la gestione della memoria.
Memory Management Unit
Real-addressing mode
Modalità di indirizzamento fisico:
Gli indirizzi logici corrispondono a quelli fisici;
Non ricorre alla memoria virtuale;
Non ha meccanismi di protezione della memoria;
Può obbligare i programmatori a dichiarare le locazioni fisiche in cui memorizzare le variabili
Non consuma tempo per la traduzione degli indirizzi
Viene usato nei sistemi hard real-time
Con registro di rilocazione
L’indirizzo fisico si ottiene sommando il registro di rilocazione all’indirizzo logico.
Anche in questo caso non c’è protezione della memoria.
Gestione completa della memoria virtuale
La traduzione degli indirizzi avviene tramite la tabella delle pagine e il TLB.
Protezione della memoria;
Caricamento dei programmi in qualunque punto della memoria;
Potrebbero addirittura gestire lo swapping su memoria flash (es. LynxOS).
Comments