Sistema Operativo Symbian OS
Sistema Operativo Symbian OS
Sistema Operativo Symbian OS
Introduccion
Objetivos
Desarrollo
a. Generalidades sobre Symbian SO
b. Procesos e Hilos
Symbian OS es un sistema operativo multitareas.
1.3.1 Hilos y nanohilos
Symbian OS usa los hilos como base de multitareas. El sistema operativo ve un proceso como
una coleccin de hilos con un bloque de control de proceso y cierto espacio de memoria.
El soporte de hilos en Symbian OS se basa en el nanokernel con nanohilos.
El nanokernel: Proporciona soporte simple para hilos; cada hilo se sostiene mediante un
nanohilo basado en nanokernel.
Los nanohilos : Se ejecutan en modo privilegiado (no en modo usuario) y necesitan una pila
para almacenar sus datos del entorno en tiempo de ejecucin.
Necesitan un mnimo de datos para ejecutarse:
- Ubicacin de su pila - Tamao (que tan grande es)
El sistema operativo controla todo, como el cdigo de cada hilo, y almacena el contexto de un
hilo en su pila en tiempo de ejecucin.
Los nanohilos tienen estados de hilos, as como los procesos tienen estados.
Estados agregados del modelo nanokernel de Symbian Os
Suspendido: Cuando un hilo suspende a otro hilo y debe ser distinto al estado en espera,
donde un hilo se bloquee algn objeto de nivel superior (por ejemplo, un hilo).
Espera de semforo rpido: Un hilo en este estado espera a que se seale un semforo
rpido. Son semforos a nivel de nanokernel.
Espera de DFC: Un hilo esta esperando que se agregue una llamada a funcin retrasada
(DFC) a la cola de DFCs. Las DFCs se utilizan en la implementacin de drivers de dispositivos.
Representan llamadas al kernel que se pueden poner en cola y programar para ejecutarse
mediante el nivel del kernel de Symbian OS.
Inactivo: Los hilos inactivos esperan a que se transcurran una cantidad especfica de tiempo.
OtroEstado genrico: Cuando los desarrolladores implementan estados adicionales para
los nanohilos. Hacen esto cuando extiende la funcionalidad del nanokernel para nuevas
plataformas de telfonos (se conoce como niveles de personalidad).
Un nanohilo un proceso ultraligero. Tiene un mini contexto que cambia a medida que los
nanohilos se cambian hacia/desde el procesador. Cada nanohilo tiene un estado, al igual que
los procesos. Las claves para los nanohilos son el estrecho control que tiene el nanokernel
sobre ellos, y los datos mnimos que conforman el contexto de cada uno.
Los hilos de Symbian OS se basan en los nanohilos: el kernel agrega el soporte ms all de lo
que proporciona el nanokernel. Los hilos en modo de usuario que se utilizan para aplicaciones
estndar se implementan mediante los hilos de Symbian OS. Cada hilo contiene un nanohilo y
agrega su propia pila en tiempo de ejecucin a la pila que utiliza el nanohilo. Symbian OS
tambin agrega a la implementacin el manejo de excepciones y la sealizacin al terminar.
Los hilos implementan su propio conjunto de estados encima de la implementacin del
nanohilo. Como los hilos agregan cierta funcionalidad a la implementacin mnima del
nanohilo, los nuevos estados reflejan las nuevas ideas integradas en los hilos.
Agrega a siete nuevos estados en los que se pueden encontrar sus hilos, con nfasis en las
condiciones de bloqueo especiales que pueden ocurrir a un hilo de Symbian OS. Estos estados
especiales incluyen el de espera y suspensin e semforos (normales), variables de mutex y
variables de condicin.
1.3.2 Procesos
Los procesos son hilos de Symbian OS agrupados bajo una sola estructura de bloque de
controlde proceso, con un solo espacio de memoria. Puede haber solo un hilo de ejecucin, o
varios hilos bajo un bloque de control de proceso. Los conceptos de estado del proceso y
programacin del proceso ya que se han definido los hilos y nanohilos de Symbian OS.
Entonces, la programacin de un proceso se implementa en realidad mediante la planificacin
de un hilo y la inicializacin del bloque de control de proceso correcto, de manera que el hilo
lo utilice para sus necesidades de datos.
Los hilos de Symbian OS organizados bajo un solo proceso trabajan juntos de varias formas. En
primer lugar, hay un solo hilo individual que se marca como el punto inicial para el proceso. En
segundo lugar, los hilos comparten los parmetros de planificacin. Si se cambian los
parmetros de planificacin. Si se cambian los parmetros (mtodo de planificacin) para el
proceso, se cambian los parmetros para todos los hilos. En tercer lugar, los hilos comparten
objetos del espacio de memoria, incluyendo los descriptores de dispositivos y otros
descriptores de objetos. Por ultimo, cuando se termina un proceso el kernel termina todos los
hilos en el proceso.
1.3.3 Objetos activos
Son formas especializadas de hilos, los cuales se implementan de tal forma que se aligere la
carga que imponen en el entorno operativo. Los diseadores de Symbian OS reconocieron el
hecho de que haba muchas situaciones en la que se bloqueara un hilo en una aplicacin.
Symbian OS se enfoca en la comunicacin, muchas aplicaciones tienen un patrn similar de
implementacin: escriben datos en unsocket de comunicacin o envan informacin a travs
de una tubera, y despus se bloquean al esperar una respuesta del receptor. Los objetos
activos estn diseados de manera que cuando regresan de este estado bloqueado, solo se
hace la llamada aun punto de entrada en su cdigo.
La clave para los objetos activos esta en la planificacin. Mientras esperan eventos, todos los
objetos activos residen dentro de un solo proceso y pueden actuar como u solo hilo para el
sistema. El kernel no necesita comprobar de manera continua cada objeto activo para ver si se
puede desbloquear.
Por lo tanto, los objetos activos en un solo proceso se pueden coordinar mediante un solo
planificador que se implementa en un solo hilo, al crear puntos de entrada fijos en el cdigo y
mediante el uso de un solo planificador para coordinar su ejecucin, los objetos activos
forman una versin eficiente y ligera de los hilos estndar.
Es importante tener en cuenta en donde se adaptan los objetos activos en la estructura de
procesos de Symbian OS. Cuando un hilo convencional realiza una llamada al sistema que
bloquea su ejecucin mientras esta en el estado de espera, para determinar si alguno necesita
parar al estado listo.
Los objetos activos se colocan a si mismo en el estado en espera, y esperan a que ocurra un
evento especifico. Por lo tanto, el sistema operativo no necesita comprobarlos pero los
desplaza cuando se activa su evento especfico. El resultado es que se requieren menos
comprobaciones de hilos y aumenta el rendimiento.
1.3.4 Comunicacin entre procesos
Lacomunicacin entre procesos es crucial para el rendimiento del sistema. Los hilos, en
especial en forma de servidores del sistema, se comunican de manera constante.
Un socket es el modelo bsico de comunicacin utilizado por Symbian OS. Es una lnea de
tubera de comunicacin abstracta entre dos extremos. La abstraccin se utiliza para ocultar
los mtodos de transporte y la administracin de los datos entre los extremos. Symbian OS
utiliza el concepto de un socket para comunicarse entre los clientes y servidores, de hilos a
dispositivos y entre los mismos hilos.
El modelo del socket tambin forma la base de la E/S de dispositivos. La abstraccin, es la
clave para que este modelo sea tan til. Toda la mecnica del intercambio de datos con un
dispositivo se administra mediante el sistema operativo, en vez de que lo haga la aplicacin.
Por ejemplo, los sockets que funcionan a travs de TCP/IP en un entorno de red que se puede
adaptar con facilidad para trabajar en un entorno Bluetooth, al cambiar los parmetros en el
tipo de socket utilizado. El sistema operativo se encarga de la mayor parte del trabajo de
intercambio de los datos en un cambio de este tipo.
c. Administracin de la memoria
Como un sistema operativo de propsito general efectivo, Symbian OS tambin debe
proporcionar un modelo de administracin de la memoria. Sin embargo, como el
almacenamiento en los telfonos inteligentes por lo general esa muy limitado. El modelo de
memoria es restringido y no utiliza un modelo de espacio de memoria virtual/intercambio
para su administracin dela memoria. Sin embargo, utiliza la mayora de los otros mecanismos
que hemos visto para administrar la memoria, incluyendo las MMUs de hardware.
1.4.1 Sistemas sin memoria virtual
Muchos sistemas de cmputo no tienen las herramientas para proporcionar memoria virtual
completa con paginacin bajo demanda.
Considere el espacio de memoria utilizado en la mayora de los dispositivos de plataforma
pequeas. Por lo general, estos sistemas tienen dos tipos de almacenamiento: RAM y
memoria flash. La RAM almacena el cdigo del sistema operativo; la memoria flash se utiliza
para la memoria operativa y el almacenamiento permanente (archivos). A menudo es posible
agregar memoria flash adicional a un dispositivo, y esta memoria se utiliza de manera
exclusiva para el almacenamiento definido.
La usencia de memoria virtual con paginacin bajo demanda no indica la ausencia de la
administracin de memoria. De hecho, la mayora de las plataformas ms pequeas se basan
en hardware que incluye muchas de las caractersticas de administracin de los sistemas ms
grandes. Esto incluye caractersticas como la paginacin, la traduccin de direcciones y la
abstraccin de direcciones virtuales/fsicas.
La ausencia de memoria virtual solo indica que las pginas no se pueden intercambiar de la
memoria y guardarse en el almacenamiento externo, pero aun se utiliza la abstraccin de las
pginas de memoria.
Las pginas pueden reemplazar, pero la pgina que se va a reemplazar solo se descarta. Esto
significa que solo se pueden reemplazar pginas de cdigo, ya que solo esasse respaldan en la
memoria flash.
La administracin de la memoria consiste en las siguientes tareas:
Administracin del tamao de la aplicacin. El tamao de una aplicacin (cdigo y datos)
tiene un efecto contundente en cuanto a la forma que se utiliza la memoria. Se requiere
habilidad y disciplina para crear software pequeo. La mayora de los sistemas operativo mas
pequeas no recomiendan la vinculacin esttica en los mdulos.
Administracin del montculo. El montculo (espacio para la paginacin dinmica de
memoria) se debe administrar en forma muy estricta en una plataforma ms pequea. Por lo
general, el espacio del montculo se limita en las plataformas mas pequeas para obligar a los
programadores a reclamar y reutilizar es espacio del montculo lo mas que puedan. Si se
aventuran ms all de los lmites, se producen errores en la asignacin de la memoria.
Ejecucin en el lugar. Esto significa que la memoria flash se asigna al espacio de direcciones
virtuales y los programas se pueden ejecutar directamente de la memoria flash, sin necesidad
de copiarlos primero en la RAM. Al hacer esto se reduce a cero el tiempo de carga, las
aplicaciones pueden iniciar en forma instantnea y adems no hay que ocupar la RAM, que es
escasa.
Carga de DLLs. La decisin de cuando se deben cargar las DLLs puede afectar en la
percepcin del rendimiento del sistema. Por ejemplo, es ms aceptable cargar todas las DLLs
cuando se carga una ampliacin por primera vez en la memoria, que cargarlas en tiempos de
retraso en la carga de una aplicacin que losretrasos en la ejecucin. Hay que tomar en cuenta
que tal ves las DLLs no se necesiten cargar. Podra ser el caso si (a) ya se encuentran en la
memoria, o (b) estn contenidas en el almacenamiento flash externo.
Transferencia de la administracin de la memoria al hardware. Si hay una MMU disponible,
se utiliza en toda su extensin. De hecho, entre mas funcionalidad se pueda poner en la MMU,
mejor ser el rendimiento del sistema.
Aun con la regla de ejecucin en el lugar, las pequeas plataformas de todas formas necesitan
memoria que esta reservada para la operacin del sistema operativo. Esta memoria se
comparte con el almacenamiento permanente y por lo general se administra en una de dos
formas.
1.4.2 Como direcciona Symbian OS la memoria
Como Symbian OS es un sistema operativo de 32 bits, las direcciones pueden variar hasta 4
GB. Emplea las mismas abstracciones que los sistemas ms grandes: los programas deben
utilizar direcciones virtuales, que el sistema operativo asigna a direcciones fsicas. Symbian OS
divide la memoria en pginas virtuales y marcos fsicos. El tamao de los marcos es por lo
general de 4KB, pero puede ser variable.
Con tamaos limitados de memoria, Symbian OS no puede dedicar 1 MB a la tabla de pginas
ya que un tamao de un marco de 4 KB representa a una tabla de pginas con ms de un
milln de entradas. Adems, los tiempos de bsqueda y acceso para una tabla tan grande
serian una carga para el sistema. Para solucionar esto, Symbian OS adopta una estrategia de
tabla de pginas de dos niveles, como se muestra en la figura.El primer nivel conocido como
directorio de pginas, proporciona un vnculo al segundo nivel y se indexa mediante una
proporcin de la direccin virtual (los 8 bits de en medio). Este directorio se mantiene en la
memoria y el TTBR (translation table base register, registro base de tabla de traduccin)
apunta a el.
Una entrada en el directorio de pginas apunta al segundo nivel, que es una coleccin de
tablas de pginas. Estas tablas proporcionan un vnculo a una pgina especfica en memoria y
se indexan mediante una porcin de la direccin virtual. Por ultimo, la palabra en la pgina
referenciada se indexa mediante los 12 bits de menor orden de la direccin virtual.
El hardware ayuda en este clculo de asignacin de direccin virtual a fsica. Aunque Symbian
OS no puede asumir la existencia de ningn tipo de asistencia de hardware, la mayor parte de
las arquitecturas en la que se implementa tienen MMUs.
Cuando una pgina no esta en la memoria, se produce una condicin de error debido a que
todas las pginas de memoria de una aplicacin se deben cargar al momento de iniciar esta
aplicacin (no hay paginacin bajo demanda).
A pesar de la falta de intercambio, la memoria es sorprendentemente dinmica en Symbian
OS. El contexto de las aplicaciones se cambia a travs de la memoria, se cargan sus
requerimientos en la memoria cuando empiezan su ejecucin. Las paginas de memoria que
requiere cada aplicacin se pueden solicitar de manera esttica al sistema operativo, el
momento de cargar la aplicacin en la memoria.
El espacio dinmico (montculo)esta limitado, por lo que tambin se pueden realizar
peticiones estticas para el espacio dinmico. Los marcos de memoria se asignan a las pginas
desde una lista de marcos libres, si no hay marcos libres disponibles, entonces se genera una
condicin de error. Los marcos de memoria utilizados no se pueden reemplazar con paginas
de una aplicacin entrante, incluso si los marcos son para una aplicacin que no se este
ejecutando en ese momento.
Hay cuatro versiones distintas del modelo implementacin de memoria que utiliza Symbian
OS. Cada modelo se diseo para ciertos tipos de configuracin de hardware.
El modelo de movimiento. Se diseo para las primeras arquitecturas del ARM. El directorio
de pginas en el modelo de movimiento es de 4 KB de largo, y cada entrada contiene 4 bytes,
para un tamao del directorio de 16 KB. Las pginas de memoria se protegen mediante bits de
acceso asociados con los marcos de memoria y mediante el etiquetado del acceso a la
memoria con un dominio.
Los dominios se registran en el directorio de pginas y la MMU implementa los permisos de
acceso para cada dominio. Aunque no se utiliza la segmentacin en forma explicita, hay una
organizacin para la distribucin de la memoria: hay una seccin para los datos asignados por
el usuario y una seccin de kernel para los datos asignados por el kernel.
El modelo mltiple. Se desarrollo para la versin 6 y posteriores de la arquitectura ARM. La
MMU difiere de la utilizada en versiones anteriores. La nueva versin de la arquitectura ARM
reviso y mejoro los bits de acceso encada, marco de pagina, y abandono el concepto principal.
El modelo directo. Modelo directo de memoria asume que no hay MMU. Este modelo no
esta permitido en los telfonos inteligentes. La falta de una MMU ocasionara severos
problemas de rendimiento. Este modelo, es til para los entornos de desarrollo en lo que la
MMU se debe deshabilitar por alguna razn.
El modelo del emulador. Se desarrollo para proveer un emulador de Symbian OS para
Windows. Tiene unas cuantas restricciones en comparacin con una verdadera CPU de
destino. El emulador se ejecuta como un solo proceso de Windows, por lo que el espacio de
direcciones esta restringido a 2GB y no a 4GB. Toda la memoria que se proporciona al
emulador es accesible para cualquier proceso de Symbian OS, y por lo tanto no hay proteccin
de memoria disponible.
d. Entrada y Salida
La estructura de entrada/salida de Symbian OS refleja la de otros diseos de sistemas
operativos. Se resaltaran algunas de las caractersticas nicas que Symbian OS utiliza para
enfocarse en su plataforma de destino.
1.5.1 Drivers de dispositivos
Los driver de dispositivos se ejecutan como cdigo privilegiado del kernel para proporcionar
acceso al cdigo de nivel de usuario a los recursos protegidos del sistema. Al igual que en los
casos de Linux y Windows, los drivers de dispositivos representan el acceso al hardware
mediante el software.
En Symbian OS, un driver de dispositivos de divide en dos niveles: un driver de lgico (LDD) y
un driver de dispositivos fsico (PDD). El LDD presenta una interfaz a losniveles superiores del
software, mientras que el PDD interacta de manera directa con el hardware. En este modelo
el LDD puede utilizar la misma implementacin para una clase especfica de dispositivos,
mientras que el PDD cambia con cada dispositivo.
Symbian OS suministra muchos LDDs estndar. Algunas veces, si el hardware es muy estndar
o comn, Symbian OS tambin proporciona un PDD.
Los LDDs y los PDDs se pueden cargar en forma dinmica mediante los programas de usuario,
si no existen ya en la memoria. Se proporcionan herramientas de programacin si es necesario
cargarlos.
1.5.2 Extensiones del kernel
Las extensiones del kernel son drivers de dispositivos que Symbian OS carga en tiempo de
inicio. Como se cargan en tiempo de inicio, son casos especiales que se necesitan tratar de
manera distinta a los drivers de dispositivos normales.
Son distintas de los drivers de dispositivos normales. La mayora de estos drivers de
dispositivos se implementan como LDDs y forman parejas con los PDDs; adems se cargan
cuando es necesario en tiempo de inicio y estn orientadas de manera especfica a ciertos
dispositivos; por lo general no forman parte con PDDs.
Estn integradas en el procedimiento de inicio. Estos driver de dispositivos especiales se
cargan e inician justo despus de que inicia el programador. Implementan funciones cruciales
para los sistemas operativos: servicios de DMA, administracin de la pantalla, control de buses
para los dispositivos perifricos.
Estos drivers se proporcionan por dos razones. En primer lugar, coinciden con lasabstracciones
de diseo orientado a objetos que hemos visto como caracterstica del diseo de
microkernels. En segundo lugar, permite que las plataformas separadas en la que se ejecutan
Symbian OS ejecuten drivers de dispositivo especializados, los cuales habilitan el hardware
para cada plataforma sin tener que volver a compilar el kernel.
1.5.3 Acceso directo a la memoria
Symbian OS acepta el uso de hardware de DMA. Consiste en un controlador de un conjunto de
canales de DMA. Cada canal proporciona una sola direccin de comunicacin entre la
memoria y un dispositivo; por lo tanto, la transmisin bidireccional de los datos requiere dos
canales de DMA. Hay por lo menos un par de canales de DMA dedicados al controlador LCD de
la pantalla. Adems, la mayora de las plataformas ofrecen cierto numero de canales de DMA
generales.
Cuando un dispositivo transmite datos a la memoria, se activa una interrupcin del sistema. El
PDD utiliza el servicio de DMA que proporciona el hardware de DMA para el dispositivo
transmisor: la parte del dispositivo que se interconecta con el hardware.
Symbian OS implementa dos niveles de software entre el PDD y el controlador de DMA: un
nivel de DMA de software y una extensin del kernel que se interconecta con el hardware de
DMA. El mismo nivel de DMA se divide en un nivel independiente de la plataforma y en un
dependiente. Como extensin del kernel, el nivel de DMA es uno de los primeros drivers de
dispositivos que el kernel inicia durante el procedimiento de inicio.
El soporte para el DMA es complicado. Symbian OS soportamuchas configuraciones de
hardware distintas, por lo cual se puede suponer una sola configuracin de DMA. La interfaz
de DMA se estandariza entre una plataforma y otra, y se suministra en el nivel independiente
de la plataforma. Como el hardware de DMA se ve como un dispositivo en su propio derecho,
esta forma de implementar el soporte tiene sentido, debido a que es paralela a la forma en
que Symbian OS admite todos los dispositivos.
1.5.4 Caso especial: medios de almacenamiento
Los drivers de los medios son una forma especial de PDD en Symbian OS, que el servidor de
archivos utiliza de manera exclusiva para implementar el acceso a los dispositivos de los
medios de almacenamiento. Como los telfonos inteligentes pueden contener medios fijos y
removibles, los drivers de medios deben reconocer y soportar una variedad de formas de
almacenamiento. El soporte de Symbian OS incluye para los medios un LDD estndar y una API
de interfaz para los usuarios.
El servidor de archivos en Symbian OS puede aceptar hasta 26 unidades distintas al mismo
tiempo. Las unidades locales se distinguen mediante su letra de unidad, como en Windows.
1.5.5 Bloqueo de E/S
Symbian OS trata con el bloqueo de E/S por medio de objetos activos. Los diseadores se
dieron cuenta que el peso de todos los hilos que esperan un evento de E/S afecta a los dems
hilos en el sistema. Los objetos activos permiten que el sistema operativo maneje las llamadas
del bloque de E/S, en vez de que lo haga el mismo proceso los objetos activos se coordinan
mediante un solo planificador y se implementanen un solo hilo.
Cuando el objeto activo utiliza una llamada de bloqueo de E/S, lo seala el sistema operativo y
se suspende al proceso suspendido a si mismo. Cuando se completa la llamada de bloqueo, el
sistema operativo despierta al proceso suspendido y esta continua su ejecucin como si una
funcin hubiera regresado con datos.
1.5.6 Medios removibles
Representan un dilema interesante para los diseadores de sistemas operativos. Cuando se
inserta una tarjeta SD en la ranura del lector, es un dispositivo justo igual que los dems.
Necesita un driver, una estructura de bus y tal vez se comunique con la CPU por medio de
DMA. Sin embargo, el hecho de quitar este medio es un problema grave para este dispositivo
Cmo detecta el sistema operativo la insercin y remocin, y como debe tener en cuenta el
modelo la ausencia de una tarjeta de medios?
Symbian OS empieza su implementacin de los medios removibles con sus similitudes. Cada
tipo de medio removible tiene caractersticas comunes para todos los dems:
1. Todos los dispositivos se pueden insertar y remover.
2. Todos los medios removibles se pueden remover, es decir, mientras estn en uso.
3. Cada medio puede reportar sus capacidades.
4. Las tarjetas incompatibles se deben rechazar.
5. Cada tarjeta necesita energa.
Para aceptar medios removibles, Symbian OS proporciona controladores de software que
controlan cada tarjeta admitida. Los controladores funcionan con los drivers de dispositivos
para cada tarjeta, tambin en software. Cuando se inserta una tarjeta se crea un objeto de
socket.
e. Sistema de Almacenamiento
f. Seguridad
g. Comunicacin
CONCLUSIONES
REFERENCIAS