European Master on Critical Networked Systems

Transcript

European Master on Critical Networked Systems
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
European Master on Critical Networked Systems
Modulo su Mobile Systems
Parte II:
Sviluppo di applicazioni su piattaforma Symbian
Lezione 6:
Il sistema operativo Symbian
Docente: Ing. Marcello CINQUE
Dipartimento di Informatica e Sistemistica
Via Claudio 21, 80125 Napoli
[email protected]
www.mobilab.unina.it
Mobile Systems
S. Russo
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Contenuti della lezione
¾
¾
¾
¾
Introduzione al SO Symbian;
y
Accesso ai servizi: modello client-server;
Modello di Concorrenza e Active Objects;
Architettura interna del SO Symbian;
¾ Riferimenti:
9 Jo Stichbury, Symbian OS Explained, Wiley
9 Jane Sales, Symbian OS Internals, Wiley
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
1
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. I Sistemi Operativi
¾ Un Sistema Operativo (S.O.) è un insieme di programmi
che operano sull’hardware di un calcolatore con l’obiettivo
di:
9 semplificare lo sviluppo di programmi
9 realizzare politiche di gestione delle risorse hardware
¾ Il Sistema Operativo si pone come interfaccia tra l’utente
(o il software) e l’hardware, fornendone un’astrazione
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
3
Mobilab
European Master on Critical Networked Systems
Napoli,
Maggio-Giugno 07
::. I Sistemi Operativi
Il SO …
¾ … definisce una macchina virtuale (o estesa) e
quindi un insieme di astrazioni che semplificano lo
sviluppo delle applicazioni (ad es. il SO fornisce il
concetto di FILE invece di quello di “insieme di byte
memorizzati in un disco”)
¾ … realizza politiche di gestione delle risorse hardware
definendo i criteri con cui assegnare una risorsa a fronte
di più richieste concorrenti
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
4
2
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Architettura a livelli
interf.
utenti
utenti
i t f
interf.
di libreria
system
call
programmi di utilità
(shell, compiler, …)
modo
utente
libreria standard
(open, close, read, write, ..)
Sistema Operativo
(process management, memory management,
fil system, I/O
file
I/O, ...))
modo
kernel
hardware
(CPU, memoria, dischi, terminali, …)
[email protected]
www.mobilab.unina.it
Mobile Systems
S. Russo
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Il Sistema Operativo Symbian
¾ Concepito
p
per
p
caratterizzati da:
dispositivi
p
cellulari,
tipicamente
p
9 Scarse risorse hardware (memoria, CPU)
9 Alimentazione a batteria
9 Elevate capacità di comunicazione
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
3
Mobilab
European Master on Critical Networked Systems
Napoli,
Maggio-Giugno 07
::. Symbian OS: caratteristiche
¾ low power design: riduzione dei consumi di batteria
¾ Multitasking e real time: far convivere applicazioni di
telefonia con applicazioni PIM, giochi, multimedia,
applicazioni d’ufficio, …
¾ Apertura ad applicazioni sviluppate da terze parti
¾ Architettura modulare e programmazione OO
¾ Gestione
G ti
d ll memoria
della
i ottimizzata
tti i t
¾ Supporto alla internazionalizzazione
[email protected]
www.mobilab.unina.it
Mobile Systems
S. Russo
Mobilab
European Master on Critical Networked Systems
Napoli,
Maggio-Giugno 07
::. Symbian OS: un po’ di storia
¾ 1989: Psion commercializza i primi dispositivi palmari e il SO
p
EPOC;; EPOC era completamente
p
multitasking
g e
operativo
forniva un’interfaccia grafica;
¾ 1998: il SO Symbian nasce nel 1998 dalla fusione di Psion con
Nokia, Motorola, ed Ericsson con l’obiettivo di costruire un
sistema operativo che potesse adattarsi a qualunque
dispositivo mobile, dai cellulari ai palmari; la prima versione fu
la 5.0, direttamente derivata da EPOC;
¾ 2000: viene messo in commercio il primo cellulare basato su
Symbian, l’Ericsson R380; adotta la versione 5.0;
¾ 2001: rilascio della versione 6.0, adottata da Nokia sulla serie
Communicators;
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
4
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Symbian OS: un po’ di storia
¾ 2002: viene annunciata la versione 7.0, e utilizzata inizialmente
dal Nokia 6600;;
¾ 2004: rilasciate le versioni 8.0 e 8.1, IPC API avanzate
¾ 2004: Primo worm per Symbian OS, “cabir”
¾ 2005: v9.1, migliorato il supporto alla sicurezza
¾ 2006: v9.2 e 9.3, migliorato il supporto al HW (BT 2.0, WiFi,…)
¾ Oggi: Symbian è acquisito dalle
più importanti
aziende del
settore.
[email protected]
www.mobilab.unina.it
Mobile Systems
S. Russo
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Cellulari Symbian: alcuni esempi
Psion 5 Series
Ericsson R380
(v. 5.0)
Nokia 6680
(v8.1)
www.mobilab.unina.it
Nokia 9210 Communicator
(v6.0)
FOMA F902iS
(v8.1)
Nokia 6600
(v7.0)
Sony-Ericsson P990
(v9.1)
[email protected]
Mobile Systems
S. Russo
5
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Un SO, più interfacce grafiche
¾ Nel tempo, sono nate diverse interfacce grafiche per Symbian:
9 Personalizzazione da parte delle industrie manifatturiere;
9 Diversità delle periferiche di I/O (display e keypad)
Series 60 (S60)
MOAP
Series 80
UIQ
Symbian
¾ Per ogni tipo di interfaccia grafica e versione del SO esistono
diversi SDK da adottare per la programmazione;
¾ Ciò complica la portabilità.
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
Mobilab
European Master on Critical Networked Systems
Napoli,
Maggio-Giugno 07
::. Struttura a livelli di SO, servizi e appl. Symbian
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
6
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Architettura del SO
¾ Symbian adotta un’architettura a microkernel,
9 semplicità,
à
9 modularità ed estensibilità,
9 ridotte dimensioni.
¾ La comunicazione tra applicazioni, con il kernel e con i servizi
del SO avviene mediante:
9 scambio di messaggi (protocollo Client/Server)
¾ Il kernel
k
l (EKA2) realizza
li
il meccanismo
i
di comunicazione
i i
a
scambio di messaggi ed è responsabile dello scheduling dei
processi e della gestione della memoria.
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
Mobilab
European Master on Critical Networked Systems
Napoli,
Maggio-Giugno 07
::. Modello Client/Server
¾ Il kernel svolge un ruolo attivo nella comunicazione.
¾ e segnala eventuali errori di comunicazione o crash del server.
server
¾ Due paradigmi di comunicazione: sincrona e asincrona.
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
7
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Modello Client/Server
¾ I client (l’applicazione utente) richiedono servizio a un server
((un servizio di sistema o un servizio utente),
), tramite scambio
di messaggi.
¾ Il canale di comunicazione è denominato sessione.
¾ Il server è un’applicazione senza UI, in attesa di messaggi.
¾ La comunicazione C/S è tipicamente nascosta dalle API.
¾ L’uso di server è efficiente: ogni server gestisce in concorrenza
sessioni multiple di richieste provenienti da più client.
client
¾ I server di sistema proteggono l’integrità del sistema, in quanto
assicura che le risorse che essi gestiscono siano condivise
correttamente tra i client.
[email protected]
www.mobilab.unina.it
Mobile Systems
S. Russo
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Modello Client/Server
¾ Presenta alcune limitazioni:
9 Maggiore overhead per ogni richiesta di servizio;
9 Accoppiamento stretto tra Client e Server, e comunicazione 1 a 1;
9 L’IPC richiede che venga mantenuta una sessione permanente tra
client e server per tutta la durata dell’interazione;
9 Possibili situazioni di deadlock;
9 Non è garantita una gestione Real-Time della comunicazione.
¾ Nella versione 8.1 si introducono nuovi meccanismi di IPC:
9 Publish & Subscribe;
9 Code di messaggi;
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
8
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Modello dei Thread e modello di concorrenza
¾ Il processo è l’unità fondamentale di protezione della
memoria ed ha un proprio spazio di indirizzamento.
indirizzamento
¾ L’ unità fondamentale di esecuzione è il Thread. Ad ogni
processo è associato uno o più thread.
¾ Il Kernel stesso è un processo costituito da due thread:
9 Kernel Server: serve le richieste inoltrate dai processi utente. E’ il
thread a maggiore priorità nel sistema;
9 Null thread: è il thread a priorità più bassa.
[email protected]
www.mobilab.unina.it
Mobile Systems
S. Russo
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Modello dei Thread e modello di concorrenza
Server
Processo
Processo
Multithread
User Level
Kernel Level
Kernel
Thread
Null thread
Kernel Server
Preemptive scheduler
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
9
Mobilab
European Master on Critical Networked Systems
Napoli,
Maggio-Giugno 07
::. Event-driven multitasking con gli Active Objects
¾ Le applicazioni per cellulari sono tipicamente eventdriven;
¾ Gli eventi devono essere gestiti in maniera efficace, in
modo da migliorare i tempi di risposta verso l’utente;
¾ L’occupazione di memoria e l’utilizzo della CPU devono
essere minimizzati, per andare incontro a dispositivi con
scarse risorse e alimentati a batteria.
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
Mobilab
European Master on Critical Networked Systems
Napoli,
Maggio-Giugno 07
::. Event-driven multitasking con gli Active Objects
¾ Active Objects
j
((AO):
) ciascun thread p
può ospitare
p
più
p
AO, i quali sono entità schedulabili separatamente in
risposta ad eventi asincroni;
¾ Gli AO di un thread sono schedulati da un Active
Scheduler, che fa parte dello stesso thread;
¾ La politica di schedulazione è non preemptive;
¾ Overhead
O h d ridotto
id tt grazie
i all’assenza
ll’
di context
t t switch.
it h
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
10
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Event-driven multitasking con gli Active Objects
Application
Non-preemtive scheduling,
Event-driven synchronization
Active
Scheduler
Kernel
Level
Preemptive Scheduler
Kernel Thread
www.mobilab.unina.it
Active Object
Time-sharing
Preemptive
Priority
based scheduler
[email protected]
Mobile Systems
S. Russo
Mobilab
European Master on Critical Networked Systems
Napoli,
Maggio-Giugno 07
::. Architettura interna del SO e di EKA2
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
11
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Caratteristiche di EKA2
¾ Modulare;
¾ Single user;
¾ Multitasking, con scheduling preemptive, time sharing e a
priorità;
¾ Real time: i suoi servizi terminano in un periodo di tempo
noto a priori; ad esempio, gli obiettivi di progetto sono:
9 Latenza < 1ms da un interrupt a un thread utente
9 Latenza < 50us da un interrupt a un thread kernel
[email protected]
www.mobilab.unina.it
Mobile Systems
S. Russo
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Nanokernel
¾ Responsabile solo della gestione dei Thread di livello
kernel, in termini di:
9 Scheduling
9 Sincronizzazione (nanokernel mutexes)
¾ Il nanokernel rappresenta anche il dispatcher (o handler
iniziale) di tutti gli interrupt.
¾ Il nanokernel non possiede alcuna astrazione di
gestione dinamica della memoria: la memoria è vista
come pre-allocata staticamente.
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
12
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Symbian OS Kernel (EKERN)
¾ Si fonda sulla semplice astrazione di thread fornita dal
nanokernel, e aggiunge astrazioni di:
9 Processi (protezione della memoria);
9 Thread di livello utente;
9 Primitive di Inter-Tread Communication (scambio di messaggi,
semafori, publish/subscribe e code di messaggi dal 8.1 in poi);
¾ Consente la g
gestione dinamica della memoria,, basandosi
su un modello di memoria (memory model)
indipendente dall’hardware sottostante.
[email protected]
www.mobilab.unina.it
Mobile Systems
S. Russo
Mobilab
European Master on Critical Networked Systems
Napoli,
Maggio-Giugno 07
::. Gestione della memoria
¾ EKA2 gestice la memoria con la tecnica della paginazione
pura.
¾ La memoria logica e quella fisica vengono suddivise in
pagine di 4 Kbyte.
¾ ‘pura’ sta ad indicare che non sono previsti meccanismi di
gestione virtuale della memoria:
9 Quando tutte le pagine libere sono state assegnate, una
successiva richiesta di disponibilità di memoria causa un errore
del tipo Out-of-Memory.
9 Le pagine, infatti, non sono sottoposte ad operazioni di swap.
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
13
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Gestione della memoria
¾ Paginazione a 2 livelli:
[email protected]
www.mobilab.unina.it
Mobile Systems
S. Russo
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Memory Model
¾ Architetture della memoria eterogenee (assenza di MMU,
MMU eterogenee,
eterogenee emulatore …))
¾ EKA2 confina le assunzioni sull’architettura della memoria
in un componente unico, il memory model.
¾ Sono attualmente disponibili 4 modelli di memoria:
9 Direct (per processori senza MMU – mai usato);
g ((implementazione
p
software della TLB – ARMv5))
9 Moving
9 Multiple (sfrutta la TLB sottostante – ARMv6)
9 Emulator (sfrutta il SO host: Windows)
¾ Nuovi modelli di memoria possono essere aggiunti.
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
14
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Memory Model
¾ Fornisce a EKERN delle API di basso livello per la gestione
della memoria indipendente dal hardware sottostante:
¾ Allocazione/deallocazione di aree codice, heap, stack;
¾ Assegnazione di aree di memoria ad un processo e
registrazione di nuovi thread;
¾ Gestione del context switch (relativamente alla memoria)
[email protected]
www.mobilab.unina.it
Mobile Systems
S. Russo
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. EUSER
¾ I server e le applicazioni possono comunicare con il kernel
solo attraverso EUSER,
EUSER che offre tre tipologie di servizi:
9 Classi di utilità e funzioni comuni;
9 Executive calls;
9 Kernel Server Request;
File
Server
Window
Server
Applicazione
User-Level
EUSER
Kernel
www.mobilab.unina.it
Kernel-Level
[email protected]
Mobile Systems
S. Russo
15
European Master on Critical Networked Systems
Mobilab
Napoli,
Maggio-Giugno 07
::. Server di base
¾ File Server
9 Server di livello utente che consente ai thread di livello
utente di manipolare drive, file e cartelle.
¾ Window Server
9 Server di livello utente che condivide lo schermo, la tastiera e
il puntatore con tutte le applicazioni.
www.mobilab.unina.it
[email protected]
Mobile Systems
S. Russo
16