260 likes | 412 Vues
David Bañeres Besora (e3745571@est.fib.upc.es). Symbian: un sistema operatiu per mòbils. Índex. 1.- Introducció 2.- Symbian 3.- Descripció del SO EPOC 32 3.1.- Engines 3.2.- Servers 3.3.- Kernel 3.3.1.- Device Drivers 3.3.2.- Gestió de la memòria 3.4.- Processos i threads
E N D
David Bañeres Besora (e3745571@est.fib.upc.es) Symbian: un sistema operatiu per mòbils
Índex 1.- Introducció 2.- Symbian 3.- Descripció del SO EPOC 32 3.1.- Engines 3.2.- Servers 3.3.- Kernel 3.3.1.- Device Drivers 3.3.2.- Gestió de la memòria 3.4.- Processos i threads 3.5.- Disseny del SO
Introducció • Els mòbils han evolucionat molt!! • Tot va començar a la década dels 40. • Els mòbils funcionaven amb una bobina i un tub al buit!! • Apareixen els transistors (anys 50), els circuits integrats (principis dels 60) i els microprocessadors (principis dels 70). • Els mòbils van adquirint aquesta tecnologia... • Als anys 70 apareixen els primers mòbils cel·lullars analògics comercials. • A principis dels 90 apareixen el primers mòbils digitals. • Avui en dia tenen accés a Internet (WAP)
Introducció • Avui en dia el telèfons mòbils necessiten un SO que gestioni tots els processos que executen. • Moltes de les companyies de mòbils i palmtops han agafat el SO Symbian com a SO stàndard pels seus mòbils: • Ericsson, Matsushita, Motorola, Nokia, Philips, Psion, Sanyo and Sony. • Exemple de mòbils amb el SO Symbian: Ericsson R380s Nokia 9210
Introducció • Hardware en un mòbil • CPU de 32 bits(36Mhz-190Mhz) • Dispositius E/S (pantalla digital,teclat,…) • ROM: Conté el SO i aplicacions incorporades • RAM: usada pels programes actius, kernel i per guardar informació Pantalla Digital Bateries Speaker, micròfon Teclat numèric ROM,RAM CPU
Symbian • Symbian està basat en el SO EPOC32. • Perquè EPOC32? • Característiques: • És un SO de temps real • Multitasca • Multithreads • Respecte al Hardware, té en compte: • Baix consum d’energia • Processadors lents • Poc espai de memòria
Symbian • Arquitectura actual del R380 d’Ericsson
EPOC 32 • Estructura del SO Aplicació Aplicació Client API ENGINE API SERVER Server Engine Mode Usuari API KERNEL Mode Privilegiat KERNEL
Engines • Aplicació: • Interactua amb l’usuari (GUI) • API Engine: • Funcions públiques de la Engine • Engine: • Part interna d’un programa per manipular dades • Són DLLs o mòduls Aplicació DLL Boundary API ENGINE Engine
Engines • Hi ha dos tipus de DLLs: • DLL compartit: • Especifica una API fixa per un o més programes • DLL polimòrfic: • implementa una API abstracta • Per exemple: un driver d’impresora • Optimitza la búsqueda de la entrada de les funcions: • En comptes d’utilitzar el nom(que pot ocupar molt espai), utilitza un link per ordinal • Les DLLs es carreguen en la memòria RAM i es col·loquen en una adreça determinada. Tot els processos que la necessitin accedeixen a l’adreça de la DLL. No es descarrega fins que no hi hagi cap procés que la necessiti.
Servidors • Clients: • Són aplicacions o altres servidors que utilitzen els serveis d’un servidor • API Server: • Funcions per accedir als recursos que gestiona els servidor • Servers (Servidors): • Gestiona un o més recursos • Normalment un servidor és un procés Clients Boundary Process API SERVER Servers
Servidors • Comunicació entre clients i servidors: • Pas de missatges mitjançant el Kernel: • mitjançant l’API del servidor Servidor Client Resposta Petició GUI Client Mode Usuari Mode Privilegiat Kernel executiu
Servidors • Comunicació entre clients i servidors: • Lectura-escriptura inter-thread: • el servidor pot accedir a l’adreça del client i hi pot llegir i/o escriure. Servidor Client Inter-thread R/W GUI Client Mode Usuari Mode Privilegiat Kernel executiu
Kernel • Aplicació: • Programa amb interficie d’usuari • Cada Aplicació genera un procés • API Kernel: • Les aplicacions solament poden accedir als recursos mitjançant l’API • Kernel: • Controla els recursos del sistema com la RAM i els dispositius de E/S Aplicació Privilege Boundary API KERNEL KERNEL
Kernel • Components del Kernel: Aplicacions/Servidors/Engines Mode usuari euser.lib Kernel executive Mode privilegiat Kernel Server
Kernel • El Kernel té dos components principals: • Kernel Executive: • Fa de pont entre l’usuari i el Kernel Server. • Kernel Server: • Sempre s’executa privilegiat. • Té un únic thread que té la prioritat més alta. • Gestiona els recursos del sistema. • Obté les requestes del client.
Device Drivers • Una aplicació pot demanar una petició i quan l’obté el Kernel li dóna la resposta • El dispositiu va donant les interrupcions al Kernel per fer les diferents tasques • Ex: Rellotge Aplicacions/Servidors/Engines Demanar petició a un dispositiu euser.lib Kernel executive Salta la Interrupció Dispositiu
Device Drivers • Quan es produeix una interrupció: • S’executa una rutina ISR (interrupt service routine): Normalment serveix per avisar que s’ha produit la interrupció. • Després s’executa una funció DFC (delayed function call) que servirà per fer la tasca precisa. DFC ISR Dispositiu
Gestió de la memòria • La memoria la gestiona la MMU • Dos tipus de memòries: • ROM: • Consisteix en un conjunt de fitxers en estructura de directoris. • S’hi pot accedir mitjançant una unitat de disc. • RAM • Dividida per la MMU en pàgines de 4k. • Memòria no-persistent que es manté mentre tinguem energia a la màquina. • Important: EPOC no té memòria virtual en un swap, sinó que utilitza pàgines de la memòria RAM.
Memòria del procés SP Processos i threads • Processos: • La unitat fundamental de protecció dintre l’EPOC • Té un espai de memòria • Una pila • Un codi d’execució • Threads: • La unitat fundamental d’execució dintre EPOC • Un procés té un o més threads • Cada thread s’executa independent • Tenen memòria compartida (la del procés)
Processos i threads • Scheduler • Entra el thread que té la major prioritat • EPOC té “preemptive multitasking”: Si hi ha un thread a la cua amb una prioritat més alta --> treu el thread que s’executa • Canvi de Context • El SO intenta que els canvis de context no tinguin gaire overhead • PROBLEMA: els canvis de context entre processos (Ex: client-servidor) són molt costosos: • Solució: Es fiquen tots conjuntament en un procés per tal que el canvis de context siguin més ràpids: • Ex: s’utilitza en els servidors de sockets i de telefonia
System ROM RAM (Shared DLLs) Global heap Thread1 heap Thread2 heap Thread3 heap Thread1 stack Thread2 stack Thread3 stack Process image Processos i threads • Distribució de la memòria dins un procés:
Processos i threads • Distribució de la memòria dins un procés: • Accés a memòria de sistema (ROM) i direcció de les DLLs compartides(RAM). • Heap compartit del procés • Memòria per cada thread: • Pila d’una dimensió reduïda • Heap del thread(serveix per guardar les estructures de dades grans) • Si es necessita, un thread pot tenir més d’un heap • Accés a la memòria: • Un procés no pot accedir a l’espai de memòria d’un altre perquè estan completament separades • Els threads d’un procés poden accedir a heap global i als heaps dels altres threads ja que estan dins del mateix espai d’adreces d’un procés.
Disseny del SO • Desició fundamental del disseny: • Optimització del sistema per tenir una recepció eficient d’events (event Handling) • IDEA: events en Visual Basic • Avui en dia els SOs posen molt esforços per soportar processos i threads però però deixen de banda la orientació a events. • Molts programes orientats a events en un SO d’aquest estil són molt més eficients que en un convencional multitasca.
Disseny del SO • Els events es gestionen mitjançant objectes actius (active objects) • Realment es un member virtual d’una funció anomenada RunL(). • Aquest funció RunL() es crida quan passa l’event que volem controlar. • Aquesta funció comença amb un preprocés per analitzar l’event. • Després pot cridar a altres funcions per acabar la feina de l’event. • EPOC implementa la multitasca mitjançant els active objects. • També implementa preemptive multitasking: • Un thread pot treure un altre que s’està executant si té una prioritat més alta • Quan treballem amb active objects no funciona el preemptive multitasking ja que al ser events s’han d’acabar d’executar per complet.
Bibliografia • [TaAl00] • Martin Taske, Jonathan Allin, Professional Symbian Programing. Mobile Solutions on the EPOC System • Pàgines web: • www.symbian.com • www.nokia.com • www.ericsson.com