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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS Resultados de aprendizaje y criterios de evaluación 1. Identificar la estructura y organización

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

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

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

Sistema Operativo Linux

Sistema Operativo Linux Fundación Colegio Aplicación Toico Palo Gordo. Municipio Cárdenas. Cátedra: Informática Objetivo N. 2 (SISTEMA OPERATIVO LINUX) Segundo Año. Secciones: A y B. Prof. Dayana Meléndez Sistema Operativo Linux

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

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

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

VISIÓN GENERAL HERRAMIENTAS COMERCIALES

VISIÓN GENERAL HERRAMIENTAS COMERCIALES VISIÓN GENERAL El servidor de MS SQL se ha convertido en un estándar en muchas partes de la América corporativa. Puede manejar volúmenes de datos grandes y se integra bien con otros productos de Microsoft.

Más detalles

Anexo IV Configuración del Entorno de Desarrollo. Guía de puntos de interés de la Ciudad de Madrid

Anexo IV Configuración del Entorno de Desarrollo. Guía de puntos de interés de la Ciudad de Madrid Anexo IV Configuración del Entorno de Desarrollo Guía de puntos de interés de la Ciudad de Madrid 1. Índice Anexo IV Configuración del Entorno de Desarrollo... 1 1. Índice... 2 2. Entorno de Desarrollo...

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 17 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

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

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. ARQUITECTURAS DE COMPUTADORES 2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. Unidad de E/S 1 Unidad de E/S Indice Introducción.

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

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

Procesos. Bibliografía. Threads y procesos. Definiciones

Procesos. Bibliografía. Threads y procesos. Definiciones Procesos Prof. Mariela Curiel Bibliografía A. Tanembaum & M. Van Steen. Sistemas Distribuidos. Principios y Paradigmas. 2da. Edición. Smith & Nair. The Architecture of Virtual Machines. IEEE Computer.

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

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

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

Evaluación de Software de Base

Evaluación de Software de Base Evaluación de Software de Base Sistemas Operativos Es un conjunto de software de sistema que controla como las aplicaciones acceden al hardware (Dispositivos de entrada / salida y administración de memoria)

Más detalles

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD 1 Java es un lenguaje de programación de Sun Microsystems originalmente llamado "Oak. James Gosling Bill Joy 2 Oak nació para programar pequeños dispositivos electrodomésticos, como los asistentes personales

Más detalles

LINUX. GNU/Linux. Cuatro características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado:

LINUX. GNU/Linux. Cuatro características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado: LINUX GNU/Linux GNU/Linux es un sistema operativo de libre distribución, basado en el kernel Linux creado por Linus Torvalds y los desarrolladores del grupo GNU (Fundación para el software libre encabezada

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

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

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...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

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web Secretaría de Planificación Estratégica Oficina de Informática Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web VERSIÓN 4 Julio 2009 Índice 1. Generalidades... 3 1.1

Más detalles

Análisis de desempeño y modelo de escalabilidad para SGP

Análisis de desempeño y modelo de escalabilidad para SGP Análisis de desempeño y modelo de escalabilidad para SGP Este documento es producto de la experiencia de Analítica en pruebas de stress sobre el software SGP. Estas pruebas se realizaron sobre un proceso

Más detalles

Análisis técnico de HP LoadRunner

Análisis técnico de HP LoadRunner Informe técnico Análisis técnico de HP LoadRunner Índice El contexto actual 2 Los límites de las pruebas manuales 2 Una nueva visión de las pruebas de rendimiento: HP LoadRunner 3 La solución y la terminología

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

IBM Rational Statemate ayuda a los ingenieros de sistemas a enfrentarse a los retos del mercado de sistemas integrados complejos

IBM Rational Statemate ayuda a los ingenieros de sistemas a enfrentarse a los retos del mercado de sistemas integrados complejos ZP09-0207, con fecha 2 de junio de 2009 IBM Rational Statemate ayuda a los ingenieros de sistemas a enfrentarse a los retos del mercado de sistemas integrados complejos Índice 1 Resumen de características

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

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

WINDOWS GNU/LINUX OS X ANDROID RIM CISCO IOS DESAROLLO WEB VIRTUALIZACION PENTESTING FORENSE SEGURIDAD INFORMÁTICA

WINDOWS GNU/LINUX OS X ANDROID RIM CISCO IOS DESAROLLO WEB VIRTUALIZACION PENTESTING FORENSE SEGURIDAD INFORMÁTICA 1 de 23 07/08/2015 10:19 Administración de sistemas, redes y seguridad WINDOWS GNU/LINUX OS X ANDROID RIM CISCO IOS DESAROLLO WEB VIRTUALIZACION PENTESTING FORENSE SEGURIDAD INFORMÁTICA Instalación y Configuración

Más detalles

Sistema software de acceso a dispositivos en tiempo real integrado en la plataforma MissionLab

Sistema software de acceso a dispositivos en tiempo real integrado en la plataforma MissionLab Sistema software de acceso a dispositivos en tiempo real integrado en la plataforma MissionLab Resumen de la Memoria Autor D. Rubén González del Pozo Tutores Dr. D. Raúl Alves Santos Dr. D. Vidal Moreno

Más detalles

Aplicación Java para distribución de código en R

Aplicación Java para distribución de código en R rolgalan@gmail.com Huesca - 24 de noviembre de 2009 Implementación Descripción problema Existen muchos problemas, cuya resolución informática requiere de un enorme tiempo de cómputo. En la actualidad,

Más detalles

Mejor tecnología para aplicación práctica NOMAD

Mejor tecnología para aplicación práctica NOMAD TECNOLOGÍA APLICACIÓN PRÁCTICA NOMAD: NOMADIC MODEL FOR THE DISPLAY ADAPTATION ORIENTED TO FINAL USERS NOMAD Mejor tecnología para aplicación práctica NOMAD Luis Carlos Niño Tavera Juan Carlos Nova El

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software MSDN Ingeniería de Software...1 Ingeniería del Software_/_ Ingeniería y Programación...1 Análisis de Requerimientos...2 Especificación...3 Diseño...4 Desarrollo en Equipo...5 Mantenimiento...6

Más detalles

MÁSTER ONLINE EN ADMINISTRACIÓN LINUX

MÁSTER ONLINE EN ADMINISTRACIÓN LINUX MÁSTER ONLINE EN ADMINISTRACIÓN LINUX Módulo 1 Hardware & Arquitectura de sistemas - 20 horas Este módulo permite conocer y configurar los elementos básicos del hardware del sistema, como también otros

Más detalles

BOLETÍN DE NOVEDADES Barcelona, junio de 2006

BOLETÍN DE NOVEDADES Barcelona, junio de 2006 BOLETÍN DE NOVEDADES Barcelona, junio de 2006 Introducción El objeto de este documento es presentar y describir brevemente las principales actuaciones en los últimos meses de Carver en algunos de sus clientes,

Más detalles

Tecnologías de componentes y proceso de diseño de aplicaciones basado en componentes

Tecnologías de componentes y proceso de diseño de aplicaciones basado en componentes Tecnologías de y proceso de diseño de aplicaciones basado en Programación orientada a objetos : Lenguajes, Tecnologías y Herramientas Master de Computación Santander, 2009 Patricia López Grupo de Computadores

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

Procesos. Planificación del Procesador.

Procesos. Planificación del Procesador. Procesos. Planificación del Procesador. Sistemas Operativos. Tema 2. Concepto de Proceso. Una definición sencilla: Programa en ejecución. Entidad pasiva Programa RECURSOS CPU Memoria Ficheros Dispositivos

Más detalles

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX En este manual se presenta el proceso de configuración de una Maquina Virtual en VirtualBox, que será utilizada para instalar un Servidor

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

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

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

46954004 es MILLMASTER. TOP Built to outperform

46954004 es MILLMASTER. TOP Built to outperform 46954004 es MILLMASTER TOP Built to outperform 2 Nuevas exigencias requieren soluciones innovadoras MillMaster TOP Una nueva generación de purgadores de hilo LOEPFE es la respuesta a las exigencias crecientes

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

CA Mainframe Software Manager r3.1

CA Mainframe Software Manager r3.1 HOJA DEL PRODUCTO CA Mainframe Software Manager CA Mainframe Software Manager r3.1 CA Mainframe Software Manager (CA MSM) es un componente clave de la estrategia de Mainframe 2.0 de CA Technologies para

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

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

CAPÍTULO 1 Instrumentación Virtual

CAPÍTULO 1 Instrumentación Virtual CAPÍTULO 1 Instrumentación Virtual 1.1 Qué es Instrumentación Virtual? En las últimas décadas se han incrementado de manera considerable las aplicaciones que corren a través de redes debido al surgimiento

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

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

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

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

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

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

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

Capitulo 3. Test Driven Development

Capitulo 3. Test Driven Development Capitulo 3. Test Driven Development 3.1 Uso de JUnit como framework para realizar pruebas unitarias Como ya se mencionó en el marco teórico Test Driven Development es una técnica de programación extrema

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

Mantenimiento del Software

Mantenimiento del Software Mantenimiento del Software S4 Francisco Ruiz, Macario Polo Grupo Alarcos Dep. de Informática ESCUELA SUPERIOR DE INFORMÁTICA UNIVERSIDAD DE CASTILLA-LA MANCHA http://alarcos.inf-cr.uclm.es/doc/mso/ Ciudad

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

Más detalles

Seminario de Programación en Ada

Seminario de Programación en Ada Seminario de Programación en Ada Bloque II Programación de tiempo real GRUPO DE COMPUTADORES Y TIEMPO REAL Michael González, J. Javier Gutiérrez, Héctor Pérez 19 Programación de Tiempo Real El Ada soporta

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

Instalación del sistema operativo Microsoft Windows Server 2008 Standard Edition x86

Instalación del sistema operativo Microsoft Windows Server 2008 Standard Edition x86 Instalación del sistema operativo Microsoft Windows Server 2008 Standard Edition x86 1. CONSIDERACIONES PREVIAS Antes de empezar con la instalación vamos a revisar los requerimientos necesarios para poder

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

SUPLEMENTO EUROPASS AL TÍTULO

SUPLEMENTO EUROPASS AL TÍTULO SUPLEMENTO EUROPASS AL TÍTULO DENOMINACIÓN DEL TÍTULO Técnico Superior en Desarrollo de Aplicaciones Multiplataforma --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Más detalles

Introducción a las Pruebas de Software

Introducción a las Pruebas de Software Introducción a las Pruebas de Software Contenido Contenido El ciclo de vida de la Calidad. Conceptos Generales de Pruebas. Proceso de Pruebas de So7ware. Obje;vos de las Pruebas de So7ware. Beneficios

Más detalles

Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III

Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III DI PIETRO, Franco RODRIGUEZ, Matías VICARIO, Luciano Introducción En este papper se muestran

Más detalles

NOMBRE DEL EXPERIMENTO AUTOR CATEGORÍA PALABRAS CLAVE QUÉ SE PRETENDE MOSTRAR? DIRIGIDO A. Construye y Controla tu Robot en un día.

NOMBRE DEL EXPERIMENTO AUTOR CATEGORÍA PALABRAS CLAVE QUÉ SE PRETENDE MOSTRAR? DIRIGIDO A. Construye y Controla tu Robot en un día. NOMBRE DEL EXPERIMENTO Construye y Controla tu Robot en un día. AUTOR Juan Antonio Holgado Terriza Marcelino Cabrera Cuevas Jesús Luis Muros Cobos Sandra Rodríguez Valenzuela CATEGORÍA Tecnología PALABRAS

Más detalles