Introducción al tiempo real en sistemas empotrados

Slides:



Advertisements
Presentaciones similares
GRUPO DE ARQUITECTURAS PARALELAS X Jornadas de Paralelismo
Advertisements

Tabla de Contenido Concurrencia.
Laboratorio de Interacción Persona-Computador para Necesidades Especiales Behar Berezitarako Pertsona-Konputagailu-Elkarrekintza Laborategia Departamento.
Presentación general del curso
Introducción al tiempo real en sistemas empotrados
Los vegetales como aportación al cumplimiento del Protocolo de Kyoto Lab. Fisiología Vegetal. Dpto. Biología Vegetal y Ecología F. DE CIENCIA Y TECNOLOGÍA.
Congreso Nacional de Periodismo Digital
Sistemas Ubicuos 1. Introducción
Marketing Introducción al Capítulo 11
Introducción al tiempo real en sistemas empotrados
Sistemas Ubicuos (Parte I) 2. Arquitecturas para sistemas ubicuos
Redes y Servicios Telemáticos
Tecnologías de soporte para e-learning UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA UNIVERSITARIA DE INFORMÁTICA Departamento de Organización y Estructura.
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Sistemas Ubicuos 4. Descubrimiento.
Introduccion a las Redes e Internet Rolando Simon Titiosky Ingeniero en Sistemas de información (UTN) Especialista.
Ingeniería en Computación Dr. Ignacio Algredo Badilo
¿ Qué formación y competencias deben adquirir los profesionales en el área de la Potencia y Energía Eléctrica que egresarán de la Universidad? Departamento.
sisOpe Presentación Curso 13/14
ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES II
Sistemas Ubicuos 5. Contexto e interacción inteligente
Comunicación y sincronización entre procesos
Sistemas Ubicuos 2. Dispositivos ubicuos
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Control de procesos y sincronización.
Unidad 2: Comunicación entre Procesos (1ra parte)
Unidad 2: Procesos e Hilos (Threads)
M.C. Juan Carlos Olivares Rojas
UPV - EHU MOISE Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Introducción al tiempo real.
Sistemas Operativos ISI, III Nivel, 4hs. UTN FRD ISI, III Nivel, Sistemas Operativos, Lic. Guillermo Cherencio.
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
“La docencia de las clases prácticas en las asignaturas de Arquitectura de Ordenadores y Sistemas Operativos” en la Universidad Politécnica de Valencia.
1 Consigna 2006 UPV/EHU Consigna David Fernández Acin CIDIR Bizkaia Euskal Herriko Unibertsitatea / Universidad del País Vasco XXII.
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Sistemas Ubicuos 3. Plataformas y.
Introducción a los SSOO Sebastián Sánchez Prieto.
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Sistemas Concurrentes: el problema de la exclusión mutua I.T. Informática de Sistemas Curso
Diseño e Implementación de un Sistema de Tiempo Real Distribuido
Universidad de Alcalá “Con pasado, presente y futuro” Patrimonio de la Humanidad.
10 y 11 de mayo de 2006 Escuela Universitaria Politécnica de Donostia-San Sebastián máquinas y motores térmicos.
FIUBA Dispositivos de Internetworking - M. Utard - 11/9/09 Pag. 1 Materia Redes de Computadoras Departamento de Electrónica Facultad de.
Euskal Herriko Unibertsitatea Universidad del País Vasco Euskal Herriko Unibertsitatea LIPCNE-BBPKEL Las interfaces inteligentes: multimedia e hipermedia.
Evaluación y modelado del rendimiento de los sistemas informáticos Xavier Molero, Carlos Juiz, Miguel Rodeño Prentice Hall, 2004 ISBN
Euskal Herriko Unibertsitatea Universidad del País Vasco Euskal Herriko Unibertsitatea LIPCNE-BBPKEL Soporte tecnológico a la Comunicación Aumentativa.
Arquitectura de Computadores I II19
sisOpe Presentación Curso 14/15
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Sistemas Ubicuos 3. Gestión del contexto.
Técnicas de seguridad. Limitar el acceso físico Integridad y acceso al cable. Acceso a los extremos (ordenadores, conectores, etc.)
M.C. Juan Carlos Olivares Rojas
Arquitectura de la Empresa
Capítulo 5 El procesador Félix García Carballeira Jesús Carretero Pérez José Daniel Sánchez García David Expósito Singh © Ediciones Paraninfo1.
Euskal Herriko Unibertsitatea Universidad del País Vasco Euskal Herriko Unibertsitatea LIPCNE-BBPKEL Soporte a personas dependientes mediante computación.
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Sistemas Ubicuos 2. Dispositivos.
Introducción al tiempo real en sistemas empotrados
Gestión de Procesos Gestión de Procesos Procesos Planificación CPU
Sistemas Concurrentes I.T. Informática de Sistemas Curso
Tema 9.6: Sincronización de Procesos
Arquitectura de computadores
Sistemas Operativos Ingeniería en Computación M.C. J Jesús Arellano Pimentel Ciclo Escolar B.
ICC243 Sistemas Operativos
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Sistemas Ubicuos 5. Contexto
1.1 Silberschatz, Galvin y Gagne ©2002 Sistems Operativos – 6ta. Edición Capítulo 1: Introducción ¿Qué es un sistema operativo? Sistemas Operativos por.
[ Sistemas Operativos ] Präsentat ion Universidad de Magallanes Facultad de Ingeniería Departamento de Ingeniería en Computación MIC3181 INTRODUCCIÓN Eduardo.
[ Sistemas Operativos ] Präsentat ion Universidad de Magallanes Facultad de Ingeniería Departamento de Ingeniería en Computación MIC3181 Representación.
Kernel Para PDA Con Soporte a Procesos De Tiempo Real Francisco Javier Zuluaga Ramírez Asesor: Dr. Pedro Mejía Álvarez.
BACHILLERATO CIENCIAS Y TECNOLOGIA.
TABLÓN DE ANUNCIOS Normas del Curso Tutorías Notas Exámenes sisOpePresentaciónCurso 15/16 Departamento: Sistemas Informáticos (Bloque.
Introducción a las redes de computadores
SISTEMAS DE INFORMACIÓN TECNOLOGÍAS DE LOS SISTEMAS DE INFORMACIÓN Y SOPORTES LÓGICOS DE INFORMACIÓN Ing. Rodolfo Spagnuolo.
Practicum integrado en el Grado de Enfermería
UPV / EHU MOISE Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Introducción al tiempo real.
Transcripción de la presentación:

Introducción al tiempo real en sistemas empotrados Master en Ingeniería de Sistemas Empotrados Departamento de Arquitectura y Tecnología de Computadores Universidad del País Vasco / Euskal Herriko Unibertsitatea Introducción al tiempo real en sistemas empotrados Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Contenido Introducción Soporte de interrupciones Conceptos de sistemas operativos Planificación en sistemas de tiempo real Mecanismos de sincronización y comunicación Planificación de tiempo real con recursos compartidos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Mecanismos de sincronización y comunicación CONTENIDO Recursos compartidos. Secciones críticas Mecanismos de sincronización Comunicación por paso de mensajes Inanición e interbloqueo BIBIOGRAFIA A. Lafuente: Sistemas Operativos II. Apuntes de la asignatura. Edición 2008-09, http://www.sc.ehu.es/acwlaroa/SO2.htm. Capítulo 2. S. Sánchez Prieto: Sistemas Operativos. Universidad de Alcalá de Henares, Servicio Editorial, 2005. A. Silberschatz, P. Galvin, G. Gagne: Conceptos de Sistemas Operativos (7a edición). Willey, 2006. A.S. Tanenbaum: Modern Operating Systems (3rd edition). Prentice-Hall, 2008. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Recursos compartidos En un sistema operativo (o de tiempo real) los procesos (tareas) compiten por el uso a recursos compartidos. El acceso al recurso se realiza mediante la ejecución de un trozo de código. Ejemplo: Recurso compartido: buffer fifo Código de acceso al buffer: … R <- cuenta; buffer[R] <- elemento; R <- R+1; cuenta <- R; Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Recursos compartidos Acceso concurrente Ejemplo de ejecución: Dos procesos, P1 y P2, ejecutan concurrentemente el código de acceso al buffer compartido Inicialmente, cuenta=7 P1 P2 R <- cuenta; buffer[R] <- elemento; R <- R+1; cuenta <- R; R=7 R=7 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Recursos compartidos Condiciones de carrera Condición de carrera Ambos procesos almacenan su elemento en la misma posición del buffer P1 P2 R <- cuenta; buffer[R] <- elemento; R <- R+1; cuenta <- R; R=7 R=7 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Secciones críticas En el acceso concurrente a recursos compartidos, las condiciones de carrera conducen a comportamientos incorrectos. ¿Cómo evitar condiciones de carrera? El trozo de código que controla el acceso a recursos compartidos es una sección crítica de código. Hay que proporcionar acceso exclusivo a las secciones críticas. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Acceso exclusivo a secciones críticas de código P1 Entrar_SC(SC_buf); R <- cuenta; buffer[R] <- elemento; R <- R+1; cuenta <- R; Dejar_SC(SC_buf); P2 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Secciones críticas Modelo de sección crítica Protocolo genérico de acceso a una sección crítica: Entrar_SC(la_SC) /* Solicitud de ejecutar la_SC */ /* código de la_SC */ Dejar_SC(la_SC) /* Otro proceso puede ejecutar la_SC */ Un proceso que va a ejecutar la SC: Ejecuta Entrar_SC(). Si la SC está ocupada, el proceso espera. Ejecuta la SC. Ejecuta Dejar_SC(), permitiendo que entre uno de los procesos en espera. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Secciones críticas Propiedades El acceso a una sección crítica debe poseer las siguientes propiedades: Exclusión mutua. No puede haber más de un proceso simultáneamente en la SC. No interbloqueo. Ningún proceso fuera de la SC puede impedir que otro entre a la SC. No inanición. Un proceso no puede esperar por tiempo indefinido para entrar a la SC. Independencia del hardware. No se pueden hacer suposiciones acerca del número de procesadores o de la velocidad relativa de los procesos. Suposición: las instrucciones del Lenguaje Máquina son atómicas y se ejecutan secuencialmente Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Secciones críticas Mecanismos de sincronización ¿Cómo espera un proceso para acceder a una SC ocupada (paso 1 del protocolo)? Mecanismos de sincronización: El proceso ejecuta una espera activa (espera por ocupado). En sistemas monoprocesador suele utilizarse inhibición de interrupciones. El proceso se bloquea (espera por bloqueado). Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Mecanismos de sincronización Espera por ocupado En monoprocesadores: inhibición de interrupciones s= inhibir() /* Entrar_SC() */ /* Sección crítica */ desinhibir(s) /* Dejar_SC() */ Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Mecanismos de sincronización Espera por ocupado En multiprocesadores: cerrojos de espera activa lock(cerrojo_A) /* Entrar_SC() */ /* Sección crítica */ unlock(cerrojo_A) /* Dejar_SC() */ Implementación de lock() Por Sw: muy restrictivo (algoritmo de Decker) o ineficiente (Lamport). Instrucciones del Lenguaje Máquina que proporcionan consulta y modificación atómica sobre el cerrojo (tipo test_and_set). Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Mecanismos de sincronización Espera por ocupado Los mecanismos de espera por ocupado dependen del soporte (no cumplen la condición 4): La inhibición de interrupciones sólo es válida para monoprocesadores. La espera activa en monoprocesadores depende de la política de planificación: Con prioridades estáticas y expulsión, si una SC está ocupada por un proceso de prioridad baja, un proceso de prioridad alta que llegue a la SC ejecutaría espera activa indefinidamente e impediría al de prioridad baja liberarla (fenómeno de inversión de prioridad). Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Mecanismos de sincronización Espera por bloqueado El proceso que accede a una SC ocupada se bloquea. Implica un cambio de contexto, luego sólo es rentable si la SC es de largo plazo. El proceso bloqueado no consume CPU. El proceso que abandona la SC provoca que algún proceso en espera se desbloquee. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Mecanismos de sincronización Espera por bloqueado: semáforos Un semáforo es una abstracción que implementa espera por bloqueado proporcionando orden FIFO. Un semáforo lleva asociadas Una cuenta Una cola Primitivas sobre semáforos: bajar(sem) Si la cuenta de sem es positiva, se decrementa y el proceso continúa. Si la cuenta vale 0, el proceso se bloquea en la cola de sem. subir(sem) Si la cola de sem no está vacía, se desbloquea al primer proceso de la cola Si la cola está vacía, se incrementa la cuenta de sem. Primitiva para la inicialización de la cuenta. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Mecanismos de sincronización Espera por bloqueado: semáforos La inicialización del semáforo determina su utilización. Para controlar el acceso a una sección crítica se usa un semáforo inicializado a 1: bajar(sem); /* Sección crítica */ subir(sem); Si el semáforo se inicializa a n, permite gestionar el uso simultáneo de n recursos. Si se inicializa a 0, puede utilizarse como evento sobre el que esperar una notificación. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Mecanismos de sincronización Ejemplo struct semaf huecos, items; tipo_cerrojo mutex; ini_semaforo(huecos, N); ini_semaforo(items, 0); consumidor() { int elemento; while (1) { bajar(items); lock(mutex); retirar_elemento(&elemento); unlock(mutex); subir(huecos); consumir_elemento(elemento); } Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Mecanismos de sincronización Ejemplo (cont) productor() { int elemento; while (1) { producir_elemento(&elemento); bajar(huecos); lock(mutex); dejar_elemento(elemento); unlock(mutex); subir(items); } Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Comunicación por paso de mensajes En la comunicación por paso de mensajes, las propias primitivas incluyen la información a comunicar: enviar (p, mensaje) recibir (p, mensaje) La sincronización va implícita. El origen/destino de la comunicación especifica un puerto. Directa o indirectamente el puerto de comunicación identifica un elemento de de naturaleza FIFO (canal, buzón o mailbox). Los procesos (productores/consumidores de mensajes) se sincronizan con las condiciones de canal vacío y canal lleno. La longitud del canal es relevante para la forma de sincronización. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Ejemplo: paso de mensajes en Linux #define MI_FIFO “mi_fifo” int main (int argc, const char * argv[]) { int pid; char i, a= 'a'; FILE * fp; if (mkfifo(MI_FIFO, 0666)) exit(-1); pid= fork(); if (pid == 0) { if ((fp= fopen(MI_FIFO, "r")) == (FILE *)0) exit(-1); for(i=0; i<5; i++) printf("%d: Recibido (%c)\n", getpid(), getc(fp)); } else { if ((fp= fopen(MI_FIFO, "w")) == (FILE *)0) exit(-1); printf("%d: Soy el padre de %d\n", getpid(), pid); for(i=0; i<5; i++) putc(a+i, fp); fclose(fp); unlink(MI_FIFO); exit(0); Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Comunicación por paso de mensajes Implementación struct { tipo_cerrojo mutex; struct semaf huecos; struct semaf items; tipo_buffer buffer[N]; } buzon[N_BUZONES]; /* Inicialmente: */ for (i=0; i<N_BUZONES; i++) { ini_semaforo(buzon[i].huecos, N); ini_semaforo(buzon[i].items, 0); } Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Comunicación por paso de mensajes Implementación void enviar (int i, tipo_mensaje m) { bajar(buzon[i].huecos); lock(buzon[i].mutex); dejar_elemento(buzon[i].buffer, m); unlock(buzon[i].mutex); subir(buzon[i].items); } Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Comunicación por paso de mensajes Implementación void recibir (int i, tipo_mensaje m) { bajar(buzon[i].items); lock(buzon[i].mutex); tomar_elemento(buzon[i].buffer, m); unlock(buzon[i].mutex); subir(buzon[i].huecos); } Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Inanición e interbloqueo Aún con primitivas de exclusión mutua adecuadas, el acceso a recursos compartidos no está libre de problemas: Inanición: un proceso espera indefinidamente para entrar a la sección crítica. Posible escenario: Las primitivas de sincronización utilizan criterios de prioridad para seleccionar el siguiente proceso a entrar en la sección crítica. Interbloqueo: es una situación de reciprocidad en el acceso a recursos múltiples. Un conjunto de procesos está interbloqueado cuando cada proceso está esperando por un recurso que está siendo usado por otro proceso del conjunto. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Inanición e interbloqueo Escenario para un interbloqueo El siguiente código puede conducir a un interbloqueo entre P1 y P2 Proceso P1 Proceso P2 ... ... bajar(R1); bajar(R2); bajar(R2); bajar(R1); subir(R2); subir(R1); subir(R1); subir(R2); SC R1 SC R2 SC R2 SC R1 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Inanición e interbloqueo Modelo del interbloqueo Grafo de asignación de recursos a procesos p3 solicita r1: el ciclo en el grafo denota un interbloqueo. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Inanición e interbloqueo Condiciones para el interbloqueo Un interbloqueo sólo puede producirse si en el sistema se cumplen todas y cada una de las condiciones siguientes: Exclusión mutua. En todo momento, cada recurso, o está asignado a un proceso, o está libre. Retención y espera. Un proceso que está utilizando un recurso ri puede solicitar otro recurso rj antes de liberar ri. No expulsión. Un proceso no puede ser forzado a liberar un recurso. Espera circular. Existe un conjunto de procesos PD entre los que se define un círculo de espera por recursos que están siendo usados Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Inanición e interbloqueo Soluciones al interbloqueo Dos enfoques: Políticas paliativas: El Algoritmo del Avestruz Detección y eliminación Políticas preventivas: Prevención de interbloqueos Predicción de interbloqueos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Inanición e interbloqueo Soluciones al interbloqueo Algoritmo del Avestruz No hacer nada Detección y eliminación Detectar cuando ocurra un interbloqueo Manteniendo un grafo de asignación o mediante otros indicios. Una vez detectado, tratar de eliminarlo Eliminando alguno de los procesos involucrados. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Inanición e interbloqueo Soluciones al interbloqueo Prevención Si el sistema impide alguna de las condiciones para el interbloqueo, estos no se producirán. En general, resulta muy restrictivo. Se puede proponer como metodología. Por ejemplo, asignar recursos por conjuntos (para eliminar la condición 2) o en un orden determinado (condición 4). Predicción Se definen estados seguros e inseguros. Los estados inseguros son los que pueden conducir a interbloqueos y se evitan denegando el acceso a recursos libres. Algoritmo del banquero. Computacionalmente complejo y muy restrictivo. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores

Inanición e interbloqueo Predicción de interbloqueos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores