1 / 26

Symbian: un sistema operatiu per mòbils

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

mason
Télécharger la présentation

Symbian: un sistema operatiu per mòbils

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. David Bañeres Besora (e3745571@est.fib.upc.es) Symbian: un sistema operatiu per mòbils

  2. Í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

  3. 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)

  4. 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

  5. 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

  6. 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

  7. Symbian • Arquitectura actual del R380 d’Ericsson

  8. EPOC 32 • Estructura del SO Aplicació Aplicació Client API ENGINE API SERVER Server Engine Mode Usuari API KERNEL Mode Privilegiat KERNEL

  9. 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

  10. 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.

  11. 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

  12. 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

  13. 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

  14. 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

  15. Kernel • Components del Kernel: Aplicacions/Servidors/Engines Mode usuari euser.lib Kernel executive Mode privilegiat Kernel Server

  16. 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.

  17. 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

  18. 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

  19. 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.

  20. 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)

  21. 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

  22. 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:

  23. 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.

  24. 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.

  25. 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.

  26. 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

More Related