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