Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMaría Cristina Sosa Iglesias Modificado hace 6 años
1
Symbian: un sistema operatiu per mòbils
David Bañeres Besora
2
Índex 1.- Introducció 2.- Symbian 3.- Descripció del SO EPOC 32
3.1.- Engines 3.2.- Servers 3.3.- Kernel Device Drivers 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 Client Aplicació Aplicació API SERVER
API ENGINE Server Engine Mode Usuari API KERNEL Mode Privilegiat KERNEL
9
Engines Aplicació: API Engine: Engine: Interactua amb l’usuari (GUI)
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: API Server: Servers (Servidors):
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ó: API Kernel: Kernel: 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
Aplicacions/Servidors/Engines
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
Aplicacions/Servidors/Engines
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
Processos i threads Processos: Threads:
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) Memòria del procés SP
21
Processos i threads Scheduler Canvi de Context
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
Processos i threads Distribució de la memòria dins un procés:
RAM (Shared DLLs) System ROM Process image Thread1 stack Thread2 stack Thread3 stack Global heap Thread1 heap Thread2 heap Thread3 heap
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] Pàgines web:
Martin Taske, Jonathan Allin, Professional Symbian Programing. Mobile Solutions on the EPOC System Pàgines web:
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.