Soporte de aplicaciones de tiempo real en el sistema operativo Android *

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Soporte de aplicaciones de tiempo real en el sistema operativo Android *"

Transcripción

1 Soporte de aplicaciones de tiempo real en el sistema operativo Android * Alejandro Pérez Ruiz, Mario Aldea Rivas y Michael González Harbour Departamento de Ingeniería Informática y Electrónica, Universidad de Cantabria. Santander, España. y Resumen En la actualidad el sistema operativo Android está ampliamente extendido en los dispositivos móviles (teléfonos móviles y tablets). Debido a esta gran expansión cada vez es mayor el interés de poder aprovechar sus características en diferentes tipos de plataformas embebidas, por ejemplo, automoción, medicina o control industrial, ámbitos en los que es necesario el cumplimiento de una serie de requisitos temporales. En este trabajo se explora una solución para poder tener garantías de cumplimiento de requerimientos temporales en Android. La solución presentada aprovecha que Android está basado en el kernel de Linux y que casi la totalidad de los nuevos dispositivos utilizan procesadores multinúcleo. Utilizando los mecanismos de aislamiento de núcleos que nos ofrece Linux se logra destinar un núcleo aislado a la ejecución de tareas de tiempo real. Para suplir las carencias de servicios de tiempo real que tiene Android/Linux se plantea la ejecución del sistema operativo de tiempo real MaRTE OS en dicho núcleo aislado. Sandwich) adaptado a las características del hardware en las que se ejecutará Android. El kernel proporciona las funcionalidades básicas del sistema como la gestión de procesos, memoria o energía. Además para cada elemento hardware existe un controlador o driver dentro del kernel que permite su utilización desde el software. En la capa inmediatamente superior al kernel nos encontramos con un conjunto de librerías nativas, las cuales se encuentran escritas en C o C++ y compiladas para la arquitectura hardware específica del sistema. Entre otras cabe destacar la librería libc modificada por Google y denominada Bionic. Esta librería está diseñada específicamente para Android. I. INTRODUCCIÓN Desde que se lanzó en 2008 al mercado el primer dispositivo móvil con Android se han mejorado constantemente sus características y soporte hardware, mientras que al mismo tiempo se extendía a nuevos tipos de dispositivos. Sin embargo, hay una característica que aún no ha sido explorada en profundidad: la posibilidad de utilizar Android para ejecutar aplicaciones con requerimientos temporales. Las ventajas que pueden obtenerse al utilizar Android para propósitos de tiempo real son más que evidentes: por un lado está su continuo crecimiento y expansión y por otro lado su adaptación a sistemas de bajo consumo y recursos limitados. Un aspecto interesante de este software es que se desarrolla bajo licencias Apache 2.0 y GNU GPL principalmente y además su núcleo está basado en Linux, lo que permite a los desarrolladores y a la industria aprovechar gran parte de las características ofrecidas por Linux, aplicar parches desarrollados por terceros y realizar modificaciones. Android nos permite principalmente escribir aplicaciones en Java aunque también posee soporte para C/C++ [1]. En términos prácticos, puede ser considerado como un framework sobre Linux que facilita un rápido despliegue en diferentes dominios. Este sistema está formado por diferentes capas de componentes software apiladas tal y como se ilustra en la figura 1. En la parte inferior de la pila se encuentra el kernel de Linux. El kernel utilizado por Android es una modificación de la versión 3.x (versión 2.6 antes de Android 4.0 Ice Cream Figura 1: Arquitectura de Android Un componente clave de este sistema operativo es su máquina virtual. Para las versiones más recientes del sistema tenemos la máquina virtual Java denominada ART (Android RunTime) que se encarga de ejecutar cada una de las aplicaciones no nativas de Android. Estas aplicaciones están escritas en Java y se compilan en un formato específico para que sean ejecutadas por dicha máquina virtual. * Este trabajo ha sido financiado en parte por el Programa de Becas Predoctorales de la Universidad de Cantabria, y el Gobierno de España y los fondos FEDER en el proyecto TIN C03-02 (HI-PARTES).

2 El entorno de aplicación proporciona servicios de alto nivel a las aplicaciones en forma de clases Java. Este entorno varía en función de la implementación con la que trabajemos [2]. II. ANTECEDENTES Algunos trabajos [3] [4] han analizado la aplicabilidad de Android para la ejecución de aplicaciones de tiempo real. En ellos han llegado a la previsible conclusión de que en primera instancia la plataforma Android es inapropiada para ser utilizada en sistemas con condiciones de tiempo real. Los problemas que se presentan cuando trabajamos bajo requisitos de tiempo real en Android son los siguientes: La librería Bionic no posee todas las características que tiene la implementación tradicional de glibc. En particular, Bionic no soporta ningún protocolo de sincronización en los mutexes. Aunque está disponible a nivel de kernel, solo se puede acceder a ella construyendo nuestra propia librería sobre las llamadas al sistema. Esta carencia sería suficiente para descalificar este tipo de sistemas para situaciones de tiempo real. A partir de la versión el kernel de Linux utiliza un planificador completamente justo (Completely Fair Scheduler, CFS). Este planificador garantiza que todas las tareas tendrán la misma cuota temporal de CPU, lo que provoca que las tareas no tengan ninguna garantía temporal, ya que la máquina virtual delega en el kernel todas las operaciones de planificación. Esto significa que todos los hilos que son ejecutados sobre la máquina virtual, por defecto, son planificados con SCHED_OTHER. Por lo tanto no es posible indicar que una tarea en particular sea planificada usando una política de planificación distinta, ni asignar prioridad a las tareas. La variabilidad de los tiempos de respuesta del kernel de Linux y de la máquina virtual son incompatibles con la necesidad de tiempos de respuesta acotados, esencial para los sistemas de tiempo real. La ejecución de un hilo puede verse afectada por otros hilos o por el recolector de basuras. Además, las interrupciones en Linux se gestionan con las prioridades más altas, por lo que una tarea de alta prioridad podría ser interrumpida con la llegada de una interrupción cuya duración no puede ser fácilmente acotada. Debido a las limitaciones citadas anteriormente, un estudio previo [5] describe cuatro posibilidades teóricas para adaptar la arquitectura de Android a condiciones de tiempo real, aunque sin llegar a ofrecer implementaciones. La primera solución propuesta mostrada en la figura 2a consiste en ejecutar directamente todas las aplicaciones con requisitos temporales sobre un kernel de Linux con características de tiempo real. La siguiente opción se ilustra en la figura 2b y añade una máquina virtual con propiedades de tiempo real (RT-JVM) permitiendo la ejecución de programas Java de tiempo real. La propuesta de la figura 2c propone al igual que las dos anteriores utilizar las capacidades de tiempo real de Linux junto con una modificación de la máquina virtual de Android (ART VM extendida). La última modificación propuesta en la figura 2d propone la utilización de un hipervisor de tiempo real que sea capaz de ejecutar la plataforma Android en paralelo con un sistema operativo de tiempo real. Esta solución es ventajosa cuando trabajamos con sistemas con múltiples CPUs disponibles. Figura 2. Posibles soluciones para la integración de tiempo real en Android [5]. Las partes sombreadas representan añadidos o cambios en la arquitectura de Android. Algunos trabajos han intentado crear extensiones de tiempo real para Android a raíz de las propuestas anteriores. El planteamiento de la figura 2a ha sido llevado a cabo en un trabajo [6] en el que se ha desarrollado un prototipo del sistema Android aplicando una serie de parches (RT_PREEMPT) sobre el kernel para dotar de características de tiempo real al sistema. Además de esto han implementado un canal de comunicación para las aplicaciones de tiempo real con las aplicaciones Java propias de Android muy similar al mecanismo de sincronización seqlock utilizado en Linux. En este trabajo se hace especial hincapié en remarcar el gran esfuerzo que conlleva aplicar los parches necesarios para conseguir características de tiempo real en el sistema operativo Android. Existe otro trabajo [7] que ha realizado una adaptación del sistema en base a la solución propuesta en la figura 2c. Por un lado han modificado el kernel de Linux con el parche RT_PREEMPT, añadiendo además modificaciones en otros componentes de Android para la liberación manual de memoria y cambio de prioridades desde el nivel de aplicación Java a través de la extensión de la clase Service de Android. Otro trabajo [8] ha optado por aplicar una solución distinta a las cuatro propuestas en la figura 2, propone crear un prototipo denominado RTDroid en el que se pretende ir

3 construyendo un sistema compatible con las aplicaciones escritas para Android. Para ello se centra en extender una máquina virtual Java para tiempo real (Fiji-VM) sobre un sistema operativo de tiempo real (Linux RT o RTEMS). Y en el entorno empresarial la compañía nipona esol ha implementado un kernel con características de tiempo real adaptable a la plataforma Android [9] tanto para arquitecturas monoprocesador como multiprocesador. III. SOLUCIÓN PROPUESTA Todos los trabajos descritos brevemente en el anterior capítulo requieren de un fuerte trabajo de adaptación del kernel de Android. Este proceso de adaptación se ve afectado por dos factores, el primero de ellos es la dependencia de la plataforma hardware seleccionada y el segundo es la dependencia con la versión de Android con la que se trabaja. Si a esto le sumamos que Android es una plataforma muy fragmentada [10] hace que trasladar estas propuestas a diferentes entornos de trabajo se convierta en un enorme esfuerzo. Nuestra propuesta consiste en aprovechar las arquitecturas multinúcleo cada vez más presentes en casi la totalidad de los dispositivos Android, para realizar el aislamiento de uno de los núcleos del procesador y ejecutar en él las aplicaciones con requisitos temporales. Además proponemos la ejecución del sistema operativo de tiempo real MaRTE OS [11] para proporcionar todos los servicios de tiempo real que un sistema Android/Linux no posee, tal y como se ilustra en la figura 3. Figura 3: Solución propuesta para conseguir la ejecución de aplicaciones de tiempo real en Android La solución que se propone en este trabajo utiliza los mecanismos que proporciona Android por ser un sistema operativo basado en Linux. Por ello, a continuación describimos los mecanismos que nos ofrecen esta clase de sistemas para realizar el aislamiento de alguno de sus núcleos. A. Mecánismos de aislamiento en Linux Los sistemas basados en Linux proporcionan nativamente algunos mecanismos para evitar que el planificador del sistema asigne tareas a algunos de los núcleos del procesador. Existe un parámetro denominado isolcpus que se establece durante el arranque del sistema y le informa al planificador que no asigne ninguna tarea a los núcleos indicados a menos que se haga explícitamente a través de una llamada al sistema para fijar la afinidad de los procesos o tareas. En los dispositivos que utilizan el sistema de arranque GRUB se puede establecer este parámetro a través del fichero de configuración correspondiente (boot/grub/menu.lst). En el caso de Android cuando se crea la imagen de arranque del sistema a través de la herramienta mkbootimg, bajo la opción cmdline podemos establecer el parámetro isolcpus. Posteriormente debemos flashear la imagen creada en el dispositivo Android. Otra forma de poder aislar un núcleo en Linux es a través del denominado CPUSET. Es una pseudo interfaz de ficheros de sistema para el kernel usada para controlar la colocación de los procesos en los procesadores y la memoria. Los sistemas con el kernel compilado con esta opción cuentan con un conjunto de CPUs (cpuset) donde se asignan por defecto todos los procesos del sistema. A través de este mecanismo es posible mover todos los procesos del sistema a uno o varios núcleos del procesador y dejar uno de ellos aislado para asignarle explícitamente nuestros procesos de tiempo real. Ninguno de los dos mecanismos citados anteriormente evita que las interrupciones que se producen en el sistema sean atendidas por los núcleos aislados. Pero en los sistemas operativos Linux se nos permite asignar a través de una máscara los núcleos que se encargarán de gestionar las interrupciones. Cada interrupción tiene un número que la identifica, por lo que para modificar la afinidad debemos cambiar el fichero /proc/irq/n_int/smp_affinity con la máscara correspondiente para evitar que las interrupciones sean atendidas por el núcleo que deseamos aislar. Además de todo lo citado anteriormente el kernel de Linux proporciona dos políticas de planificación de tiempo real, SCHED_FIFO y SCHED_RR que cuentan con prioridades que van desde 1 hasta 99. Cuando una tarea planificada con SCHED_FIFO comienza a ejecutarse, continúa hasta que voluntariamente cede el procesador, se bloquea o es expulsada por una de mayor prioridad. La política SCHED_RR es muy similar a SCHED_FIFO, su diferencia reside en que cuando tenemos hilos con la misma prioridad se planifican mediante una política cíclica (round-robin). Las tareas que no son de tiempo real son planificadas con la política SCHED_OTHER. Linux reserva por defecto un 95% del tiempo de uso del procesador para tareas de tiempo real, y un 5% para el resto. Esto es configurable y podemos incrementar el valor reservado para tareas con requisitos temporales hasta llegar al 100%. Teniendo en cuenta esto podemos usar conjuntamente las políticas de planificación de tiempo real con nuestros procesos con requisitos de tiempo real que se ejecuten en los núcleos aislados. Finalmente, como veremos más adelante los mecanismos de aislamiento más adecuados para utilizar bajo Android es la combinación de isolcpus, la utilización de la afinidad de las interrupciones junto con las políticas de planificación de tiempo real. B. MaRTE OS como un proceso estándar de Linux Para poder tener todas las características deseables para que un sistema operativo pueda ejecutar aplicaciones de tiempo real nuestra solución propone la utilización de MaRTE OS en el núcleo aislado designado.

4 Aunque originalmente MaRTE OS fue ideado para sistemas empotrados, este sistema ha sido también adaptado para comportarse como una librería de hilos POSIX que es utilizada para proporcionar concurrencia a nivel de librería a aplicaciones Ada y C que se ejecuten sobre Linux. En el caso del lenguaje de programación Ada, MaRTE OS es utilizado como la librería Pthread que soporta las tareas Ada para el compilador de GNAT. Aparte de los servicios relacionados con la multitarea, el resto de los servicios POSIX son proporcionados por la librería estándar C nativa, lo que permite que desde este tipo de aplicaciones MaRTE OS se pueda acceder al sistema de ficheros Linux y a otras características del sistema utilizando las interfaces POSIX, Linux o Ada como en cualquier otro programa de Linux. Cuando se compila una aplicación MaRTE OS para ser ejecutada como una librería de hilos POSIX, la aplicación toma la misma forma que cualquier otro proceso de usuario de Linux. Las aplicaciones generadas son prácticamente idénticas a las generadas por la arquitectura x86 o ARM. Las únicas diferencias con las otras arquitecturas se encuentran en la capa de interfaz con el hardware (HAL): Se utiliza el temporizador de Linux en vez del temporizador hardware. Las señales de Linux pasan a comportarse como interrupciones hardware. En la figura 4 se aprecia la arquitectura descrita para aplicaciones escritas en Ada y en C. (Ubuntu) bajo una arquitectura x86 con un procesador de dos núcleos y en un dispositivo Nexus 5 con un procesador ARM de cuatro núcleos bajo la versión de Android (KitKat). En Android no hemos podido aplicar el aislamiento a través de los CPUSETS, ya que en las versiones de stock (sin modificaciones) del sistema operativo hemos detectado un comportamiento no esperado con este mecanismo de aislamiento. El test que hemos hecho para determinar si existe alguna interrupción o tarea que perturbe la ejecución en un núcleo aislado se ha hecho a través de la ejecución en bucle de un programa que únicamente mide el tiempo transcurrido entre dos instrucciones consecutivas. Este test se ha ejecutado con la máxima prioridad de tiempo real (SCHED_FIFO, prioridad 99) en un núcleo aislado mediante el parámetro isolcpus, en el que también se ha deshabilitado la atención de todas las interrupciones enmascarables. Además en el sistema se ha establecido una carga de trabajo alta (ejecución de benchmarks y descarga de paquetes por red) para tratar de simular el peor de los escenarios posibles. En la tabla 1 se muestra el resultado de la ejecución de dicho test para 180 millones de iteraciones en Android. Este mismo test se ha lanzado en un núcleo no aislado bajo las mismas condiciones anteriores y el resultado del peor caso de ejecución es dos órdenes de magnitud superior. Este mismo test se ejecutó en una distribución Linux con un procesador Intel de dos núcleos, y los resultados han sido equivalentes a los mostrados en la tabla 1 para Android. Nº de ejecuciones en el umbral Umbral Núcleo aislado Núcleo no aislado 0.2 s 0% 0% 0.2 s - 1 s 99,902% 0% 1 s 5 s 0,0913% 99,97% Figura 4. Arquitectura de MaRTE OS como un proceso estándar de Linux. La mayoría de dispositivos Android que se comercializan en la actualidad incorporan la arquitectura que llevan los procesadores ARM. Debido a esto un requisito casi indispensable para poder evaluar la propuesta de este trabajo en Android es realizar el portado de la arquitectura de MaRTE OS descrita anteriormente a ARM/Linux. Actualmente este trabajo se encuentra en fase de desarrollo y ya se ha conseguido portar con éxito la capa de interfaz con el hardware (HAL) que realiza llamadas al sistema Linux. Utilizando esta arquitectura del sistema MaRTE OS y los sistemas de aislamiento para los núcleos de un procesador podemos al menos llegar a tener aplicaciones con requisitos de tiempo real laxo como veremos en el siguiente capítulo. IV. EVALUACIÓN En primera instancia hemos evaluado los mecanismos de aislamiento descritos en este trabajo en una distribución Linux 5 s 8 s 0,00006% 0,00746% 8 s 16 s 0,0002% 0,00182% 16 s 50 s 0,006% 0,0017% 50 s 100 s 0, % 0,0169% >100 s 0, % WCET= 225 s 0,000467% WCET= s Tabla 1. Resultado del test para la medición de las interferencias en un núcleo aislado y otro no aislado en Android. Con la ejecución de este tipo de tests hemos detectado que hay algunas interrupciones entre procesadores (Inter-processor interrupt, IPI) no enmascarables que provocan la interrupción de la ejecución del test en el núcleo aislado. En la actualidad no hemos analizado estas interrupciones en profundidad porque la mejora de los tiempos de respuestas en un núcleo aislado es bastante significativa para poder cumplir con requerimientos temporales laxos. Para evaluar la suspensión temporizada de tareas en MaRTE OS sobre Linux se han realizado una serie de medidas

5 para comparar la diferencia de la utilización de temporizadores POSIX y señales en MaRTE OS sobre Linux con la utilización de la función clock_nanosleep directamente sobre un sistema operativo Linux. Nuestros tests determinan que en el caso promedio hay una diferencia de 12 s en contra de utilizar MaRTE OS sobre Linux. No obstante creemos que es un tiempo asumible para la mayoría de aplicaciones de tiempo real laxo. V. CONCLUSIONES Y TRABAJOS FUTUROS Este trabajo, que se encuentra en una fase de desarrollo temprana, ha presentado una posible solución para conseguir cumplir requisitos temporales laxos en un sistema operativo de propósito general como Android. Beneficiándonos del incremento de los sistemas hardware multinúcleo cada vez más presentes en Android y utilizando mecanismos de aislamiento para los núcleos de un procesador hemos conseguido mejoras significativas en los tiempos de respuestas de las tareas ejecutadas en núcleos aislados. Esta solución tiene la ventaja de que es muy portable sin verse afectada por un fuerte proceso de adaptación como el que ocurría en los trabajos previos descritos en el capítulo II; ya que se hace uso de mecanismos estándar proporcionados por el kernel de Linux. Como respuesta a las carencias de servicios de tiempo real que tiene el sistema Android/Linux, planteamos la utilización del sistema operativo MaRTE OS ejecutado como un proceso estándar de Linux sobre el que correrían las aplicaciones de tiempo real. Para verificar la viabilidad de esta solución aquí propuesta debemos en primera instancia completar el portado de MaRTE OS a la arquitectura Android/ARM. En segundo lugar debemos analizar en más profundidad las interrupciones entre procesadores (IPIs) para poder acotar los tiempos de respuestas de peor caso y en tercer lugar es necesario medir el impacto de la utilización de los drivers de propósito general de Android en una aplicación de tiempo real. Además es necesario desarrollar un mecanismo de comunicación y sincronización entre las aplicaciones de tiempo real ejecutadas en el núcleo del procesador aislado y el resto de aplicaciones Android. Por último, MaRTE OS sobre Linux ya tiene una adaptación para ejecutarse sobre múltiples núcleos de un procesador, de tal modo que trasladar nuestra solución propuesta a varios núcleos aislados de un procesador es una tarea viable. REFERENCIAS [1] Android Developers Android NDK [Online]. Disponible: [2] Android Developers, Android SDK [Online] Disponible: [3] Bhupinder S. Mongia y Vijak K. Madisetti, Realiable Real- Time Applications on Android OS. Whitepaper, [4] Luc Perneel, Hasan Fayyad-Kazan y Martin Timmerman. Can Android be used for Real-Time purposes? En International Conference on Computer Systems and Industrial Informatics, ICCSII 12, pages 1 6, [5] C. Maia, L. Nogueira y L. M. Pinho. Evaulating Android OS for Embedded Real-Time Systems. En Proceedings of the 6 th International Workshop on Operating Systems Platforms for Embedded Real-Time Applications, OSPERT 2010, páginas 63-70, Bruselas, Bélgica, [6] W. Mauerer, G. Hillier, J. Sawallisch, S. Hönick, y S. Oberthür. Real-time android: deterministic ease of use, en Proceedings of the Embedded Linux Conference Europe (ELCE '12), [7] Igor Kalkov, Dominik Franke, John F. Schommer, y Stefan Kowalewski. A real-time extension to the Android platform. En Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems, JTRES 12, páginas , New York. [8] Yin Yan, Sree Harsha Konduri, Amit Kulkarni, Varun Anand, Steven Y. Ko, Lukasz Ziarek. [Tech Report] RTDroid: A Design for Real-Time Android [9] Yasuyo Murakami. Android on a Highly Reliable Real-Time OS [Online] for_android.pdf [10] Dan Han, Chenlei Zhang, Xiaochao Fan, Abram Hindle, Kenny Wong y Eleni Stroulia. Understanding Android Fragmentation with Topic Analysis of Vendor-Specific Bugs en Working Conference on Reverse Engineering (WCRE), [11] Mario Aldea Rivas y Michael González Harbour. MaRTE OS: An Ada Kernel for Real-Time Embedded Applications en International Conference on Reliable Software Technologies, Ada-Europe-2001, Leuven, Bélgica, LNCS, May 2001

Programación Concurrente

Programación Concurrente Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 3. Gestión de Threads Tema 4. Gestión del Tiempo Tema 5. Planificación

Más detalles

Desarrollo de apps para móviles Android. Introducción a Android

Desarrollo de apps para móviles Android. Introducción a Android Desarrollo de apps para móviles Android Introducción a Android Qué es Android? I Es una plataforma de desarrollo libre y de código abierto. Ofrece gran cantidad de servicios: bases de datos, servicios

Más detalles

Unidad I. Introducción a la programación de Dispositivos Móviles

Unidad I. Introducción a la programación de Dispositivos Móviles Clase:002 1 Unidad I Introducción a la programación de Dispositivos Móviles Tomado de : Programación Multimedia y Dispositivos Móviles 2012 Paredes Velasco, Maximiliano / Santacruz Valencia, Liliana 2

Más detalles

Fundamentos de Sistemas Operativos

Fundamentos de Sistemas Operativos Fundamentos de Sistemas Operativos Sistemas Informáticos Fede Pérez Índice TEMA Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica

Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica A. Da Silva, V. Hernández y J.F. Martínez Departamento de Ingeniería y Arquitecturas Telemáticas.

Más detalles

Sistema operativo móvil desarrollado por Apple Inc. Lanzada en el 2007 bajo el nombre de Iphone OS.

Sistema operativo móvil desarrollado por Apple Inc. Lanzada en el 2007 bajo el nombre de Iphone OS. Sistema operativo móvil desarrollado por Apple Inc. Lanzada en el 2007 bajo el nombre de Iphone OS. Posee la mayor tasa de adopción de nuevas actualizaciones. Al 13 de julio, el 90% posee ios 7 a menos

Más detalles

Tema 2: Introducción a Android

Tema 2: Introducción a Android Tema 2: Introducción a Android Android Android es un sistema operativo basado en el Kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil. Android Fue desarrollado originalmente

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 Módulo 1. Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 1 CONTENIDO Tema 1. Introducción

Más detalles

TEMA 8. SISTEMAS OPERATIVOS PARA TIEMPO REAL.

TEMA 8. SISTEMAS OPERATIVOS PARA TIEMPO REAL. TEMA 8. SISTEMAS OPERATIVOS PARA TIEMPO REAL. 8.1. Introducción. 8.2. Problemas de los sistemas operativos convencionales. 8.3. Sistemas operativos para tiempo real 8.3.2. KU-Real-Time Linux (KURT). 8.3.3.

Más detalles

Tema 2: Implementación del núcleo de un Sistema Operativo

Tema 2: Implementación del núcleo de un Sistema Operativo Tema 2: Implementación del núcleo de un Sistema Operativo 1. Sistema Operativo Unix 2. Sistema Operativo Windows (a partir de NT) Dpto. Lenguajes y Sistemas Informáticos. Universidad de Granada 1 1. Sistema

Más detalles

Capitulo 1: Plataforma Android

Capitulo 1: Plataforma Android Capitulo 1: Plataforma Android Elaborado por: Gary Briceño http://gary.pe http://gary.pe 1 Temario 1. Android 2. Evolución 3. Arquitectura Android 4. Paquetes de Trabajo 5. Android y Java http://gary.pe

Más detalles

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 208006 Sistemas Embebidos Act 11: Reconocimiento Unidad 3 LECTURA 1

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 208006 Sistemas Embebidos Act 11: Reconocimiento Unidad 3 LECTURA 1 LECTURA 1 Qué diferencias hay entre aplicaciones para PC convencional o para sistemas embebidos? No es lo mismo desarrollar aplicaciones para un PC convencional que para un sistema embebido. El desarrollo

Más detalles

Curso de Android con Java

Curso de Android con Java Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1 Este es un tiempo único para el mundo de los celulares, en particular de los Smartphones. Este tipo de dispositivos

Más detalles

UT04 01 Máquinas virtuales (introducción)

UT04 01 Máquinas virtuales (introducción) UT04 01 Máquinas virtuales (introducción) n) Módulo: Sistemas Informáticos Virtualización Qué es una máquina m virtual? Terminología Características, ventajas e inconvenientes de las MVs Productos: VMWare,

Más detalles

TEMA 3: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

TEMA 3: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. TEMA 3: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1. DEFINICIÓN DE SISTEMA OPERATIVO.... 2 2. FUNCIONES DE LOS SISTEMAS OPERATIVOS.... 2 3. CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS.... 4 4. MODOS DE EXPLOTACIÓN

Más detalles

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante Modulo 2. Inicio con Java Muchas veces encontramos en nuestro entorno referencias sobre Java, bien sea como lenguaje de programación o como plataforma, pero, que es en realidad Java?, cual es su historia?,

Más detalles

Módulo 2. Inicio con Java

Módulo 2. Inicio con Java Módulo 2. Inicio con Java Objetivos: -Clasificar el lenguaje de programación Java según las formas de clasificar los lenguajes de programación. -Describir el funcionamiento de la plataforma Java. -Explicar

Más detalles

SENA CEET, Distrito Capital ADSI Instructor: Ing. Espec. Javier V.aquiro

SENA CEET, Distrito Capital ADSI Instructor: Ing. Espec. Javier V.aquiro SENA CEET, Distrito Capital ADSI Instructor: Ing. Espec. Javier V.aquiro Que hace un Sistema Operativo? El SO viste a la máquina desnuda * 4º INFORMÁTICA * La máquina desnuda es el ordenador sin S.O Definición

Más detalles

EVALUACIÓN DE POSIBILIDADES DE PROCESAMIENTO DE IMÁGENES EN REAL-TIME PARA SISTEMAS MÓVILES

EVALUACIÓN DE POSIBILIDADES DE PROCESAMIENTO DE IMÁGENES EN REAL-TIME PARA SISTEMAS MÓVILES EVALUACIÓN DE POSIBILIDADES DE PROCESAMIENTO DE IMÁGENES EN REAL-TIME PARA SISTEMAS MÓVILES Obando Núñez Andrea Del Rocío (1), Orrala Parrales Fabricio Diógenes (2) Facultad de Ingeniería en Electricidad

Más detalles

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos.

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos. Contenidos Sistemas operativos Tema 3: Estructura del sistema operativo Componentes típicos del SO Servicios del SO Llamadas al sistema Programas del sistema El núcleo o kernel Modelos de diseño del SO

Más detalles

Capítulo 5. Sistemas operativos. Autor: Santiago Felici Fundamentos de Telemática (Ingeniería Telemática)

Capítulo 5. Sistemas operativos. Autor: Santiago Felici Fundamentos de Telemática (Ingeniería Telemática) Capítulo 5 Sistemas operativos Autor: Santiago Felici Fundamentos de Telemática (Ingeniería Telemática) 1 Sistemas operativos Definición de Sistema Operativo Partes de un Sistema Operativo Servicios proporcionados:

Más detalles

IVista: es la interfaz con la que el Presentador se comunica con la vista.

IVista: es la interfaz con la que el Presentador se comunica con la vista. Capítulo 3 MODELO DE DISEÑO 3.1 Arquitectura Modelo-Vista-Presentador La arquitectura Modelo-Vista-Presentador (MVP) [11] separa el modelo, la presentación y las acciones basadas en la interacción con

Más detalles

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación )

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación ) Clase:003 1 Unidad I Introducción a la programación de Dispositivos Móviles (Continuación ) 2 Entornos de Desarrollo Virtualizaciones. Agenda IDE s. Y Lenguajes de Programación. 3 Virtualización Que es

Más detalles

Taxonomía de los sistemas operativos. Programación de Sistemas. Características en Win3.1 (1/3) Características en Win3.1 (3/3)

Taxonomía de los sistemas operativos. Programación de Sistemas. Características en Win3.1 (1/3) Características en Win3.1 (3/3) Programación de Sistemas Taxonomía de los sistemas operativos Mtro. en IA José Rafael Rojano Cáceres tareasrojano@gmail.com http://www.uv.mx/rrojano Referencia [Oney 96] Características en Win3.1 (1/3)

Más detalles

Notas técnicas de JAVA Nro. 4 White Paper

Notas técnicas de JAVA Nro. 4 White Paper Tema: Notas técnicas de JAVA Nro. 4 White Paper (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado) JAVA Basics : Entendiendo la Java Virtual Machine (JVM) Java, JVM, objetos, introducción,

Más detalles

Sistemas Operativos. Curso 2013 Virtualización

Sistemas Operativos. Curso 2013 Virtualización Sistemas Operativos Curso 2013 Virtualización Agenda Introducción Requerimientos para la virtualización Virtualización de CPU Vritualización de la memoria Virtualización de la E/S Sistemas Operativos Modernos,

Más detalles

Estudio Comparativo de dos Plataformas de Programación de Dispositivos Móviles

Estudio Comparativo de dos Plataformas de Programación de Dispositivos Móviles Estudio Comparativo de dos Plataformas de Programación de Dispositivos Móviles Gregorio Elías Pazmiño Vélez (1) Magdeline Estefanie Rosero Pérez (2) Facultad de Ingeniería en Electricidad y Computación

Más detalles

Conceptos Básicos de Software. Clase III

Conceptos Básicos de Software. Clase III Clase III Definición de Sistema Operativo El sistema operativo es el programa (o software) más importante de una computadora. Para que funcionen los otros programas, cada computadora de uso general debe

Más detalles

Diseño e Implementación de un Planificador para un Sistema de Virtualización basado en Minix

Diseño e Implementación de un Planificador para un Sistema de Virtualización basado en Minix Diseño e Implementación de un Planificador para un Sistema de Virtualización basado en Minix Prinsich Bernz, Emilio Quaglia, Constanza Director: Pessolani,Pablo Universidad Tecnológica Nacional Facultad

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México Licencia La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México S. A de C.V., Está protegida por derechos de autor y / u otras leyes aplicables. Cualquier uso diferente a

Más detalles

TEMA 1. Introducción

TEMA 1. Introducción TEMA 1 Introducción LO QUE ABORDAREMOS Qué es Android? Qué lo hace interesante? Arquitectura del sistema Entorno de desarrollo 2 QUÉ ES ANDROID? Sistema operativo para móviles Desarrollado inicialmente

Más detalles

La Arquitectura de las Máquinas Virtuales.

La Arquitectura de las Máquinas Virtuales. La Arquitectura de las Máquinas Virtuales. La virtualización se ha convertido en una importante herramienta en el diseño de sistemas de computación, las máquinas virtuales (VMs) son usadas en varias subdiciplinas,

Más detalles

Instalación de XEN... 2 1 Información de XEN... 2 1.1 Qué es XEN?... 2 1.2 Componentes de XEN:... 2

Instalación de XEN... 2 1 Información de XEN... 2 1.1 Qué es XEN?... 2 1.2 Componentes de XEN:... 2 Guía Instalación de XEN en opensuse Contenido de la guía Instalación de XEN... 2 1 Información de XEN... 2 1.1 Qué es XEN?... 2 1.2 Componentes de XEN:... 2 2 Instalación del kernel de XEN para Opensuse

Más detalles

Maquinas virtuales Conceptos Básicos

Maquinas virtuales Conceptos Básicos Jimenez Zamudio Eduardo Aplicaciones de redes de computadoras 13 de septiembre de 2014 Maquinas virtuales Conceptos Básicos Concepto Básicamente, es un equipo dentro de un equipo, implementado en el software.

Más detalles

Software Libre / Código Abierto Programa de contenidos

Software Libre / Código Abierto Programa de contenidos Software Libre / Código Abierto Programa de contenidos Resumen Se presenta a continuación la organización de un curso de cincuenta horas cuyo fin es dar a conocer la base ideológica que sostiene a los

Más detalles

COMPROBACIÓN DE DATOS: CÓMO REFUTAR LAS AFIRMACIONES DE ORACLE CON RESPECTO A RED HAT ENTERPRISE LINUX

COMPROBACIÓN DE DATOS: CÓMO REFUTAR LAS AFIRMACIONES DE ORACLE CON RESPECTO A RED HAT ENTERPRISE LINUX COMPROBACIÓN DE DATOS: CÓMO REFUTAR LAS AFIRMACIONES DE ORACLE CON RESPECTO A RED HAT ENTERPRISE LINUX Últimamente, Oracle ha estado realizando afirmaciones equivocadas acerca de Red Hat Enterprise Linux

Más detalles

Patrones de diseño para aplicaciones de tiempo real

Patrones de diseño para aplicaciones de tiempo real Metodologías, procesos y entornos para sistemas de tiempo real Master de Computación Patrones de diseño para aplicaciones de tiempo real José M. Drake Computadores y Tiempo Real Santander, 2010 1 Metodos,

Más detalles

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux Sistemas operativos: una visión aplicada Capítulo 11 Estudio de casos: Linux Contenido Historia de Linux Características y estructura de Linux Gestión de procesos Gestión de memoria Entrada/salida Sistema

Más detalles

Taller de sistemas operativos PLANIFICADOR

Taller de sistemas operativos PLANIFICADOR Taller de sistemas operativos PLANIFICADOR Agenda Introducción Clases de planificación Prioridades Timeslice Prioridad dinámica Estructuras del planificador Planificador en funcionamiento Nuevo planificador

Más detalles

Visión general y entorno de desarrollo

Visión general y entorno de desarrollo CAPÍTULO 1. Visión general y entorno de desarrollo La telefonía móvil está cambiando la sociedad actual de una forma tan significativa como lo ha hecho Internet. Esta revolución no ha hecho más que empezar,

Más detalles

Luis Sosa : 06-40351 Cesar Hernández: 06-39724

Luis Sosa : 06-40351 Cesar Hernández: 06-39724 Sistemas de Operación en Dispositivos Móviles Un enfoque a Android y ios. Luis Sosa : 06-40351 Cesar Hernández: 06-39724 Historia Desarrollado inicialmente por Android Inc. Firma comprada por Google en

Más detalles

CURSOS DE VERANO 2014

CURSOS DE VERANO 2014 CURSOS DE VERANO 2014 CLOUD COMPUTING: LA INFORMÁTICA COMO SERVICIO EN INTERNET LA PLATAFORMA GOOGLE CLOUD PLATFORM. GOOGLE APP ENGINE Pedro A. Castillo Valdivieso Universidad de Granada http://bit.ly/unia2014

Más detalles

Virtualización. Betzabeth González Jhon Villamizar

Virtualización. Betzabeth González Jhon Villamizar Virtualización Betzabeth González Jhon Villamizar PUNTOS A TRATAR Virtualización Hipervisor Tipos de Hipervisor La Virtualización de plataforma Tipos de Virtualización de plataforma Tipos de Virtualización

Más detalles

Bienvenidos a la presentación: Introducción a conceptos básicos de programación.

Bienvenidos a la presentación: Introducción a conceptos básicos de programación. Bienvenidos a la presentación: Introducción a conceptos básicos de programación. 1 Los programas de computadora son una serie de instrucciones que le dicen a una computadora qué hacer exactamente. Los

Más detalles

México, D.F., a 13 de Septiembre de 2012

México, D.F., a 13 de Septiembre de 2012 México, D.F., a 13 de Septiembre de 2012 Atn. Raúl González Reyna Director Nacional de MexicoFirst Andrés Simón Bujaidar Director de Alianzas Nacionales de MexicoFirst De nuestra especial consideración:

Más detalles

App Android: Desarrollo de aplicaciones en Android.

App Android: Desarrollo de aplicaciones en Android. App Android: Desarrollo de aplicaciones en Android. Introducción a Android Charla-taller impartida en CAMON Alicante el 11-12 de enero de 2011. Boyán Bonev, Pablo Suau, Miguel A. Lozano y el Dep. CCIA

Más detalles

SISTEMAS OPERATIVOS DE DISPOSITIVOS MÓVILES HÉCTOR DOMÍNGUEZ KRYSLER PINTO

SISTEMAS OPERATIVOS DE DISPOSITIVOS MÓVILES HÉCTOR DOMÍNGUEZ KRYSLER PINTO SISTEMAS OPERATIVOS DE DISPOSITIVOS MÓVILES HÉCTOR DOMÍNGUEZ KRYSLER PINTO AGENDA Sistemas operativos móviles Capas Historia Características Arquitectura Gestión de procesos Gestión de memoria Multitasking

Más detalles

App Inventor. CI-2657 Robótica M.Sc. Kryscia Ramírez Benavides

App Inventor. CI-2657 Robótica M.Sc. Kryscia Ramírez Benavides M.Sc. Kryscia Ramírez Benavides Qué nos ofrecen las aplicaciones móviles? Versatilidad. Ahorro de costos. Adaptación a la forma de trabajo. Ampliación de capacidades de cada unidad. 2 Qué es? es una aplicación

Más detalles

FUNDAMENTOS, ESTRUCTURA Y PROGRAMACIÓN DE LOS PROCESADORES DIGITALES DE SEÑAL. FAMILIA TMS320C3X DE TEXAS INSTRUMENTS.

FUNDAMENTOS, ESTRUCTURA Y PROGRAMACIÓN DE LOS PROCESADORES DIGITALES DE SEÑAL. FAMILIA TMS320C3X DE TEXAS INSTRUMENTS. FUNDAMENTOS, ESTRUCTURA Y PROGRAMACIÓN DE LOS PROCESADORES DIGITALES DE SEÑAL. FAMILIA TMS320C3X DE TEXAS INSTRUMENTS. Sergio Gallardo, Javier Lillo, Sergio Toral, Federico Barrero Universidad de Sevilla.

Más detalles

Soluciones robustas de virtualización con software libre

Soluciones robustas de virtualización con software libre Soluciones robustas de virtualización con software libre Morfeo Formación {mvidal,jfcastro}@libresoft.es GSyC/Libresoft URJC 1 de junio de 2010 c 2010. Some rights reserved. This work is licensed under

Más detalles

Material Actividad de aprendizaje 1. Primeros Pasos con App Inventor

Material Actividad de aprendizaje 1. Primeros Pasos con App Inventor Análisis Desarrollo de para aplicaciones el desarrollo móviles móvil con APP con INVENTOR.. Indice Introducción 1. Android. 2. Introducción. 3. Requisitos para la Configuración. 4. Configuración de 2.

Más detalles

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales. www.librosdigitales.

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales. www.librosdigitales. 1 Arquitectura de una Aplicación Android Para empezar con el desarrollo de aplicaciones en Android es importante conocer cómo está estructurado este sistema operativo. A esto le llamamos arquitectura y

Más detalles

Desarrollo de Smarphones sobre plataformas libres para PC y PDA. David Cortés, José Luis González, Servando Saavedra y Juan Ramón Saavedra

Desarrollo de Smarphones sobre plataformas libres para PC y PDA. David Cortés, José Luis González, Servando Saavedra y Juan Ramón Saavedra Desarrollo de Smarphones sobre plataformas libres para PC y PDA David Cortés, José Luis González, Servando Saavedra y Juan Ramón Saavedra Índice Introducción Comunicaciones de VoIP para las empresas Desarrollo

Más detalles

COMPILACIÓN BIBLIOGRÁFICA RESUMEN: Sistemas Operativos Linux y las diferentes distribuciones (Detallar Red Hat, Fedora, Ubuntu, etc) y Chrome OS.

COMPILACIÓN BIBLIOGRÁFICA RESUMEN: Sistemas Operativos Linux y las diferentes distribuciones (Detallar Red Hat, Fedora, Ubuntu, etc) y Chrome OS. COMPILACIÓN BIBLIOGRÁFICA RESUMEN: Sistemas Operativos Linux y las diferentes distribuciones (Detallar Red Hat, Fedora, Ubuntu, etc) y Chrome OS. Presentado Por: Daniel Montes Agudelo John Elkin Rendón

Más detalles

Java y la tecnología móvil

Java y la tecnología móvil II Jornadas Tecnológicas de Ingeniería de Sistemas 5 UDO Monagas Java y la tecnología móvil Jorge Salazar Tovar Venezuela Java User Group jfexart@gmail.com http://jfexart.com.ve Maturín, 3, 4 y 5 de Agosto

Más detalles

Introduccion a la plataforma Android

Introduccion a la plataforma Android Introduccion a la plataforma Android Felipe A. Besoaín Pino fbesoain@gmail.com 22-05-2009 Resumen Las características y usos que nos proveen los dispositivos móviles en los últimos años, han provocado

Más detalles

(Integrated Development Environment) Herramienta de soporte para el desarrollo de sotfware: Editor (escribir y editar programas); un

(Integrated Development Environment) Herramienta de soporte para el desarrollo de sotfware: Editor (escribir y editar programas); un (Integrated Development Environment) Herramienta de soporte para el desarrollo de sotfware: Editor (escribir y editar programas); un compilador/intérprete y un depurador (localización de errores lógicos).

Más detalles

TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS

TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS 1. Concepto de Sistema Operativo. Funciones Un sistema operativo (S.O.) es un programa o conjunto de programas de control que tiene por objeto facilitar

Más detalles

Utilización de J2ME sobre Linux en plataformas embebidas

Utilización de J2ME sobre Linux en plataformas embebidas Utilización de J2ME sobre Linux en plataformas embebidas Objetivos Instalación de la máquina virtual de Java ME para entornos embebidos Requisitos Modulo embebido con Linux. Notas Adicionales En el guión

Más detalles

Asignatura: SISTEMAS EN TIEMPO REAL Código: 40007318 Año académico: 2009/2010 Centro:

Asignatura: SISTEMAS EN TIEMPO REAL Código: 40007318 Año académico: 2009/2010 Centro: Asignatura: SISTEMAS EN TIEMPO REAL Código: 40007318 Año académico: 2009/2010 Centro: ESCUELA POLITÉCNICA SUPERIOR Departamento: LENGUAJES Y COMPUTACIÓN Área: INGENIERÍA DE SISTEMAS Y AUTOMÁTICA Titulación:

Más detalles

Denominación de la materia. créditos ECTS = 36 carácter = OBLIGATORIA SISTEMAS OPERATIVOS, SISTEMAS DISTRIBUIDOS Y REDES

Denominación de la materia. créditos ECTS = 36 carácter = OBLIGATORIA SISTEMAS OPERATIVOS, SISTEMAS DISTRIBUIDOS Y REDES Denominación de la materia SISTEMAS OPERATIVOS, SISTEMAS DISTRIBUIDOS Y REDES créditos ECTS = 36 carácter = OBLIGATORIA Ubicación dentro del plan de estudios y duración La materia está formada por 6 asignaturas

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos 2º Ingeniero de Telecomunicación (Sonido e Imagen) Departamento de Ingeniería Telemática Universidad Carlos III de Madrid 2 Qué vamos a ver hoy? Qué es un sistema

Más detalles

Capitulo 2 Android SDK

Capitulo 2 Android SDK Capitulo 2 Android SDK Elaborado por: Gary Briceño http://gary.pe http://gary.pe 1 ESTRUCTURA DE ANDROID SDK http://gary.pe 2 http://gary.pe 3 Android SDK Proporciona los API y herramientas de desarrollo

Más detalles

Cookbook Creando un Proyecto Android (ADT-Eclipse)

Cookbook Creando un Proyecto Android (ADT-Eclipse) Cookbook Creando un Proyecto Android (ADT-Eclipse) ALONSO PARRA CESAR VIELMA FREDDY RONDON JOSE MARQUEZ Alienx9889 * cesarvielma * spantons * joseangel2212 * * @gmail.com Universidad de Los Andes Escuela

Más detalles

Computación Tercer Año

Computación Tercer Año Colegio Bosque Del Plata Computación Tercer Año UNIDAD 3 Sistemas Operativos E-mail: garcia.fernando.j@gmail.com Profesor: Fernando J. Garcia Ingeniero en Sistemas de Información Sistemas Operativos Generaciones

Más detalles

Experiencia docente en el desarrollo de aplicaciones empotradas

Experiencia docente en el desarrollo de aplicaciones empotradas Experiencia docente en el desarrollo de aplicaciones empotradas con MarteOS Silvia Terrasa, Patricia Balbastre, Alfons Crespo Dept. de Informática de Sistemes y Computadores Universidad Politécnica de

Más detalles

UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS ECONOMICAS Y SOCIALES. PROF. ISRAEL J. RAMIREZ israel@ula.ve

UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS ECONOMICAS Y SOCIALES. PROF. ISRAEL J. RAMIREZ israel@ula.ve UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS ECONOMICAS Y SOCIALES PROF. ISRAEL J. RAMIREZ israel@ula.ve UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS ECONOMICAS Y SOCIALES LOS SISTEMAS OPERATIVOS 1.-

Más detalles

Sistema de grabación por celulares

Sistema de grabación por celulares Sistema de grabación por celulares Informe Técnico Interno Miguel Martínez Soler Laboratorio de Investigaciones Sensoriales - LIS Facultad de Medicina Universidad de Buenos Aires Buenos Aires, mayo de

Más detalles

Certified Application Enginner

Certified Application Enginner Certified Application Enginner INADECO CENTRO DE FORMACIÓN C/ Teodoro Cuesta 5 Bajo 33207 Gijón PRINCIPADO DE ASTURIAS Tfno. 985 17 14 21 www.inadeco.es Curso: Android Certified Application Enginner Ingeniero

Más detalles

Uso de un motor de restricciones bajo dispositivos Android

Uso de un motor de restricciones bajo dispositivos Android Uso de un motor de restricciones bajo dispositivos Android Gonzalo Hernández 1, Camilo Villota Ibarra 2, James Muñoz Coronel 3, Harold Muñoz Muñoz 4 Universidad de Nariño, Facultad de Ingeniería, Departamento

Más detalles

2. Sistema Operativo Windows

2. Sistema Operativo Windows 2. Sistema Operativo Windows 2.1 Introducción al S.O. Windows NT y Windows 2000 2.2 Subsistema de Archivos 2.3 Subsistema de Procesos 2.4 Gestión de Memoria Dpto. Lenguajes Tema y 2: Sistemas 2. Sistema

Más detalles

Sistemas Operativos INTRODUCCIÓN A LAS TECNOLOGÍAS INFORMÁTICAS

Sistemas Operativos INTRODUCCIÓN A LAS TECNOLOGÍAS INFORMÁTICAS Sistemas Operativos INTRODUCCIÓN A LAS TECNOLOGÍAS INFORMÁTICAS Contenido 1. Repaso: software y tipos de software 2. Sistemas Operativos: conceptos generales 3. Sistemas Operativos: Windows, Unix, Mac

Más detalles

Windows NT. Desdoble del sistema operativo Windows: Sucesor de Windows NT 3.51 Hereda el interfaz de usuario (GUI) de Win95 Versiones:

Windows NT. Desdoble del sistema operativo Windows: Sucesor de Windows NT 3.51 Hereda el interfaz de usuario (GUI) de Win95 Versiones: Windows NT Desdoble del sistema operativo Windows: Windows 3.1 -> usuarios particulares (basado en MS-DOS) -> W95 Windows NT 3.1 -> profesionales y empresas (nuevo) -> NT4 Windows NT 4 Sucesor de Windows

Más detalles

1. Objetivos generales del título

1. Objetivos generales del título 1. Objetivos generales del título a) Organizar los componentes físicos y lógicos que forman un sistema microinformático, interpretando su documentación técnica, para aplicar los medios y métodos adecuados

Más detalles

VIRTUALIZACIÓN Virtualización es la creación de una versión virtual en base a un sistema anfitrión o host de: o Un sistema operativo. o Un servidor. o Un dispositivo de almacenamiento. orecursos de la

Más detalles

Desarrollando con android sin conexión

Desarrollando con android sin conexión Desarrollando con android sin conexión Por: Alfonso Alí http://aalih.cubava.cu/2015/01/12/desarrollando-con-android-sin-conexion/ Para nadie es noticia que los dispositivos con

Más detalles

Lista de acrónimos... xv. Cómo leer este libro?... xvii

Lista de acrónimos... xv. Cómo leer este libro?... xvii Índice general Lista de acrónimos... xv Cómo leer este libro?... xvii CAPÍTULO 1. Diseño avanzado de interfaces de usuario... 19 1.2.1. Insertar fragments desde XML... 27 1.2.2. Insertar fragments desde

Más detalles

Especialista TIC en Linux Básico + Linux Avanzado (Online) Titulación acredidatada por la Comisión Internacional de Formación de la UNESCO

Especialista TIC en Linux Básico + Linux Avanzado (Online) Titulación acredidatada por la Comisión Internacional de Formación de la UNESCO Especialista TIC en Linux Básico + Linux Avanzado (Online) Titulación acredidatada por la Comisión Internacional de Formación de la UNESCO Especialista TIC en Linux Básico + Linux Avanzado (Online) Duración:

Más detalles

Universidad Austral. Aplicación móvil para manejo de una computadora Droid Control Trabajos de Cátedra

Universidad Austral. Aplicación móvil para manejo de una computadora Droid Control Trabajos de Cátedra Universidad Austral Aplicación móvil para manejo de una computadora Droid Control Trabajos de Cátedra Autores: Tomas A. Najun Jose M. Gonzalez Docentes: Nicolas Damonte Lucas Luppani Ignacio Rodriguez

Más detalles

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed COMPUTADORES MULTINUCLEO Stallings W. Computer Organization and Architecture 8ed Computador multinucleo Un computador multinúcleocombina dos o mas procesadores (llamados núcleos) en una única pieza de

Más detalles

Diseño y simulación de un planificador para un sistema de virtualización basado en Minix *

Diseño y simulación de un planificador para un sistema de virtualización basado en Minix * Diseño y simulación de un planificador para un sistema de virtualización basado en Minix * Paparotti, Lautaro Prinsich Bernz, Emilio Quaglia, Constanza Director: Pessolani, Pablo Universidad Tecnológica

Más detalles

ESTUDIO DE CASOS: LINUX

ESTUDIO DE CASOS: LINUX ESTUDIO DE CASOS: LINUX En este capítulo se estudia el sistema operativo Linux. Se trata de un sistema operativo de libre distribución que proporciona una interfaz POSIX. Actualmente Linux es ampliamente

Más detalles

Maquinas Virtuales. Prof.: Huerta Molina Samuel. Cuellar Sánchez Jesús. Pinto López Luis Tonatiuh. Hecho por Jesús y Luis. 1

Maquinas Virtuales. Prof.: Huerta Molina Samuel. Cuellar Sánchez Jesús. Pinto López Luis Tonatiuh. Hecho por Jesús y Luis. 1 ESTRUCTURA Y PROGRAMACIÓN DE COMPUTADORAS. Grupo: 08. Prof.: Huerta Molina Samuel. Maquinas Virtuales Cuellar Sánchez Jesús. Pinto López Luis Tonatiuh. Hecho por Jesús y Luis. 1 Conceptos Básicos Sobre

Más detalles

Para poder instalar el producto, tendremos que obtener el instalador apropiado para nuestro entorno hardware y software.

Para poder instalar el producto, tendremos que obtener el instalador apropiado para nuestro entorno hardware y software. Instalación de Oracle Service BUS (OSB) 1 DESCARGA DE INSTALADOR Para poder instalar el producto, tendremos que obtener el instalador apropiado para nuestro entorno hardware y software. En la siguiente

Más detalles

TP6 Sistemas Legados

TP6 Sistemas Legados UNIVERSIDAD DE ZARAGOZA TP6 Sistemas Legados Virtualización de Sistemas Diego Gálvez - 649892 Diego Grande 594100 Tabla de contenido Introducción... 2 Virtualización... 2 Conceptos fundamentales... 3 Modelos

Más detalles

Bloque II. Elementos del lenguaje de programación Java

Bloque II. Elementos del lenguaje de programación Java Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida

Más detalles

Informe de avance Implementación herramientas de back-end (3-III).

Informe de avance Implementación herramientas de back-end (3-III). Proyecto RG-T1684 Desarrollo e implementación de las soluciones Prueba piloto del Componente III Informe Número 1. Informe de avance Implementación herramientas de back-end (3-III). Lautaro Matas 11/04/2013

Más detalles

ANEXO D Manual de Técnico MANUAL TECNICO PROMO APP PROMO PLATFORM PROMO API PROYECTO FINAL

ANEXO D Manual de Técnico MANUAL TECNICO PROMO APP PROMO PLATFORM PROMO API PROYECTO FINAL ANEXO D Manual de Técnico MANUAL TECNICO PROMO APP PROMO PLATFORM PROMO API PROYECTO FINAL PROTOTIPO DE SOFTWARE DE UN SISTEMA RECOMENDADOR DE PRODUCTOS Y SERVICIOS EN PROMOCIÓN SOBRE UNA ARQUITECTURA

Más detalles

Diseño de aplicaciones móviles seguras en Android. alvaro.ospina@upb.edu.co aospina@gmail.com

Diseño de aplicaciones móviles seguras en Android. alvaro.ospina@upb.edu.co aospina@gmail.com Diseño de aplicaciones móviles seguras en Android alvaro.ospina@upb.edu.co aospina@gmail.com Agenda Que es Android? Historia? Arquitectura Herramientas Medidas de seguridad Que es Android? Pila de software

Más detalles

Almacenamiento virtual de sitios web HOSTS VIRTUALES

Almacenamiento virtual de sitios web HOSTS VIRTUALES Almacenamiento virtual de sitios web HOSTS VIRTUALES El término Hosting Virtual se refiere a hacer funcionar más de un sitio web (tales como www.company1.com y www.company2.com) en una sola máquina. Los

Más detalles

Técnico Especialista TIC en Gestión y la Monitorización de Incidencias de los Sistemas Físicos y del Software Informático

Técnico Especialista TIC en Gestión y la Monitorización de Incidencias de los Sistemas Físicos y del Software Informático Técnico Especialista TIC en Gestión y la Monitorización de Incidencias de los Sistemas Físicos y Titulación certificada por EUROINNOVA BUSINESS SCHOOL Técnico Especialista TIC en Gestión y la Monitorización

Más detalles

Sistemas Operativos Para Dispositivos Móviles

Sistemas Operativos Para Dispositivos Móviles Sistemas Operativos Para Dispositivos Móviles Diseño de Sistemas Operativos Prof. Ing. Angel Caffa Gonzalo Villar - 143125 Ignacio Toledo - 143698 25/06/2008 Sistemas tratados Palm OS Symbian Windows Mobile

Más detalles

Sistemas operativos: una visión aplicada. Capítulo 12 Estudio de casos: Windows-NT

Sistemas operativos: una visión aplicada. Capítulo 12 Estudio de casos: Windows-NT Sistemas operativos: una visión aplicada Capítulo 12 Estudio de casos: Windows-NT Contenido Introducción Principios de diseño de Windows NT Arquitectura de Windows NT El núcleo de Windows NT Subsistemas

Más detalles

PROGRAMA DE ESTUDIO. señales Programas académicos en los que se imparte: Ingeniería Eléctrica-Electrónica

PROGRAMA DE ESTUDIO. señales Programas académicos en los que se imparte: Ingeniería Eléctrica-Electrónica PROGRAMA DE ESTUDIO Nombre de la asignatura: SISTEMAS EN TIEMPO REAL Clave: SDI05 Ciclo Formativo: Básico ( ) Profesional ( ) Especializado ( X ) Fecha de elaboración: marzo 2015 Horas Horas Horas de Horas

Más detalles

JAVA 8 Los fundamentos del lenguaje Java (con ejercicios prácticos corregidos)

JAVA 8 Los fundamentos del lenguaje Java (con ejercicios prácticos corregidos) Presentación 1. Historia 11 1.1 Por qué Java? 11 1.2 Objetivos del diseño de Java 12 1.3 Auge de Java 13 2. Características de Java 14 2.1 El lenguaje de programación Java 14 2.1.1 Sencillo 15 2.1.2 Orientado

Más detalles

Programación en LabVIEW para Ambientes Multinúcleo

Programación en LabVIEW para Ambientes Multinúcleo Programación en LabVIEW para Ambientes Multinúcleo Agenda Introducción al Multithreading en LabVIEW Técnicas de Programación en Paralelo Consideraciones de Tiempo Real Recursos Evolución de la Instrumentación

Más detalles

Desarrollo de Aplicaciones Móviles. Java

Desarrollo de Aplicaciones Móviles. Java Java Java es la base para prácticamente todos los tipos de aplicaciones de red, además del estándar global para desarrollar y distribuir aplicaciones móviles y embebidas, juegos, contenido basado en web

Más detalles

Maquinas Virtuales - VirtualBox. Talleres ETSIIT 2010-2011 Oficina de Software Libre Universidad de Granada José Antonio Serrano García

Maquinas Virtuales - VirtualBox. Talleres ETSIIT 2010-2011 Oficina de Software Libre Universidad de Granada José Antonio Serrano García Maquinas Virtuales - VirtualBox Talleres ETSIIT 2010-2011 Oficina de Software Libre Universidad de Granada José Antonio Serrano García Maquina virtual En informática una máquina virtual es un software

Más detalles