80
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

Sistemas Operativos Moviles, Android y IOs

Embed Size (px)

Citation preview

Page 1: Sistemas Operativos Moviles, Android y IOs

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

Page 2: Sistemas Operativos Moviles, Android y IOs

2/80

Page 3: Sistemas Operativos Moviles, Android y IOs

¿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

Page 4: Sistemas Operativos Moviles, Android y IOs

Origen

4/80

Page 5: Sistemas Operativos Moviles, Android y IOs

Android Inc. (2003)

Google Inc. (2005)

Open Handset

Alliance (2007)

5/80

Page 6: Sistemas Operativos Moviles, Android y IOs

Estructura

6/80

Page 7: Sistemas Operativos Moviles, Android y IOs

7/80

Page 8: Sistemas Operativos Moviles, Android y IOs

Componentes

Actividades-Activities-

Servicios-Services-

Receptores de Difusiones-Broadcast Recievers-

Proveedores de Contenido-Content Providers-

8/80

Page 9: Sistemas Operativos Moviles, Android y IOs

Gestión de Procesos

9/80

Page 10: Sistemas Operativos Moviles, Android y IOs

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

Page 11: Sistemas Operativos Moviles, Android y IOs

Jerarquía

Primer

PlanoVisible Servicio

Segundo

PlanoVacío

11/80

Page 12: Sistemas Operativos Moviles, Android y IOs

Gestión de Memoria

E/S

y

12/80

Page 13: Sistemas Operativos Moviles, Android y IOs

13/80

Page 14: Sistemas Operativos Moviles, Android y IOs

Linux Kernel /Servicios Generales

Seguridad

Gestión de memoria y procesos

E/S de archivos y redes

Entre otros

14/80

Page 15: Sistemas Operativos Moviles, Android y IOs

Linux Kernel /

Servicios Específicos de Android

Administración de energía

Asesino de baja memoria(low memory killer)

Otros

15/80

Page 16: Sistemas Operativos Moviles, Android y IOs

Para gestionar memoria, Android:

• No ofrece espacio de intercambio (swap space).

• Utiliza paginación y archivos proyectados en memoria (memory-mapped file).

16/80

Page 17: Sistemas Operativos Moviles, Android y IOs

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

Page 18: Sistemas Operativos Moviles, Android y IOs

Compartición de datos con archivos proyectados en memoria

18/80

Page 19: Sistemas Operativos Moviles, Android y IOs

¿Qué hace Android cuando la memoria RAM

está llena sin contar con el espacio de

intercambio (swap space)?

19/80

Page 20: Sistemas Operativos Moviles, Android y IOs

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

Page 21: Sistemas Operativos Moviles, Android y IOs

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

Page 22: Sistemas Operativos Moviles, Android y IOs

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

Page 23: Sistemas Operativos Moviles, Android y IOs

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

Page 24: Sistemas Operativos Moviles, Android y IOs

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

Page 25: Sistemas Operativos Moviles, Android y IOs

Garbage Collector

25/80

Page 26: Sistemas Operativos Moviles, Android y IOs

Gestión de Archivos

26/80

Page 27: Sistemas Operativos Moviles, Android y IOs

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

Page 28: Sistemas Operativos Moviles, Android y IOs

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.

Page 29: Sistemas Operativos Moviles, Android y IOs

• Se puede usar rutinas del paquete java.io para trabajar con ficheros:

- openFileInput() (lectura)

- openFileOutput() (escritura)

- getFilesDir()- getDir()- deleteFile()- fileList()

29/80

Page 30: Sistemas Operativos Moviles, Android y IOs

30/80

Ficheros almacenados en la memoria externa

• Suele ser una memoria extraíble, como una tarjeta SD.

• Una memoria externa no extraíble.

• Los archivos creados se abren en modo lectura para el usuario y el resto de las aplicaciones.

• Se puede eliminar estos archivos sin desinstalar la aplicación.

• Suele ser de mayor capacidad, ideal para archivos de música o video.

Page 31: Sistemas Operativos Moviles, Android y IOs

• La memoria externa puede estar protegida contra escrituras o haber sido extraída.

• Se puede usar el método Environment.getExternalStorageState()para verificar el estado de la memoria, esto nos puede retornar los siguiente valores:

- MEDIA_MOUNTED: Podemos leer y escribir.

- MEDIA_MOUNTED_READ_ONLY: Podemos leer.

- MEDIA_SHARED, MEDIA_REMOVED, MEDIA_CHECKING, MEDIA_BAD_REMOVAL,…: No podemos leer ni escribir.

31/80

Page 32: Sistemas Operativos Moviles, Android y IOs

Ficheros almacenados en los recursos

• Existe la posibilidad de almacenar ficheros en el paquete de aplicaciones,

los cuales son solo lectura (no pueden ser modificados).

• La manera de hacerlo es arrastrar cualquier fichero (nombre_fichero.exe) a

la carpeta res/raw, luego se puede acceder a ella de la siguiente manera:

Resources.openRawResource(R.raw.nombre_fichero)

32/80

Page 33: Sistemas Operativos Moviles, Android y IOs

iOS

33/80

Page 34: Sistemas Operativos Moviles, Android y IOs

Es un sistema operativo móvil creado por Apple.inc

inicialmente desarrollado para el iPhone.

El sistema viene con aplicaciones y muchas características

como teléfono, correo y navegador Safari que prestan

servicios estándar del sistema para el usuario.

¿Qué es?

34/80

Page 35: Sistemas Operativos Moviles, Android y IOs

Historia

35/80

Page 36: Sistemas Operativos Moviles, Android y IOs

• 9 de enero de 2007

Fue en esta fecha en que Apple reveló la existencia del proyecto de un

sistema operativo orientado a dispositivos móviles.

• 29 de junio de 2007

Se realiza oficialmente el lanzamiento del iPhone OS, unos meses después

debido al crecimiento de la plataforma iPhone y el incremento del iPod Touch.

• 6 de marzo de 2008

Apple presenta su primera versión beta del iPhone SDK, a partir de ese

entonces se le llama iPhone OS o iOS.

36/80

Page 37: Sistemas Operativos Moviles, Android y IOs

• 27 de enero de 2010

Steve Jobs, anunció el iPad, un dispositivo muy similar al iPod Touch

pero con un enfoque más orientado hacia la industria de contenidos.

• 17 de junio de 2010

Steve Jobs presenta el iPhone y decide llamar a su sistema operativo

oficialmente iOS, porque puede funcionar en tres dispositivos distintos.

37/80

Page 38: Sistemas Operativos Moviles, Android y IOs

Características

• El iOS se deriva de Mac OS X, que a su vez está basado en Darwin

BSD, y por lo tanto es un sistema Unix.

• Todo en sistema se encuentra en la partición “/root” y ocupa

menos de 500MB.

• La interfaz de usuario de iOS está orientado a:

- Proveer una interfaz amigable.

- El tiempo de respuesta inmediata a las órdenes del usuario.

- Dar soporte de acelerómetros internos.

38/80

Page 39: Sistemas Operativos Moviles, Android y IOs

Estructura

39/80

Page 40: Sistemas Operativos Moviles, Android y IOs

Capas

Capa núcleo del SO (capa “Core OS”)

Capa de servicios principales(capa de “Core Services”)

Capa de Medios

Capa de “Cocoa Touch”

40/80

Page 41: Sistemas Operativos Moviles, Android y IOs

Capas de iOS

41/80

Page 42: Sistemas Operativos Moviles, Android y IOs

42/80

Capa del núcleo del sistema operativo (capa “Core OS”)

La primera es la capa del núcleo del sistema, la cual contiene las características de

bajo nivel.

Se encarga de tareas básicas de bajo nivel, como:

• Gestión de memoria virtual.

• Gestión procesos, hilos y el manejo de la memoria

• Gestión del sistema de archivos.

• Gestión del acceso a red de bajo nivel.

• Gestión de procesos que interactúan directo con el hardware.

Page 43: Sistemas Operativos Moviles, Android y IOs

43/80

Capa de servicios principales (capa de “core services”)

Esta capa es la encargada de proveer y contener todos los servicios básicos y

fundamentales del sistema operativo que usan todas las aplicaciones.

• Almacenamiento iCloud

Permite que las aplicaciones escriban documentos y los datos a una

ubicación central en la nube para acceder desde otros dispositivos

del usuario.

• Grand Central Dispatch (GCD)

Se utiliza para administrar la ejecución de tareas en aplicaciones.

Page 44: Sistemas Operativos Moviles, Android y IOs

• La biblioteca SQLite

Biblioteca que permite incrustar una base de datos ligera de SQL en

aplicaciones sin ejecutar un proceso separado del servidor remoto de

base de datos.

• Soporte XML (lenguaje de marcas extensible)

La fundación framework proporciona la clase NSXMLParser para

recuperación de elementos en documentos XML.

44/80

Page 45: Sistemas Operativos Moviles, Android y IOs

45/80

Capa de Medios

Conocida también como capa de ‘’medios de comunicaciones”. Es una

interfaz basada en una mescla de lenguaje C y objetive-C que permite la

ejecución de tareas o gestión de ficheros multimedia.

La capa de medios es la encargada de proveer los servicios de los

gráficos y multimedia a la capa Cocoa Touch.

Sus caracteristicas son:

Page 46: Sistemas Operativos Moviles, Android y IOs

46/80

• Tecnología de gráficos

La alta calidad de los gráficos es una parte importante de las aplicaciones de iOS.

• Tecnología de video

iOS ofrece varias tecnologías para reproducir contenido de video en los

dispositivos con hardware de video, además de tecnologías para capturar video e

incorporarlo a las aplicaciones.

• Tecnología de audio

Las tecnologías de audio disponibles en el IOS están diseñadas para proporcionar

una excelente experiencia de audio para los usuarios.

Page 47: Sistemas Operativos Moviles, Android y IOs

Capa de "Cocoa Touch"

La capa Cocoa Touch o capa táctil de Cocoa es la interfaz de los dispositivos

para con el usuario.

Esta capa define la infraestructura de la aplicación básica y el soporte para

las tecnologías punta como:

• Impresión

Permite enviar datos de manera inalámbrica a impresoras

cercanas.

47/80

Page 48: Sistemas Operativos Moviles, Android y IOs

• Multitarea

Todas las aplicaciones que son desarrolladas y ejecutadas en el mismo

sistema no terminan de ejecutarse si se pasa al escritorio o se ejecuta otra

aplicación, estas aplicaciones pasan a un segundo plano.

• Protección de Datos

La protección de datos permite a las aplicaciones trabajar con datos de

usuario sensibles, aprovechado la encriptación implícita.

• Servicio de notificaciones Push de Apple

Permite notificar acerca de alguna nueva información aunque la aplicación

no esté ejecutándose activamente en ese momento.

48/80

Page 49: Sistemas Operativos Moviles, Android y IOs

49/80

• Notificación local

Estas notificaciones complementan el modo de notificación por push,

permitiendo a la aplicación generar sus propias notificaciones sin

necesidad de tener conexión con ningún servidor externo.

• Reconocimiento de Gestos. Pantalla táctil de iPad

Se trata de objetos que podemos incluir en nuestras vistas y usarlos

para detectar gestos comunes, como deslizamientos o pulsaciones en

la pantalla.

• Archivos compartidos

Se permite tener disponibles ficheros de datos del usuario en iTunes.

Page 50: Sistemas Operativos Moviles, Android y IOs

Gestión de Procesos

50/80

Page 51: Sistemas Operativos Moviles, Android y IOs

Gestion a través de colas de prioridades

Prioridades de los procesos:

Crítico

Alto

Medio

Bajo

51/80

Page 52: Sistemas Operativos Moviles, Android y IOs

Tipos de cola

Cola de espera

Cola de muertos

Cola de listos

52/80

Page 53: Sistemas Operativos Moviles, Android y IOs

Cuando un proceso que se ejecuta se suspende,

el planificador recupera el control de la CPU y

utiliza un algoritmo para seleccionar el siguiente

proceso desde una de sus cuatro colas de listos.

Los pasos para este algoritmo son las siguientes:

53/80

Page 54: Sistemas Operativos Moviles, Android y IOs

Algoritmo:

seleccionSiguienteProceso()

{

mientras (hay_procesos_por_ejecutar) hacer comprobarProcesosPrioridadMedia();

si (hay_procesos_de_prioridad_media_listos)

/* Paso 1: verifica cola de prioridad crítica */ eliminarProcesoPrioridadMedia();

comprobarProcesosPrioridadCritica(); ejecutarProcesoPrioridadMedia();

ejecutarProcesosCriticos(); comprobarProcesoPrioridadAlta(); // ir a paso 2

sino

/* Paso 2: verifica la cola de prioridad alta */ /* El planificador se salta la cola de prioridad

comprobarProcesosPrioridadAlta(); baja un máximo de 15 veces antes de proceder al

si (hay_procesos_de_alta_prioridad_listos) paso 4 */

eliminarProcesoPrioridadAlta(); /* Paso 4: verifica cola de prioridad baja */

ejecutarProcesoPrioridadAlta(); eliminarProcesoPrioridadMedia();

comprobarProcesosPrioridadCritica(); // ir a paso 1 ejecutarProcesoPrioridadMedia();

sino comprobarProcesoPrioridadMedia(); // ir a paso 3

/* Paso 3: verifica cola de prioridad media */ fsi

fsi

fmientras

}fin

/* Prioridad CríticaPrioridad AltaPrioridad MediaPrioridad Baja */

54/80

Page 55: Sistemas Operativos Moviles, Android y IOs

Sincronización

55/80

Page 56: Sistemas Operativos Moviles, Android y IOs

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

Page 57: Sistemas Operativos Moviles, Android y IOs

• 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

Page 58: Sistemas Operativos Moviles, Android y IOs

• 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

Page 59: Sistemas Operativos Moviles, Android y IOs

• 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

Page 60: Sistemas Operativos Moviles, Android y IOs

Gestión de Memoria

60/80

Page 61: Sistemas Operativos Moviles, Android y IOs

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

Page 62: Sistemas Operativos Moviles, Android y IOs

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

Page 63: Sistemas Operativos Moviles, Android y IOs

¿Cómo se asigna memoria cuando unproceso solicita memoria de una piscinade hilos?

63/80

Page 64: Sistemas Operativos Moviles, Android y IOs

El gestor de piscina trata de controlar la fragmentación porcoalescencia de bloques devueltos que son físicamenteadyacentes entre sí.

64/80

Page 65: Sistemas Operativos Moviles, Android y IOs

• 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

Page 66: Sistemas Operativos Moviles, Android y IOs

¿Cómo se asigna memoria cuando unproceso solicita memoria de una piscinade hilos?

66/80

Page 67: Sistemas Operativos Moviles, Android y IOs

- 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

Page 68: Sistemas Operativos Moviles, Android y IOs

Entrada/Salida

68/80

Page 69: Sistemas Operativos Moviles, Android y IOs

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

Page 70: Sistemas Operativos Moviles, Android y IOs

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

Page 71: Sistemas Operativos Moviles, Android y IOs

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

Page 72: Sistemas Operativos Moviles, Android y IOs

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

Page 73: Sistemas Operativos Moviles, Android y IOs

Gestión de Archivos

73/80

Page 74: Sistemas Operativos Moviles, Android y IOs

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

Page 75: Sistemas Operativos Moviles, Android y IOs

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

Multitasking Si Si

Desarrollo Cualquier desarrollador puede

crear sus propias app.

Los desarrolladores deben

pagar

Vulnerabilidad Malware Si No

Hardware Puede Instalarse en cualquier

Hardware

No permite instalarse en

hardware de terceros75/80

Page 76: Sistemas Operativos Moviles, Android y IOs

Más información

http://www.androidsis.com/la-verdadera-historia-de-android-nacimiento-del-sistema-operativo-2003/

http://es.wikipedia.org/wiki/Android#Adquisici.C3.B3n_por_parte_de_Google

http://es.wikipedia.org/wiki/Android#Open_Handset_Alliance

http://www.androidcurso.com/index.php/tutoriales-android/31-unidad-1-vision-general-y-entorno-de-

desarrollo/99-arquitectura-de-android

http://developer.android.com/guide/components/processes-and-threads.html

http://developer.android.com/guide/components/fundamentals.html#proclife

http://www.tutorialspoint.com/android/android_application_components.htm

https://prezi.com/bxdp5ygrfuo6/android/

76/80

Page 77: Sistemas Operativos Moviles, Android y IOs

Más información

http://books.google.co.ve/books?id=K9hnCJ_NGq4C&pg=PT424&lpg=PT424&dq=android+hereda+de+linux&s

ource=bl&ots=KGylUHo6hJ&sig=h57ZJ5ZXHyV6uEer2qLHITH1Ovk&hl=es-

419&sa=X&ei=p8BdVMSrNYTksATZu4DgDQ&ved=0CC8Q6AEwAw#v=onepage&q=android%20hereda%20de

%20linux&f=false

http://lavaradelroboto.wordpress.com/2012/10/22/ficheros-androidlectura-y-escritura-en-memoria-interna/

http://www.anexom.es/tecnologia/los-6-mejores-administradores-de-archivos-para-android/

http://www.androidcurso.com/index.php/tutoriales-android-fundamentos/42-unidad-9-almacenamiento-de-

datos

http://culturacion.com/ios-el-sistema-operativo-movil-de-apple/

http://eve-ingsistemas-u.blogspot.com/2012/04/sistemas-operativos-moviles-ios.html

http://es.slideshare.net/TenshiDam/sistema-operativo-ios

http://es.slideshare.net/Zazu2795/sistemas-operativos-iphone-os-5483645

77/80

Page 78: Sistemas Operativos Moviles, Android y IOs

Más información

Managing Your App's Memory

http://developer.android.com/training/articles/memory.html#Android

Abraham Silberschatz, Peter Baer Galvin, Greg Gagne (2008) Operating System Concepts (9th ed.), United States

of America, capítulo 9.7: Memory-Mapped Files

Google I/O 2011: Memory management for Android Apps

https://www.youtube.com/watch?v=_CruQY55HOk

Memory Management in Android

http://mobworld.wordpress.com/2010/07/05/memory-management-in-android/

Wrangling Dalvik: Memory Management in Android

http://www.raizlabs.com/dev/2014/03/wrangling-dalvik-memory-management-in-android-part-1-of-2/

78/80

Page 79: Sistemas Operativos Moviles, Android y IOs

Más información

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/Cre

atingThreads.html#//apple_ref/doc/uid/10000057i-CH15-SW2

http://cdn.ttgtmedia.com/searchNetworking/downloads/InsideIOS.pdf

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Multithreading/ThreadSafety/Thread

Safety.html#//apple_ref/doc/uid/10000057i-CH8-SW1

http://en.wikipedia.org/wiki/Volatile_variable

http://en.wikipedia.org/wiki/Memory_barrier

79/80

Page 80: Sistemas Operativos Moviles, Android y IOs

Más información

https://developer.apple.com/library/mac/documentation/General/Conceptual/iCloudDesignGuide/Chapters/iClo

udFundametals.html

https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/KernelProgra

mming.pdf

https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.ht

ml

https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/Core

OSLayer/CoreOSLayer.html

https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/IOKit/IOKit.ht

ml

http://en.wikipedia.org/wiki/I/O_Kit

80/80