Programación Concurrente



Documentos relacionados
Práctica 1: (Tema 2) Instalación de MaRTE OS

TEMA 8. SISTEMAS OPERATIVOS PARA TIEMPO REAL.

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

Unidad 1: Conceptos generales de Sistemas Operativos.

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

Administración UNIX: Introducción

Introducción. Sistemas Operativos. Pedro Chávez Lugo 23 de marzo de 2010

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

Procesos. Bibliografía. Threads y procesos. Definiciones

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

Cómo instalar un sistema operativo en VirtualBox

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

INFORME TÉCNICO ADQUISICIÓN DE LICENCIA DE SOFTWARE PARA VIRTUALIZACION

Global File System (GFS)...

INF 473 Desarrollo de Aplicaciones en

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

CAPÍTULO 3: Resultados

Soluciones innovadoras para optimizar su infraestructura TI. Virtualización con el sistema operativo i, PowerVM y Power Systems de IBM

Programación Concurrente

Tema 1. Introducción a JAVA

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

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

Entorno de Programación Visual Studio 6

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas

Maquinas virtuales Conceptos Básicos

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

Virtualización - Que es?

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

Nuevas tendencias: Virtualización de computadores / servidores

Manual de Instalación

CAPÍTULO 1 Instrumentación Virtual

UT04 01 Máquinas virtuales (introducción)

SISTEMAS OPERATIVOS. Instalación de los sistemas operativos basado en UNIX- LINUX TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN MSC.

Gestión de Recursos y Seguridad en Redes Virtualización de Servidores, VMware. Derman Zepeda Vega. dzepeda@unan.edu.ni

CONFIGURACIÓN DEL ADAPTADOR DE RED EN LINUX

Curso de Administración de Servidores GNU/Linux

MACROPROCESO GESTIÓN TECNOLÓGICA

Tema 1. Conceptos fundamentales de los Sistemas Operativos

MF0964_3 Desarrollo de Elementos Software para Gestión de Sistemas

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

Especificaciones de la oferta Administración de dispositivos distribuidos Administración de activos

Ventajas de Linux para. las empresas

Programación de Sistemas

PROVIAS NACIONAL INFORME TÉCNICO DE EVALUACIÓN DE SOFTWARE Nº MTC/ NOMBRE DEL ÁREA: Unidad de Informática

Tema 6. Gestión de la memoria

IES Abyla. Departamento de Informática. Sistemas Operativos

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

Windows Server 2012: Infraestructura de Escritorio Virtual

CFGM. Servicios en red. Unidad 5 Servicio FTP. 2º SMR Servicios en Red

Introducción a los Sistemas Operativos

Instituto Schneider Electric de Formación

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva


Herramientas hardware y software para el desarrollo de aplicaciones con Microcontroladores PIC bajo plataformas GNU/Linux

Conceptos Básicos de Software. Clase III

Diseño de aplicaciones móviles seguras en Android.

Diseño, Desarrollo e Implementación de una Aplicación Web para el manejo Centralizado de la Información Corporativa en AGA Consultores

Introducción al.net Framework. Introducción al.net Framework. Diseño Basado en Componentes. Curso 2008 / 09. Diseño Basado en Componentes

Sistema Operativo Linux

1. Introducción 2. Historia 3. Características clave 4. Cuestiones de diseño

PROGRAMA FORMATIVO ADMINISTRACIÓN AIX (IBM UNIX) PARA POWER SYSTEM.

Traslado de Data Center

INDICE. Prefacio Parte 1: sistemas operativos tradicionales

Capítulo 1 Introducción a la Computación

LABORATORIO 2. La biblioteca a nivel de usuario semso (semáforos Sistemas Operativos) brinda las siguientes primitivas:

MS_20488 Developing Microsoft SharePoint Server 2013 Core Solutions

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Agente local Aranda GNU/Linux. [Manual Instalación] Todos los derechos reservados Aranda Software [1]

UNIVERSIDAD AUTÓNOMA DEL CARIBE

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

Estructuras de Sistemas Operativos

Fundamentos de Sistemas Operativos

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

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

Capítulo 6 Introducción a los Sistemas Operativos de Redes (NOS)

Módulo 2. Inicio con Java

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Tema 3. Introducción a la configuración de un PC

Módulos: Módulo 1. El núcleo de Linux - 5 Horas

El tema de esta presentación es los conceptos básicos relacionados con Sistemas Operativos.

Luis Caballero Cruz. Ingeniería Técnica Informática de Sistemas. Universidad de Sevilla

Usar Configuración del sistema (msconfig)

Universidad Mayor de San Andrés Facultad de Ciencias Puras y Naturales Carrera de Informática. ired. Sistema de Inventario de Red

Modelo de aplicaciones CUDA

Alcatel-Lucent VitalQIP Appliance Manager

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

Virtualización. Carlo López Armando Mejía Andrés Sánchez

Tecnología de software para sistemas de tiempo real

picojava TM Características

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES

Software Libre / Código Abierto Programa de contenidos

E-learning: E-learning:

MÁSTER ONLINE EN ADMINISTRACIÓN LINUX

Windows Server Windows Server 2003

Transcripción:

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 de Threads Tema 6. Sincronización Tema 7. Señales Tema 8. Temporizadores y Relojes de Tiempo de Ejecución Programación Concurrente oct.-13 1 2.1. Sistemas operativos de tiempo real 2.2. Uso de para Tiempo Real 2.3. con doble núcleo 2.4. Mercado de los RTOSs 2.5. MaRTE OS Programación Concurrente oct.-13 2 En el pasado, muchos sistemas de tiempo real no necesitaban sistema operativo Hoy en día, muchas aplicaciones requieren servicios de sistema operativo tales como: programación concurrente, redes de comunicación, sistema de ficheros, etc. El comportamiento temporal de un programa depende fuertemente del comportamiento del sistema operativo Durante el curso utilizaremos los sistemas operativos MaRTE OS Programación Concurrente oct.-13 3

Características de los RTOS Los S.O. de Tiempo Real (RTOS) tienen características especiales ya que su comportamiento temporal afecta al de la aplicación S.O. de Tiempo Compartido vs. RTOS: S.O. de Tiempo Compartido RTOS Capacidad Potencia de cálculo Planificabilidad Respuesta Temporal Rápida respuesta en promedio Respuesta de peor caso garantizada Sobrecarga Reparto Equitativo Estabilidad Según el estándar POSIX la definición de tiempo real en sistemas operativos es: La habilidad del sistema operativo para proporcionar el nivel de servicio requerido con un tiempo de respuesta acotado. Programación Concurrente oct.-13 4 Limitaciones para TR de los SOs convencionales No tienen políticas y protocolos de tiempo real Tiempos de respuesta no acotados para algunos servicios planificador O(n) memoria dinámica... Swapping Latencia a interrupciones no acotada un driver mal escrito puede deshabilitar interrupciones por un intervalo de tiempo arbitrariamente grande IRQs compartidas Baja resolución del temporizador (p.e. 10ms) Uso de spinlocks Programación Concurrente oct.-13 5 2.2 Uso de para Tiempo Real 2.2 Uso de para Tiempo Real es un sistema operativo ampliamente utilizado (PCs, supercomputadores, servidores,...) este auge condujo a su utilización también en TR originalmente con muchas limitaciones Mejoras en el núcleo 2.6 para eliminar las limitaciones para TR: mayor grado de implementación de la interfaz POSIX de TR mayor grado de expulsión en las llamadas al sistema planificador O(1) posibilidad de deshabilitar la memoria virtual... Parches aún no incluidos en las distribuciones estándares "Complete Preemption Patch" Programación Concurrente oct.-13 6

2.2 Uso de para Tiempo Real Uso de para Tiempo Real (cont.) Cualquier distribución incluye el kernel 2.6: Ubuntu, Fedora, opensuse, Debian, etc. Distribuciones comerciales para tiempo real - Red Hat Enterprise MRG Realtime - SUSE Enterprise Real Time Extension El núcleo 2.6 con el Complete Preemtion Patch - permite utilizar en aplicaciones de tiempo real laxo Aún así sigue teniendo importantes limitaciones: - servicios con respuesta no acotada (memoria dinámica) - drivers mal escritos para TR El esfuerzo de adaptación de a TR parece que va a continuar alcanzará la conformidad con el perfil de Sistema de Tiempo Real Multi-Propósito en los próximos años? Programación Concurrente oct.-13 7 2.3 con doble núcleo 2.3 con doble núcleo Arquitecturas basadas en doble núcleo micronúcleo que se incrusta en el núcleo de asume el control de las interrupciones hardware Wind River Real-Time Core for, RT Free Arquitecturas de doble núcleo basadas en virtualización La virtualización da preferencia al micronúcleo de tiempo real RTAI, Xenomai (utilizan Adeos) En ambos casos los threads con requisitos de tiempo real ejecutan bajo el control del micronúcleo - con preferencia sobre cualquier aplicación de Apropiado para aplicaciones con requisitos de TR estricto únicamente para los threads controlados por el micronúcleo Programación Concurrente oct.-13 8 Arquitectura de doble núcleo 2.3 con doble núcleo Navegador Espacio de direcciones del usuario Interfaz del SO Editor de texto Espacio de direcciones del núcleo Compilador T1 T2 otras... T3 Threads de tiempo real Manejadores de Dispositivos Máquina virtual API POSIX micronúcleo Planificador de tiempo real Hardware Programación Concurrente oct.-13 9

2.4 Mercado de los RTOSs 2.4 Mercado de los RTOSs VxWorks, Debian, Red Hat y QNX (entre otros) soportan el estándar POSIX Programación Concurrente oct.-13 10 Características principales: Conforme con el perfil mínimo - Concurrencia a nivel de threads Todos los servicios tienen tiempos de respuesta acotados - también acotada la latencia de atención a interrupciones Único espacio de direcciones compartido por el núcleo y la aplicación Núcleo monolítico Escrito en Ada (pequeñas partes en C y ensamblador) Permite ejecutar aplicaciones concurrentes C, C++ y Ada Portable a diferentes plataformas (x86, MC68332 y ) Desarrollado en el grupo CTR. Código libre (GPL): http://marte.unican.es Programación Concurrente oct.-13 11 Entorno de desarrollo En un RTOS debemos diferenciar los siguientes aspectos: núcleo (o kernel) del sistema operativo librerías y drivers entorno de desarrollo El entorno de desarrollo es un conjunto de herramientas para: editar compilar y enlazar depurar realizar medidas temporales diseñar y analizar la aplicación cargar la aplicación (sistemas empotrados)... Programación Concurrente oct.-13 12

Entorno de desarrollo cruzado Los sistemas operativos de tiempo real se usan principalmente en aplicaciones empotradas utilizan un entorno de desarrollo cruzado Equipo de desarrollo ejecuta el entorno de desarrollo Equipo empotrado ejecuta la aplicación Programación Concurrente oct.-13 13 Entorno de desarrollo cruzado (Arquitectura x86) Entorno cruzado:. Host: PC con Target: PC desnudo Equipo de Desarrollo Ethernet (Descarga de la aplicación) Creación de aplicaciones: Basada en GCC y GNAT mgcc y mgnatmake $ mgcc -g fich.o prog.c $ mgnatmake prog.adb Carga de la aplicación: Ethernet Dispositivo de arranque GNAT GCC GDB MaRTE OS: Núcleo Librerías Herramientas RS-232 (depuración) Equipo Empotrado procesador 386 o superior Dispositivo de arranque (Disquete, Flash,...) Programación Concurrente oct.-13 14 Entorno de desarrollo cruzado (Arquitectura x86) #include <stdio.h> int main() { printf ("Hola"); return 0; } Computador de desarrollo Computador de ejecución (cont.) Etherboot carga de la aplicación compilación Código objeto Núcleo MaRTE OS Drivers Librerías MaRTE OS Inicialización plataforma Programa Ejecutable enlazado Ethernet Inicializa el sistema Programa Ejecutable Ejecuta programa del usuario Programación Concurrente oct.-13 15

Arquitecturas "x86" y " Lib" Aplicación C Interfaz POSIX-C (ficheros *.h) Aplicación C Ficheros *.h de MaRTE OS (POSIX Threads) *.h Interfaz POSIX Núcleo de MaRTE OS Interfaz Abstracta con el Hardware (PC) Librería estándar C (libmc) Drivers de Dispositivos Interfaz POSIX Núcleo de MaRTE OS Interfaz Abstracta con el Hardware () Librerías (libc y otras) PC con procesador 386 o superior Aplicación C ejecutando sobre MaRTE OS para PC Aplicación C ejecutando sobre MaRTE OS para File System Programación Concurrente oct.-13 16 Generación de aplicaciones (Arquitectura "_lib") #include <stdio.h> int main() { printf ("Hola"); return 0; } compilación Código objeto Enlazado Programa ejecutable (a.out) Núcleo de MaRTE OS: - Threads - Variables condicionales - Mutexes - Señales - Relojes y temporizadores $ a.out Hola $ ejecución libc libm Librerías estándar de otras... Programación Concurrente oct.-13 17 Limitaciones de la arquitectura " Lib" No se puede lograr comportamiento de tiempo real estricto Aplicaciones controladas por el planificador de Afectadas por swapping, otras actividades del núcleo de, etc. Medida del tiempo de ejecución de las tareas No se tienen en cuenta los cambios de contexto con otros procesos Operaciones de E/S bloqueantes Cuando un thread se bloquea se bloquea toda la aplicación Programación Concurrente oct.-13 18

Descarga e Instalación de MaRTE OS Descarga de http://marte.unican.es (sección Downloads ) Instalación (seguir las instrucciones del fichero INSTALL ): 1. Instalar la versión apropiada del compilador GNAT 2. Instalar MaRTE OS No son necesarios permisos de administrador Programación Concurrente oct.-13 19