Facultad Experimental de Ciencia y Tecnología Departamento de Computación Universidad de Carabobo Sistemas Operativos Sistemas Operativos Móviles Android y iOS Jesús Jiménez Kristopher Perdomo Fabiola Díaz Claudia Forgione Hernán Hernández 10/11/2014 1/80
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Facultad Experimental de Ciencia y Tecnología
Departamento de Computación
Universidad de Carabobo
Sistemas Operativos
Sistemas Operativos Móviles
Android y iOS
Jesús Jiménez
Kristopher Perdomo
Fabiola Díaz
Claudia Forgione
Hernán Hernández
10/11/20141/80
2/80
¿Qué es?
Es un sistema operativo desarrollado por Google para su uso
en dispositivos móviles.
Esto significa que fue diseñado para sistemas con poca
memoria y un procesador que no es tan rápido como los
procesadores de escritorio.
3/80
Origen
4/80
Android Inc. (2003)
Google Inc. (2005)
Open Handset
Alliance (2007)
5/80
Estructura
6/80
7/80
Componentes
Actividades-Activities-
Servicios-Services-
Receptores de Difusiones-Broadcast Recievers-
Proveedores de Contenido-Content Providers-
8/80
Gestión de Procesos
9/80
Android mata procesos en cualquier momento si
queda poca memoria y los recursos que este usa
son requeridos por otros.
Android puede hacer “arreglos” creando
subprocesos para un proceso en caso de que se
quieran ejecutar componentes de una aplicación en
procesos diferentes.
10/80
Jerarquía
Primer
PlanoVisible Servicio
Segundo
PlanoVacío
11/80
Gestión de Memoria
E/S
y
12/80
13/80
Linux Kernel /Servicios Generales
Seguridad
Gestión de memoria y procesos
E/S de archivos y redes
Entre otros
14/80
Linux Kernel /
Servicios Específicos de Android
Administración de energía
Asesino de baja memoria(low memory killer)
Otros
15/80
Para gestionar memoria, Android:
• No ofrece espacio de intercambio (swap space).
• Utiliza paginación y archivos proyectados en memoria (memory-mapped file).
16/80
Archivos proyectados en memoria
• Un bloque de memoria secundaria es
mapeado o proyectado a una (o varias)
páginas del proceso.
• Permite que múltiples procesos proyecten a
un mismo archivo (permite compartición de
datos).
17/80
Compartición de datos con archivos proyectados en memoria
18/80
¿Qué hace Android cuando la memoria RAM
está llena sin contar con el espacio de
intercambio (swap space)?
19/80
Low memory killer
Cuando el espacio de memoria libre en la RAM está
agotándose (o está agotada), el kernel terminará
forzosamente un proceso para liberar sus recursos.
20/80
Android asigna un tamaño límite de memoria heap
para cada aplicación. Este límite depende de cada
dispositivo móvil.
Si el límite es superado, se genera un
OutOfMemoryError y crashea la aplicación, liberando
los recursos utilizados.
21/80
Ejemplos de cantidad límite de memoria
heap:
• HTC Dream (G1) : 16 MB.
• Motorola Droid : 24 MB.
• Nexus One: 32 MB.
• Motorola Xoom Tablet: 48 MB.
22/80
Fuga de memoria
Se produce cuando se mantienen referencias a
objetos en memoria cuando éstos ya no seguirán
utilizándose.
El Colector de Basura por tanto ignorará este
objeto y no liberará sus recursos.
23/80
Colector de Basura o Garbage Collector (GC)
Colecta la memoria ocupada por objetos que ya no
están siendo utilizadas por la aplicación y la libera,
dejándola disponible para futuro uso.
24/80
Garbage Collector
25/80
Gestión de Archivos
26/80
Ficheros de
almacenamiento de información
Ficheros almacenados en la
memoria externa
Ficheros almacenados en
los recursos
27/80
Ficheros almacenados en la
memoria interna
28/80
Ficheros almacenados en la memoria interna
• Crea una carpeta especifica por cada aplicación cuya dirección es
(/data/data/nombre_del_paquete/files).
• La ventaja de la memoria interna es que si se desinstala la aplicación se elimina
la capeta.
• Al crear un fichero se debe tomar en cuenta los permiso, esto se dividen en:
- MODE_PRIVATE: Modo de acceso privado.
- MODE_APPEND: Añade contenido o crea el fichero si no existe.
- MODE_WORLD_READABLE: Permite a otras aplicaciones leer.
- MODE_WORLD_WRITABLE: permite a otras aplicaciones escribir.
• Se puede usar rutinas del paquete java.io para trabajar con ficheros:
iOS provee numerosas herramientas de sincronizaciónque puedes utilizar, que van desde herramientas queproveen acceso mutuamente exclusivo, hasta aquellasque secuencian correctamente los eventos en tuaplicación.
56/80
• Operaciones atómicas
- Ventaja:
No bloquean los hilos de la competencia.
• Barreras de memoria
Cuando la memoria se comparte con varios dispositivos usado para asegurar
que las operaciones de memoria se producen en el orden correcto.
La falta de una barrera de memoria podría permitir a otros hilos ver resultados
que parecen imposibles.
Para utilizar una barrera de memoria, sólo tiene que llamar a la función
OSMemoryBarrier() en el punto apropiado en el código.
57/80
• Variables volátiles
- Tiene propiedades especiales relacionadas con la optimización o hilos.
- Su valor puede ser cambiado en cualquier momento por una fuente externa
que el compilador puede no ser capaz de detectar.
- Si la variable es visible desde otro hilo, una optimización de este tipo podría
evitar que el otro hilo note cualquier cambio en la misma.
Las barreras de la memoria y las variables volátiles deben utilizarse con
moderación y sólo cuando sea necesario para garantizar la exactitud.
58/80
• Cerraduras
• Condiciones
• Realizar las rutinas de selección
Permite a sus hilos entregar mensajes de forma asíncrona con la garantía de que
se llevarán a cabo de forma sincronizada por el subproceso de destino.
Cada solicitud se pone en cola en un bucle de ejecución del subproceso
de destino y las solicitudes se procesan secuencialmente en el orden FIFO.
59/80
Gestión de Memoria
60/80
Reglas básicas:
• Usted es dueño de cualquier objeto que cree.
• Usted puede tomar la propiedad de un objeto utilizando cerraduras.
• Cuando ya no lo necesite, debe renunciar a la propiedad de un objeto de su propiedad.
• Usted no debe renunciar a la propiedad de un objeto que no es dueño.
61/80
Posee tres componentes
• Gestor de región (Region Manager)
Define y mantiene las diversas regiones de memoria.
• Gestor de piscina de hilos (Thread Pool Manager)
Gestiona la creación de grupos de memoria y la asignación de bloques
de memoria dentro de las piscinas.
62/80
¿Cómo se asigna memoria cuando unproceso solicita memoria de una piscinade hilos?
63/80
El gestor de piscina trata de controlar la fragmentación porcoalescencia de bloques devueltos que son físicamenteadyacentes entre sí.
64/80
• Gestor de trozos (Chunk Manager)
Administra los bloques de memoria asignados especialmente que
contienen varios sub-bloques de tamaño fijo.
Gestiona un conjunto de bloques de tamaño fijo subdivididos dentro de
un bloque más grande que se ha asignado a una de las piscinas de
memoria estándar.
65/80
¿Cómo se asigna memoria cuando unproceso solicita memoria de una piscinade hilos?
66/80
- Un proceso solicita la asignación de un bloque de memoria de gran
tamaño de un bloque de memoria en particular.
- El proceso llama entonces al gestor de trozo para subdividir el bloque en
una serie de trozos de tamaño fijo más pequeños y
- Utiliza el gestor de trozo para asignar y liberar los trozos según sea
necesario.
67/80
Entrada/Salida
68/80
IOKit (Marco Kit de E/S)
Es un marco de código abierto en el XNU núcleo que ayuda a los
controladores de dispositivo de código para desarrolladores de Apple 's
Mac OS X y iOS sistemas operativos. El marco Kit de E/S fue desarrollado
por NeXT Computer.
Hay tres principales elementos conceptuales de la arquitectura Kit de E/S:
• Familias
• Controlador
• Nubs
69/80
Core Bluetooth Framework
El marco Core Bluetooth proporciona las
clases necesarias para sus aplicaciones iOS
para comunicarse con los dispositivos que
están equipados con la tecnología
inalámbrica Bluetooth de bajo consumo.
70/80
External Accessory Framework
El marco de accesorio externos proporciona un puente para la comunicación con
los accesorios conectados a cualquier dispositivo basado en iOS. Los
desarrolladores de aplicaciones pueden utilizar este conducto para integrar
características de nivel de accesorios en sus aplicaciones.
71/80
Almacenamiento en iCloud
Hay tres maneras en que las aplicaciones toman ventaja de este
servicio:
• Almacenamiento de documentos
• Almacenamiento de clave-valor
• Almacenamiento CloudKit
72/80
Gestión de Archivos
73/80
MacOs Plus (HFS+)
Este formato es compatible con todas las características avanzadas
que necesita el iOS como son los nombres de archivo Unicode, los
permisos POSIX, los metadatos enriquecidos, etc.
74/80
Android IOS
Kernel Linux Darwin
Gestión de Procesos Árbol Rojo Negro Cola de Prioridades
Gestión Memoria Paginación Paginación
Sistemas de Archivo YAFF52/ EXT4 HFS+, UFS,ISO,NFS,UDF