Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoNarciso Bernardini Modificato 11 anni fa
1
Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio 566/1334
2
Seminario
3
Sistemi Operativi embedded I sistemi operativi per sistemi di elaborazione incorporati seguono i principi classici dei SO ma devono tener conto di particolari aspetti: Memoria limitata Velocità della cpu Schermi di piccole dimensioni
4
Sistemi Operativi embedded Memoria limitata La quantità di memoria di questi dispositivi varia da qualche mega a qualche decina di mega per questo motivo i sistemi operativi devono gestire la memoria in modo efficiente, assicurandosi che questa venga rilasciata al gestore della memoria ogni volta che non è più usata, oppure implementando tecniche di memoria virtuali. Inoltre è possibile realizzare un kernel estremamente contenuto che implementi solo i servizi strettamente necessari.
5
Sistemi Operativi embedded Velocità della cpu Le cpu integrate in questo tipo di sistemi sono più lente sia a causa della dimensione ridotta dei dispositivi sia perché cpu più veloci consumano più energia. Il sistema operativo deve essere progettato in modo da non gravare eccessivamente sulle cpu.
6
Sistemi Operativi embedded Schermi ridotti A causa delle dimensioni dello schermo, per consentire le diverse operazioni che ormai sono svolte da questi dispositivi (come la navigazione in rete, giochi e molto altro), i sistemi operativi devono gestire il layout delle immagini in modo efficiente.
7
Sistemi Operativi embedded Palm OS Palm OS Symbian OS Symbian OS Windows CE Windows CE Embedded Linux Embedded Linux Java Card Java Card
8
Sistemi Operativi : Palm OS Sistema operativo per palmari PDA(Personal Digital Assistant). Sistema operativo per palmari PDA(Personal Digital Assistant). Implementato su CPU Motorola a 16 bit Implementato su CPU Motorola a 16 bit Versione corrente : 5.2 con supporto Bluetooth e 65K colori per PDA/cellulari multimediali. Versione corrente : 5.2 con supporto Bluetooth e 65K colori per PDA/cellulari multimediali.
9
Sistemi Operativi : Palm OS
10
User Interface riguarda la gestione dellI/O grafico, e del menu. riguarda la gestione dellI/O grafico, e del menu. Memory Management Memory Management DB, runtime space, system space, variabili globali. DB, runtime space, system space, variabili globali.
11
Sistemi Operativi : Palm OS System Management: System Management: eventi, alarms, time, … eventi, alarms, time, … Communication Layer Communication Layer I/O seriale, TCP/IP, Infrared Data Association (IrDA). I/O seriale, TCP/IP, Infrared Data Association (IrDA).
12
Sistemi Operativi : Palm OS User management: SO single user. User management: SO single user. Dimensione: v 3.5 richiede circa 1.4 MBytes. Dimensione: v 3.5 richiede circa 1.4 MBytes. Task Management: una applicazione per volta con chiamate ad alte applicazioni. Palm OS è un sistema a single task guidato dagli eventi. Task Management: una applicazione per volta con chiamate ad alte applicazioni. Palm OS è un sistema a single task guidato dagli eventi. Power Management: tre stati (sleep, doze, running) Power Management: tre stati (sleep, doze, running)
13
Sistemi Operativi : Palm OS Memory Management: Memory Management: Le applicazioni non sono separate (una applicazione può causare il crash del sistema). Le applicazioni non sono separate (una applicazione può causare il crash del sistema). Il file system tradizionale è sostituito da un insieme di database gestiti da un Database Manager Il file system tradizionale è sostituito da un insieme di database gestiti da un Database Manager
14
Sistemi Operativi : Palm OS La memoria è separata in: La memoria è separata in: Dynamic heap: dimensione tra 64Kb e 256Kb e serve a contenere le variabili globali, lo stack, e la memoria allocata dinamicamente durante luso. Dynamic heap: dimensione tra 64Kb e 256Kb e serve a contenere le variabili globali, lo stack, e la memoria allocata dinamicamente durante luso. Storage: contiene dati permanenti (DB, files) Storage: contiene dati permanenti (DB, files) che non vanno cancellati allo spegnimento. che non vanno cancellati allo spegnimento.
15
Sistemi Operativi: Palm OS – Sviluppo SW Sviluppo del Software in C e C++. Esiste un Palm Emulator per sviluppare e fare il test delle applicazioni prima di eseguirle su Palm OS.
16
Sistemi Operativi: Symbian OS Creato come SO per telefonia mobile. Creato come SO per telefonia mobile. Attualmente sviluppato da Symbian. Attualmente sviluppato da Symbian. Usato in cellulari NOKIA e Sony Ericsson e su diversi processori (anche in emulazione). Usato in cellulari NOKIA e Sony Ericsson e su diversi processori (anche in emulazione). Caratteristiche: multi-tasking, real-time pre-emptive. Caratteristiche: multi-tasking, real-time pre-emptive.
17
Sistemi Operativi : Symbian OS
18
User management: SO single user. User management: SO single user. Task Management: microkernel real- time, multitasking con scheduling pre- emptive e con priorità. Task Management: microkernel real- time, multitasking con scheduling pre- emptive e con priorità.
19
Sistemi Operativi : Symbian OS Memory User interface: con interfaccia standard: grafica, suoni e tastiera. Memory User interface: con interfaccia standard: grafica, suoni e tastiera. Management: MMU con spazi di indirizzi separati per applicazioni. Management: MMU con spazi di indirizzi separati per applicazioni.
20
Sistemi Operativi : Symbian OS Sviluppo del Software in C++, Java e OPL (Basic-like). Sviluppo del Software in C++, Java e OPL (Basic-like). Esiste un Simulatore per sviluppare e fare il test delleapplicazioni prima di eseguirle su Symbian OS Esiste un Simulatore per sviluppare e fare il test delleapplicazioni prima di eseguirle su Symbian OS
21
Sistemi Operativi: Windows CE Windows CE è una versione di Windows sviluppata per sistemi mobili. Windows CE è una versione di Windows sviluppata per sistemi mobili. Il sistema va configurato per la specifica piattaforma (PDA, cellulare, altro) su cui deve essere usato. Basato su memoria ROM. Il sistema va configurato per la specifica piattaforma (PDA, cellulare, altro) su cui deve essere usato. Basato su memoria ROM. Ha linterfaccia tipica di Windows adattata per i display dei sistemi mobili. Ha linterfaccia tipica di Windows adattata per i display dei sistemi mobili.
22
Sistemi Operativi : Windows CE – Configurazione
23
Sistemi Operativi: Windows CE User management: SO single user. User management: SO single user. Task Management: Fino a 32 processi e un numero elevato di thread (limitato dalla memoria disponibile) Task Management: Fino a 32 processi e un numero elevato di thread (limitato dalla memoria disponibile)
24
Sistemi Operativi: Windows CE User Interface: icone, dialog boxes, menu, suoni (approccio alla Windows) User Interface: icone, dialog boxes, menu, suoni (approccio alla Windows) Memory Management: memoria protetta con 32 MB per processo, heap per file system, registry e object store (fino a 256 MB). Memory Management: memoria protetta con 32 MB per processo, heap per file system, registry e object store (fino a 256 MB).
25
Sistemi Operativi: Windows CE Dimensione: da 400 Kb (kernel) a 3 MB (sistema completo) fino a 8 MB. Dimensione: da 400 Kb (kernel) a 3 MB (sistema completo) fino a 8 MB. Security: Crittografia con una libreria per gestire i dati memorizzati in sicurezza. Memorizzazione sicura con smart card. Security: Crittografia con una libreria per gestire i dati memorizzati in sicurezza. Memorizzazione sicura con smart card. Ambienti Software: Visual C++, Visual Basic. Ambienti Software: Visual C++, Visual Basic.
26
Sistemi Operativi: Embedded Linux Versione di Linux per sistemi di elaborazione incorporati. Versione di Linux per sistemi di elaborazione incorporati. Architettura a microkernel. Funzioni e servizi compilabili nel kernel o generabili come moduli separati da caricare dinamicamente. Architettura a microkernel. Funzioni e servizi compilabili nel kernel o generabili come moduli separati da caricare dinamicamente. Ampia gamma di protocolli e servizi per il networking. Ampia gamma di protocolli e servizi per il networking. Configurabile e scalabile da un orologio ad un multiprocessore. Configurabile e scalabile da un orologio ad un multiprocessore.
27
Sistemi Operativi: Embedded Linux User management: SO multi user. User management: SO multi user. Task Management: Multitasking con scheduler preemptive e real-time (opzionale). Supporto per multiprocessori. Task Management: Multitasking con scheduler preemptive e real-time (opzionale). Supporto per multiprocessori.
28
Sistemi Operativi: Embedded Linux User Interface: basata su X-Window. User Interface: basata su X-Window. Memory Management: gestione alla Linux con MMU e memoria virtuale. Memory Management: gestione alla Linux con MMU e memoria virtuale. Dimensione: da 200 Kb (kernel) a circa 10 MB. Dimensione: da 200 Kb (kernel) a circa 10 MB.
29
Sistemi Operativi: Embedded Linux Linguaggi: Linguaggi: C, C++, Java Driver, Driver, utility, protocolli e programmi client e server disponibili per connessioni Internet.
30
Sistemi Operativi: Embedded Linux sviluppo I primi sistemi embedded venivano scritti diretamente in linguaggio macchina al fine di sfruttare al massimo le prestazioni dellhardware sottostante. I primi sistemi embedded venivano scritti diretamente in linguaggio macchina al fine di sfruttare al massimo le prestazioni dellhardware sottostante. Il passaggio a linguaggi a più alto livello di astrazione ma pur sempre dotati di costrutti vicini allo strato hardware, come il C, ha permesso di incrementare notevolmente la portabilità del software delegandone le difficoltà al compilatore. Questo tipo di approccio ha consentito ai produttori di sviluppare moduli di crescente complessità per limplementazione di funzionalità di file-system, di connettività in rete e di interfacciamento grafico. Il passaggio a linguaggi a più alto livello di astrazione ma pur sempre dotati di costrutti vicini allo strato hardware, come il C, ha permesso di incrementare notevolmente la portabilità del software delegandone le difficoltà al compilatore. Questo tipo di approccio ha consentito ai produttori di sviluppare moduli di crescente complessità per limplementazione di funzionalità di file-system, di connettività in rete e di interfacciamento grafico.
31
Sistemi Operativi: Embedded Linux & Real Time Un sistema operativo in tempo reale può essere descritto come un insieme di servizi di sistema messi a disposizione dello sviluppatore congiuntamente ad uno schedulatore di task che sia flessibile e non richieda troppe risorse sia in termini di occupazione di memoria che di velocità di esecuzione. Un sistema operativo in tempo reale può essere descritto come un insieme di servizi di sistema messi a disposizione dello sviluppatore congiuntamente ad uno schedulatore di task che sia flessibile e non richieda troppe risorse sia in termini di occupazione di memoria che di velocità di esecuzione.
32
Sistemi Operativi: Embedded Linux & Real Time Aspetti che caratterizzano un RTOS: Deve essere multithread, ossia deve consentire lesecuzione di più attività concorrenti e deve disporre di un meccanismo che permetta di assegnare una priorità ereditaria ad ogni thread. Deve essere multithread, ossia deve consentire lesecuzione di più attività concorrenti e deve disporre di un meccanismo che permetta di assegnare una priorità ereditaria ad ogni thread. Inoltre deve essere possibile arrestare e riprendere ciascun thread in qualunque istante, compatibilmente con la risoluzione temporale del sistema. Questa caratteristica, detta preempibilità, permette di rispondere in tempo reale agli eventi critici sospendendo immediatamente i compiti meno importanti a vantaggio di quelli essenziali alla missione del sistema. Inoltre deve essere possibile arrestare e riprendere ciascun thread in qualunque istante, compatibilmente con la risoluzione temporale del sistema. Questa caratteristica, detta preempibilità, permette di rispondere in tempo reale agli eventi critici sospendendo immediatamente i compiti meno importanti a vantaggio di quelli essenziali alla missione del sistema.
33
Java Card Java Card è un ambiente per lo sviluppo di applicazioni su smart card (es., la SIM di un cellulare) in Java. Java Card è un ambiente per lo sviluppo di applicazioni su smart card (es., la SIM di un cellulare) in Java. Permette lo sviluppo di servizi e codice indipendenti dalla piattaforma e permette card multi-applicazione. Permette lo sviluppo di servizi e codice indipendenti dalla piattaforma e permette card multi-applicazione.
34
Java Card Attualmente sono disponibili molti modelli di SmartCard per le applicazioni più disparate. La maggior parte di questi però sono incompatibili fra loro a causa delle diversità degli ambienti desecuzione di cui sono dotati. Lambiente JavaCard permette di standardizzare lambiente desecuzione, e quindi permette la realizzazione dapplicazioni per SmartCard portabili. Attualmente sono disponibili molti modelli di SmartCard per le applicazioni più disparate. La maggior parte di questi però sono incompatibili fra loro a causa delle diversità degli ambienti desecuzione di cui sono dotati. Lambiente JavaCard permette di standardizzare lambiente desecuzione, e quindi permette la realizzazione dapplicazioni per SmartCard portabili.
35
Java Card Attualmente la tecnologia delle SmartCard ha ormai raggiunto un alto livello daffidabilità, ma sono molteplici le metodologie di progetto e dimplementazioni attualmente disponibili. Questo dipende principalmente dalla mancanza di uno standard per lambiente desecuzione della SmartCard. In pratica, unapplicazione sviluppata per una certa SmartCard non può quasi mai essere utilizzata per unaltra SmartCard. Attualmente la tecnologia delle SmartCard ha ormai raggiunto un alto livello daffidabilità, ma sono molteplici le metodologie di progetto e dimplementazioni attualmente disponibili. Questo dipende principalmente dalla mancanza di uno standard per lambiente desecuzione della SmartCard. In pratica, unapplicazione sviluppata per una certa SmartCard non può quasi mai essere utilizzata per unaltra SmartCard.
36
Java Card La miglior soluzione disponibile per la standardizzazione dellambiente desecuzione è lambiente JavaCard, proposto da SUN Microsystems. Limplementazione di questambiente prevede linserimento di un interprete Java standardizzato sulla carta e la creazione di una serie di API Java per laccesso alle risorse della carta. In questo modo, è possibile sviluppare servizi in grado di funzionare indifferentemente su qualsiasi carta. Questa soluzione ha anche un altro grande vantaggio: lutilizzo del linguaggio Java, un linguaggio di alto livello ben conosciuto da una moltitudine di sviluppatori. La miglior soluzione disponibile per la standardizzazione dellambiente desecuzione è lambiente JavaCard, proposto da SUN Microsystems. Limplementazione di questambiente prevede linserimento di un interprete Java standardizzato sulla carta e la creazione di una serie di API Java per laccesso alle risorse della carta. In questo modo, è possibile sviluppare servizi in grado di funzionare indifferentemente su qualsiasi carta. Questa soluzione ha anche un altro grande vantaggio: lutilizzo del linguaggio Java, un linguaggio di alto livello ben conosciuto da una moltitudine di sviluppatori.
37
Java Card - Tecnologia Le JavaCard (così sono chiamate le Smartcard che integrano lambiente JavaCard) presentano una serie di caratteristiche peculiari che le rendono estremamente competitive rispetto alle SmartCard. Queste caratteristiche sono le seguenti: Le JavaCard (così sono chiamate le Smartcard che integrano lambiente JavaCard) presentano una serie di caratteristiche peculiari che le rendono estremamente competitive rispetto alle SmartCard. Queste caratteristiche sono le seguenti: Indipendenza dalla piattaforma: unapplicazione per JavaCard, scritta rispettando le regole imposte dallAPI JavaCard, può essere utilizzata senza modifiche su JavaCard fornite da costruttori diversi. Indipendenza dalla piattaforma: unapplicazione per JavaCard, scritta rispettando le regole imposte dallAPI JavaCard, può essere utilizzata senza modifiche su JavaCard fornite da costruttori diversi.
38
Java Card - Tecnologia Supporto a più applicazioni: su una stessa JavaCard possono coesistere diverse applicazioni (JavaCard Applet) indipendenti fra loro e selezionabili singolarmente in fase di esecuzione; Supporto a più applicazioni: su una stessa JavaCard possono coesistere diverse applicazioni (JavaCard Applet) indipendenti fra loro e selezionabili singolarmente in fase di esecuzione; Caricamento di nuove applicazioni dopo la consegna: dopo che una JavaCard è stata consegnata allutente finale è ancora possibile procedere al caricamento di nuove applicazioni attraverso gli stessi terminali addetti allespletamento dei servizi, questo per soddisfare le nuove necessità espresse dallutente; Caricamento di nuove applicazioni dopo la consegna: dopo che una JavaCard è stata consegnata allutente finale è ancora possibile procedere al caricamento di nuove applicazioni attraverso gli stessi terminali addetti allespletamento dei servizi, questo per soddisfare le nuove necessità espresse dallutente;
39
Java Card - Tecnologia Flessibilità: il linguaggio utilizzato per programmare le JavaCard è un subset del linguaggio Java, quindi la programmazione può sfruttare il paradigma della programmazione ad oggetti; Flessibilità: il linguaggio utilizzato per programmare le JavaCard è un subset del linguaggio Java, quindi la programmazione può sfruttare il paradigma della programmazione ad oggetti; Compatibilità con gli standard delle SmartCard: le JavaCard sono compatibili con lo standard ISO 7816, lo standard più diffuso nel campo delle SmartCard. Compatibilità con gli standard delle SmartCard: le JavaCard sono compatibili con lo standard ISO 7816, lo standard più diffuso nel campo delle SmartCard.
40
Java Card - Tecnologia Lambiente JavaCard è costituito generalmente da tre tipi diversi di memoria: memoria ROM, memoria EEPROM e memoria RAM. Di seguito sono forniti i dettagli relativi ad ognuno: Lambiente JavaCard è costituito generalmente da tre tipi diversi di memoria: memoria ROM, memoria EEPROM e memoria RAM. Di seguito sono forniti i dettagli relativi ad ognuno:
41
Java Card - Memoria Memoria ROM: questo tipo di memoria, a sola lettura, è utilizzato per contenere tutto il codice che non richiede modifiche, cioè il sistema operativo della JavaCard. La dimensione di questo tipo di memoria è di circa 32 KByte per buona parte delle JavaCard attualmente in commercio, mentre la dimensione minima richiesta è di 24 KByte; Memoria ROM: questo tipo di memoria, a sola lettura, è utilizzato per contenere tutto il codice che non richiede modifiche, cioè il sistema operativo della JavaCard. La dimensione di questo tipo di memoria è di circa 32 KByte per buona parte delle JavaCard attualmente in commercio, mentre la dimensione minima richiesta è di 24 KByte;
42
Java Card - Memoria Java Card - Memoria Memoria EEPROM: questo tipo di memoria, riscrivibile elettronicamente, è utilizzato per contenere le estensioni del JCRE (Java Card Runtime Environment, linfrastruttura che permette il funzionamento della JavaCard) e le JavaCard Applet (applicazioni sviluppate esternamente e caricabili sulla JavaCard). La dimensione di questo tipo di memoria è di minimo circa 16 KByte. Memoria EEPROM: questo tipo di memoria, riscrivibile elettronicamente, è utilizzato per contenere le estensioni del JCRE (Java Card Runtime Environment, linfrastruttura che permette il funzionamento della JavaCard) e le JavaCard Applet (applicazioni sviluppate esternamente e caricabili sulla JavaCard). La dimensione di questo tipo di memoria è di minimo circa 16 KByte.
43
Java Card - Memoria Memoria RAM: questo tipo di memoria, denominato anche volatile, è utilizzato per contenere lheap e lo stack necessari per lesecuzione, quindi le variabili e gli oggetti temporanei creati durante lesecuzione delle JavaCard Applet. La dimensione di questo tipo di memoria è di circa un KByte per buona parte delle JavaCard attualmente in commercio, mentre la dimensione minima richiesta è di 500 Byte. Memoria RAM: questo tipo di memoria, denominato anche volatile, è utilizzato per contenere lheap e lo stack necessari per lesecuzione, quindi le variabili e gli oggetti temporanei creati durante lesecuzione delle JavaCard Applet. La dimensione di questo tipo di memoria è di circa un KByte per buona parte delle JavaCard attualmente in commercio, mentre la dimensione minima richiesta è di 500 Byte.
44
Java Card - Conclusioni E importante notare che le configurazioni hardware descritte precedentemente sono compatibili con la maggior parte delle SmartCard utilizzate attualmente. Questo implica che lambiente JavaCard potrebbe essere adottato sulla maggioranza degli hardware attualmente disponibili.
45
Conclusioni Palm OS è semplice, compatto, ma non implementa il multitasking e meccanismi di security. Palm OS è semplice, compatto, ma non implementa il multitasking e meccanismi di security. Symbian OS è più complesso, ma più generale e multitasking. Symbian OS è più complesso, ma più generale e multitasking. Windows CE supporta configurazioni flessibili e usa crittografia per la security. Windows CE supporta configurazioni flessibili e usa crittografia per la security.
46
Conclusioni Embedded Linux offre linterfaccia di programmazione avanzata di Linux è consente la portabilità del codice. Embedded Linux offre linterfaccia di programmazione avanzata di Linux è consente la portabilità del codice. Java fornisce un ambiente per la standardizzazione delle applicazioni sulle smart card Java fornisce un ambiente per la standardizzazione delle applicazioni sulle smart card
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.