SYMBIAN siste,ma operativo

6

Click here to load reader

Transcript of SYMBIAN siste,ma operativo

Page 1: SYMBIAN siste,ma operativo

SYMBIANEntre los sistemas operativos de mayor uso esta Symbianel cual fue credo por Symbian Ltd. fundado en 1998 por los accionistas: Nokia (47.9%), Panasonic (10.5%),Samsung (4.5%), Siemens (8.4%), Sony Ericsson(28.7%) y otras marcas que adquirieron la licencia. Las casas matrices de Symbian se basan en Londres, Reino Unido, en los Estados Unidos, en Europa y Asia (Symbian, 2007).Symbian está diseñado para residir en un espacio muy pequeño, hacer un uso dinámico de escasos recursos de memoria, administrar eficientemente la energía y soportaren tiempo real los protocolos de comunicación y telefonía, además de ser más “gentil” con el usuario y tolerante a fallas. Técnicamente, el sistema operativo Symbian es una colección compacta de código ejecutable y varios archivos, la mayoría de ellos son biblioteca s vinculadas dinámicamente (DLL por sus siglas en inglés)y otros datos requeridos, incluyendo archivos de configuración, de imágenes y de tipografía, entre otros recursos residentes. Symbian se almacena, generalmente en un circuito flash dentro del dispositivo móvil. Gracias a este tipo de tecnología, se puede conservar información aun si el sistema no posee carga eléctrica en la batería ,además de que le es factible reprogramarse, sin necesidad de separarla de los demás circuitos” (Rodríguez, 2005).

3.1 Arquitectura del Sistema operativo Symbian

EL Sistema operativo Symbian con el paso de los años ha evolucionado como cualquier Sistema operativo computacional la arquitectura que analizaremos es la base de las primeras versiones, las posteriores han dado mejoras en cuanto a velocidad, la conectividad y aplicaciones novedosas.

Arquitectura de Symbian

La primera versión de Symbian fue la 6.0, después le siguió la versión 7.0, continuo con la versión 8.0,posteriormente surgió la versión 9.0 y la actual la 9.3(Cantera,2006). Como puede observarse en la figura 1 el Sistema operativo esta compuesto por módulos responsables de tareas específicas que interactúan entre si de acuerdo a las necesidades de la aplicación y de los usuarios, las funciones de los módulos son las siguientes:• Modulo base: Todos los componentes del sistema se apoyan sobre la base la cual incluye los

componentes básicos de todo el Sistema operativo, el kernel, la gestión de memoria, la gestión de

Page 2: SYMBIAN siste,ma operativo

procesos, servidor de archivo, seguridad de bajo nivel, manejadores de dispositivos y la librería básica de usuario(Aguilera,2007).

• Marco de aplicación: Un framework es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado y desarrollado. Típicamente, un framework puede incluir soporte de programas, bibliotecas y un lenguaje de scripting (Los lenguajes interpretados o lenguajes de script) forman un subconjunto de los lenguajes de programación, que incluye a aquellos lenguajes cuyos programas son habitualmente ejecutados en un intérprete en vez de compilados. Sin embargo, la definición de un lenguaje de programación es independiente de cómo se ejecuten los programas en él escritos, ya sea mediante una compilación previa o a través de un intérprete) entre otros software para ayudar a desarrollar y unir los diferentes componentes de un proyecto (Cantera, 2006).

Un framework representa una arquitectura de software que modela las relaciones generales de las entidades del dominio. Provee una estructura y una metodología de trabajo la cual extiende o utiliza las aplicaciones del dominio (Cantera, 2006).Esta capa ofrece un marco de aplicación framework para asistir a los desarrolladores a escribir código así como la interfaz utilizable, texto y utilidades graficas (Nebro, 2002).

• Modulo de seguridad: Es el gestor de seguridad, proporciona servicios de confidencialidad de datos, integridad y autentificación mediante la utilización de protocolos de comunicación seguros, autentifica el software instalado mediante firmas digitales(Cantera, 2006).

Modulo multimedia: Permite el acceso a la pantalla, al teclado a fuentes y a mapas de bits. Tiene funciones para la grabación y reproducción de audio, así como para el manejo de los formatos gráficos más comunes (Cantera, 2006).

• Modulo de telefonía: Se encarga de gestionar las diferentes tecnologías de comunicación que soporta el teléfono celular (Cantera, 2006).

Como se puede apreciar en la figura 1 el modulo de telefonía esta integrado por: GSM (Sistema global par a comunicaciones móviles), GPRS (Servicio general de paquetes de datos), HSCSD (Datos con conmutación de circuitos a alta velocidad), EDGE (Datos mejorados para evolución global), CDMA (Acceso, múltiple por división de códigos) (Zamora, 2005).

• Modulo de infraestructura de la comunicación: Gestiona los protocolos de comunicación que el teléfono celular soporta (Cantera, 2006).

• Red personal de área local: Gestiona los diferentes tipos de conectividad para el teléfono celular (Cantera, 2006).

• Modulo de motores de uso: Gestiona los protocolos de sincronización de datos personales del teléfono celular para el usuario (Cantera, 2006).

• Modulo de mensajería: Gestiona los diferentes sistemas de mensajería que soporta el teléfono celular (Cantera, 2006).

• Modulo de la maquina virtual de java (kvm):La máquina virtual: KVM (Kilo bite Virtual Machine)La máquina virtual es la base de la plataforma, es el intérprete del lenguaje y sobre la cual se han de ejecutar las aplicaciones, también sobre esta máquina virtual corren las configuraciones, las cuales incorporan APIs (APIs (Aplication Programming Interface: Especifica la interfaz que utiliza un programador para escribir aplicaciones que hagan uso de las clases y métodos) básicos para la creación de aplicaciones y sirven de soporte a los perfiles. Los perfiles incluyen la mayor parte de las clases y APIs que se van a utilizar en la programación, como pueden ser instrucciones de entrada y salida o de inicio y terminación de la aplicación.

• Modulo MIDP (Perfil para dispositivos de Información Móvil): Define un conjunto de APIs específicas cuyo objetivo es facilitar el desarrollo delas aplicaciones JAVA. Las APIs son una agrupación de funciones (paquetes en terminología Java).Conjunto de APIs java que permiten la creación de interfaces de usuario (Aguilera, 2003).

• Modulo telefonía java: Este modulo permite interactuar la tecnología java con el teléfono celular (Aguilera, 2003).

3.2 Gestión de procesos de Symbian

Symbian es un sistema operativo multitarea ya que permite ejecutar más de un proceso a la vez, lo que posibilita maximizar el uso de los recursos del sistema. La multitarea facilita, además, el intercambio de

Page 3: SYMBIAN siste,ma operativo

información entre procesos. La multitarea es especialmente ventajosa en un entorno en el que gran parte de las aplicaciones están orientadas a las comunicaciones.Así, el soporte para la multitarea es fundamental con la llegada de las redes de la generación 2.5 (2.5G)provee mayor velocidad y flexibilidad para la transmisión de voz y datos utiliza las tecnologías GPRS, HSCSD, EDGE,CDMA, y la tercera generación (3G) permite la transmisión de datos a altas velocidades, mayor eficiencia y menor costo para los usuarios, circuitos y paquetes conmutados, que permiten ofrecer un gran numero deservicios basados en conmutación de paquetes, en los que el usuario esta permanentemente conectado. Cada programa se ejecuta en un proceso independiente, y varios procesos pueden ejecutarse de forma concurrente.Cada proceso puede contener una o varias hebras de ejecución, y el planificador del sistema utiliza un esquema apropiativo (reserva el contexto de programación al proceso) para asignar el procesadora los hilo o hebras. Uno de los objetivos de diseño de Symbian es que el sistema debe ser robusto y fiable.Para conseguir este objetivo cada proceso se ejecuta en un espacio de direcciones propio y protegido, de forma que es imposible que otra aplicación escriba de forma accidental o intencionada en dicho espacio. Además, esta característica se aplica también al núcleo del sistema, por lo que un error en un programa no puede modificar deforma accidental el montículo del núcleo y hacer que el sistema se corrompa.La única forma que tienen los procesos de comunicarse es mediante un sistema de paso de mensajes conforme con el modelo cliente-servidor ya que para solicitar un servicio, como la lectura de un archivo, un proceso del usuario (denominado en este caso proceso cliente) envíala solicitud a un proceso servidor, que realiza entonces el trabajo y regresa la respuesta. Este sistema ha sido diseñado para requerir el menor número de recursos posible, con el fin minimizar el intercambio de datos y así reducir la penalización que tiene tipo de comunicación frente a un esquema de memoria compartida. (Nebro, 2002)

Existen dos formas de implementar una aplicación concurrente• Una de ellas es mediante hebras: Cada proceso tiene una hebra o hilo de ejecución por defecto, pero se pueden crear más de forma dinámica. Cada hebra tiene una determinada prioridad, que puede ser absoluta o relativa en relación al proceso al que pertenece, y que es tenida encuentra por el planificador del sistema.• La otra es mediante multitarea cooperativa usando invocación asíncrona de funciones: La alternativa a la utilización de hebras es la invocación asíncrona de funciones, que permite implementar multitarea cooperativa. Mediante este mecanismo, una aplicación cliente puede solicitar un servicio a un servidor; al ser la llamada asíncrona, la aplicación puede continuar su ejecución mientras que el servicio se lleva acabo. Cuando el servidor ejecuta el servicio, selo notifica al cliente. Esta notificación no es de tipo apropiativo, por lo que la aplicación no es interrumpida. Es tarea del cliente la verificación de que ha recibido la notificación del servicio que solicito.Las invocaciones asíncronas a funciones son a menudo en capsuladas dentro del sistema mediante la utilización de un paradigma de objetos activos. Estos objetos se usan para acceder a muchos servicios del sistema, y también para implementar dichos servicios. Entre los servidores del sistema se encuentran los siguientes: ficheros, ventanas, telefonía, bases de datos, multimedia, fuentes y mapas de bits, comunicación por puerto, WAP.

Comunicación entre Procesos: SocketsLos sockets constituyen un mecanismo que permite la comunicación entre procesos que se encuentran en maquinas distintas. La definición clásica de un socket es un punto final para comunicación. Un socket se caracteriza por una dirección de red de una maquina y un numero de puerto. Sin embargo, ambos elementos dependen del protocolo que se utilice. El más conocido es IP (Internet Protocol), y muchas implementaciones de sockets se limitan únicamente a la comunicación sobre redes que usan este protocolo. Sin embargo, se pueden usar otros protocolos. En concreto, en Symbian se pueden utilizar las siguientes familias: TCP/IP, IrDA, Bluetooth, SMS y WAP.La implementación de los sockets en Symbian se basa en un servidor denominado socket server. Cada protocolo se compone de un modulo de protocolo, que se puede añadir al sistema de forma dinámica mediante el uso del servidor de sockets. Cada nuevo protocolo ofrece una interfaz socket lo mas estándar posible, lo que limita la cantidad de código dependiente del protocolo que tiene que ser escrita por el programador. Los módulos de protocolo son DLLs, y cada uno de ellos puede implementar más de un protocolo (Nebro, 2002).

Page 4: SYMBIAN siste,ma operativo

3.3Gestión de memoria de symbian

Los teléfonos móviles tienen una cantidad limitada de memoria, lo que ha de ser tomado en cuenta por los desarrolladores de aplicaciones. Esto significa que la pila de las aplicaciones no debe crecer mucho (las funciones no deben tener muchos parámetros) y hay que evitar solicitar mucha memoria del montículo (zona de memoria utilizada para datos dinámicos). No obstante, Symbian no impone ningún límite en el tamaño del montículo de una aplicación, sino que este impone la cantidad de memoria del teléfono (en realidad existe un límite de 2GB), pero es poco probable que se alcance en un teléfono móvil en un futuro cercano.En los teléfonos en los que se ejecuta Symbian el almacenamiento permanente se implementa mediante memoria flash y tarjetas de expansión, mientras que la RAM se usa como memoria principal. En general, la memoria disponible suele ser de varios megabytes, y es compartida entre el sistema operativo y las aplicaciones en ejecución. Para utilizar de forma eficiente la memoria disponible, Symbian utiliza, una técnica denominada execute-in-place.En un ordenador convencional los programas, incluyendo al sistema operativo, deben ser cargados en memoria principal para poder ser ejecutados. Esto implica que siempre existen dos copias de un programa, la que esta en memoria y la que esta en disco. La técnica de execute-in-place implica, tal como su nombre indica, que el código de un programa se ejecuta sin ser copiado a la memoria principal, con el consiguiente ahorro de memoria (Nebro,2002).Como se ha comentado, las aplicaciones deben usar la memoria cuidadosamente. Particularmente importante es asegurar que se libera toda la memoria que se ha solicitado cuando esta no es necesaria. Si una aplicación solicita memoria dinámica y no la libera, esta memoria queda sin usar hasta que la aplicación acaba “produciéndose lo que se denomina un memory leak”(Nebro, 2002).Para evitar este tipo de errores, críticos cuando existen muy pocos recursos, Symbian proporciona herramientas de desarrollo para asistir en la verificación de que el código libera la memoria de forma correcta. También se ofrece un marco de aplicación framework para asistir a los desarrolladores a escribir código que no desperdicie memoria. Este marco consiste en que cualquier objeto que se este creando se almacene en una pila determinada (clean-up stack), en la cual reside hasta que este completamente creado. Si el sistema se queda sin memoria los objetos de esta pila son eliminados sin que produzcan huecos de memoria sin usar y sin que se produzcan en principio perdidas de datos en el proceso. Este esquema se usa en todo el sistema operativo, y esta claramente identificado en los entornos de desarrollo (Nebro, 2002).

3.4Las interfaces gráficas series 60 y UIQ

Existen dos interfaces de usuario diferenciadas en el consorcio Symbian: la plataforma Series 60 impulsada por Nokia y la plataforma UIQ desarrollada por Sony Ericsson. Ambas están disponibles para que otros fabricantes puedan obtener una licencia y basar en ellas el diseño de sus propios terminales Symbian. La principal diferencia entre ambas es que la Series 60 está pensada para que el usuario interactúe con el teléfono mediante un teclado, mientras que la UIQ está diseñada para ser manejada mediante un lápiz y una pantalla táctil. Ambas plataformas incluyen, además de la especificación de los elementos propios de la interfaz de usuario, un conjunto de aplicaciones estándar que realizan las tareas más comunes en un teléfono móvil multimedia (Aguilera,2007).