Sistemas en tiempo real (STR)

Slides:



Advertisements
Presentaciones similares
GESTION DE PROCESOS.
Advertisements

TEMA 1 Introducción a la Programación Concurrente
Tipos de Organización ... La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid.
Sistema operativo Componentes de un sistema operativo
III - Gestión de memoria
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
SISTEMAS OPERATIVOS Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas de usuario.
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Servicios Web.
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
Introducción al software
HISTORIA Y CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
Programación 1 Introducción
Programación Concurrente DAI - UNSAAC.
SISTEMAS OPERATIVOS UNIDAD 1..
ConceptoDefiniciónCaracterísticas (palabra clave) Ejemplo/Aplicación Sistema operativo Un sistema operativo es un software, es decir, forma parte de la.
Introducción a los SSOO Sebastián Sánchez Prieto.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
2. ASYNCRONOUS TRANSFER MODE 2.1Características generales 2.2 Modelo de referencia del protocolo 2.3 Categorías de servicio ATM.
Unidad III Administración de procesos
Ing. Karen Torrealba de Oblitas
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
SISTEMAS OPERATIVOS.
Programación I MC José Andrés Vázquez Flores
EL SISTEMA OPERATIVO.
INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.
Hilos En La Computación. (THREADS).
Características de un sistema operativo
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Gestión de Procesos Gestión de Procesos Procesos Planificación CPU
SISTEMAS OPERATIVOS.
Gestión de procesos Sistemas Operativos Edwin Morales
Programación secuencial vs programación concurrente
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
Sincronización de Procesos
Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro
Programación secuencial vs programación concurrente
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Introducción a los Sistemas Operativos
Administrador de procesos
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Informática III 2009 Ing. Estela D'Agostino 1 Programación secuencial vs programación concurrente Pascal, C, Fortran, Cobol Secuenciales único hilo de.
Facultad de Ingeniería
Estructura de los Sistemas Operativos
INTRODUCCION A SISTEMAS OPERATIVOS
Modelo de 3 capas.
Unidad 2 – Gestión de Procesos
Por Luis Esteban Monsalve Martínez
ARQUICTECTURA DE SERVIDORES
LIA. SUEI CHONG SOL, MCE..  1.- SOFTWARE BÁSICO O DE SISTEMA. Conjunto de programas imprescindibles para el funcionamiento del sistema.  2.- SOTWARE.
TIPOS DE PRUEBAS DEL SOFTWARE
UTFSM - Sistemas Operativos
INTERRUPCIONES – ABRAZO MORTAL
Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II.
Elementos y tipos de sistemas operativos
Funciones principales!
UNIDAD I INTRODUCCION A LOS S.O.
Introducción a los sistemas de tiempo real Informática III El tiempo es un tirano...
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
Curso: Fundamentos de Computación
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Harware Software Yuneidy moreno 7-2 Tecnología i. E. devora Arango.
SOFTWARE DE COMPUTADORAS
Transcripción de la presentación:

Sistemas en tiempo real (STR)

Sistemas en tiempo real (STR) Definición y características Concurrencia Comunicación y sincronización Variables compartidas Semáforos Monitores Métodos sincronizados Paso de mensajes

Definición de sistemas de tiempo real Cualquier actividad o proceso de información que tiene que responder a un estímulo de entrada generado externamente en un periodo finito y especificado (Young 1982). Un sistema de tiempo real es aquel al que se le solicita que reaccione a estímulos del entorno en intervalos de tiempo fijados por el entorno (Randell 1995). Informática III 2008 Ing. Estela D'Agostino

Sistemas de tiempo real Recibe eventos del entorno Responder de acuerdo a un comportamiento determinado y en un tiempo determinado Informática III 2008 Ing. Estela D'Agostino

Sistemas de tiempo real Componente de un sistema mayor Sistemas empotrados o embebidos Informática III 2008 Ing. Estela D'Agostino

Sistemas de tiempo real Resultados lógicos. Tiempo en el que se producen esos resultados. El tiempo en que se ejecutan las acciones del sistema es significativo Informática III 2008 Ing. Estela D'Agostino

Características de los STR (1) Complejos: Algunos sistemas tienen millones de líneas de código la variedad de funciones aumenta la complejidad incluso en sistemas relativamente pequeños Control concurrente de los distintos componentes del sistema: los dispositivos físicos controlados funcionan al mismo tiempo las tareas que los controlan actúan concurrentemente Informática III 2008 Ing. Estela D'Agostino

Características de los STR (2) Fiable y seguro: sistemas críticos: fallos con consecuencias graves pérdida de vidas humanas pérdidas económicas daños medioambientales Implementación eficiente: Son críticos respecto al tiempo, lo que implica que una implementación eficiente es importante Informática III 2008 Ing. Estela D'Agostino

Características de los STR (3) Interface con sistemas hardware: Los sistemas embebidos requieren que el software esté preparado para su interacción con el mundo exterior Funcionalidades de tiempo real: acciones en intervalos de tiempo determinados – es fundamental que el comportamiento temporal de los STR sea determinista o, al menos, previsible el sistema debe responder correctamente en todas las situaciones en los sistemas de tiempo real estricto hay que prever el comportamiento en el peor caso posible Informática III 2008 Ing. Estela D'Agostino

Otras características Los recursos están limitados – procesador, memoria, pantalla, etc. Los dispositivos de entrada y salida son especiales para cada sistema – no hay teclado ni pantalla normales El computador debe reaccionar a tiempo ante los cambios en el sistema físico. – una acción retrasada puede ser inútil o peligrosa Informática III 2008 Ing. Estela D'Agostino

Tipos de sistemas de tiempo real Estrictos (hard real time): las respuestas se deben producir en los tiempos especificados. (sistemas de control de vuelos) Realmente estrictos: los tiempos de respuestas son muy breves: (sistema de guía de misiles) No estrictos (soft real time): el tiempo es importante pero el sistema se degrada, aunque seguirá funcionando a pesar de que los tiempos no se cumplan estrictamente.(sistema de adquisición de datos). Informática III 2008 Ing. Estela D'Agostino

La mayoría de estos sistemas son concurrentes Aplicaciones Control de procesos. Fabricación (control de producción). Comunicación, mando y control. Reserva de pasajes aéreos Control de pacientes Control de tráfico La mayoría de estos sistemas son concurrentes Informática III 2008 Ing. Estela D'Agostino

Características de los STR Complejos. Control concurrente de distintos componentes del sistema Fiable y seguro Implementación eficiente Interface con sistemas hardware Funcionalidades de tiempo real Informática III 2008 Ing. Estela D'Agostino

Concurrencia Son la notación y las técnicas de programación que expresan el paralelismo potencial Un programa concurrente es un conjunto de procesos autónomos que se ejecutan en paralelo. Informática III 2008 Ing. Estela D'Agostino

Procesos concurrentes El trabajar con procesos concurrentes añade complejidad a la tarea de programar ¿cuáles son entonces los beneficios que aporta la programación concurrente? Informática III 2008 Ing. Estela D'Agostino

Beneficios de la programación concurrente Mejor aprovechamiento de la CPU Velocidad de ejecución Solución de problemas de naturaleza concurrente Sistemas de control Tecnologías web Aplicaciones basadas en interfaces de usuarios Simulación SGDB Informática III 2008 Ing. Estela D'Agostino

Proceso Es una instancia de ejecución de un programa. Tiene un ciclo de vida, es decir pasa por distintos estados. Informática III 2008 Ing. Estela D'Agostino

Ciclo de vida de un proceso No existente No existente nacido listo terminado ejecución Informática III 2008 Ing. Estela D'Agostino

Finalización de un proceso Finaliza la ejecución de su cuerpo. Ejecución de alguna sentencia de auto finalización. Condición de error sin tratar. Aborto por medio de la intervención de otro proceso. Nunca: procesos que se ejecutan en bloques que no terminan. Cuando ya no son necesarios. Informática III 2008 Ing. Estela D'Agostino

Implementación de un conjunto de procesos Multiplexar sus ejecuciones en un único procesador (multiprogramación). Multiplexar sus ejecuciones en un sistema multiprocesador con acceso a memoria compartida (multiprocesamiento) Multiplexar sus ejecuciones en diversos procesadores que no comparten memoria (sistema distribuído) Informática III 2008 Ing. Estela D'Agostino

Ejecución de un programa concurrente Los procesos deben ser creados, distribuidos en los procesadores y finalizados. Estas actividades la realiza el nucleo de ejecución conocido como Run Time System Support (RTSS). Se encarga de la creación, terminación y multiplexado de los procesos Informática III 2008 Ing. Estela D'Agostino

Run Time System Support Estructura software programada como parte de la aplicación (Modula-2). Sistema software generado junto al código objeto del programa por el compilador. (Ada y Java). Estructura hardware microcodificada en el procesador. Informática III 2008 Ing. Estela D'Agostino

Ejecución de los procesos Todos los SO tiene formas de crear procesos. Cada proceso se ejecuta en su propia maquina virtual. Los SO modernos permiten crear hilos (procesos ligeros) dentro de la misma máquina virtual. Informática III 2008 Ing. Estela D'Agostino

¿Quien provee los mecanismos de concurrencia? Sistema operativo (SO de Tiempo real) Lenguaje ( lenguaje que proporciona mecanismos para concurrencia) Informática III 2008 Ing. Estela D'Agostino

Ventajas si el lenguaje proporciona los mecanismos de concurrencia Programas más legibles Programas más portables Si el sistema es embebido puede que no tenga un SO residente Informática III 2008 Ing. Estela D'Agostino

Ventajas si el SO proporciona la concurrencia El modelo de concurrencia es el mismo para todos los lenguajes. Puede no ser fácil implementar el modelo de concurrencia sobre algún modelo de SO Informática III 2008 Ing. Estela D'Agostino

Representación de procesos Depende del lenguaje: Process Modula Task Ada Thread Java Informática III 2008 Ing. Estela D'Agostino

Programación concurrente Los lenguajes concurrentes tiene elementos para: Crear procesos concurrentes Sincronizar procesos Comunicar procesos Informática III 2008 Ing. Estela D'Agostino

Comportamiento de procesos Independientes: no se sincronizan ni comunican. (son muy raros) Cooperativos: se comunican y sincronizan sus actividades. Competitivos: compiten por recursos del sistema. Informática III 2008 Ing. Estela D'Agostino

Sincronizar y Comunicar Sincronizar: Satisfacer las restricciones en el enlazado de las acciones de los distintos procesos. Comunicar: pasar información de un proceso a otro. Informática III 2008 Ing. Estela D'Agostino

Sincronizar y Comunicar Variables compartidas: objetos a los que puede acceder más de un proceso Paso de mensajes: intercambio explícito de datos entre dos procesos mediante el paso de un mensaje mediante alguna forma que brinda el SO o el propio lenguaje. Informática III 2008 Ing. Estela D'Agostino

Variables compartidas Son objetos a los que puede acceder mas de un proceso. La comunicación se logra accediendo a dichas variables cuando sea necesario Problemas cuando se quiere por ejemplo actualizar el valor de una variable compartida: X=x+1 Esto no es una operación indivisible Cargar en un registro el valor de X Icrementar el valor Almacenar el valor Trae problemas Informática III 2008 Ing. Estela D'Agostino

Mensajes El intercambio de mensajes implica el paso explícito de datos entre un proceso y otro. Esto se realiza mediante algún mecanismo Informática III 2008 Ing. Estela D'Agostino

Variables compartidas Considere dos procesos que actualizan una variable compartida, X, mediante la sentencia: X:= X+1 Carga el valor de X en algún registro. Incrementa el valor en el registro en 1. Almacena el valor del registro de nuevo en X. Como ninguna de las tres operaciones es indivisible, dos procesos que actualicen la variable simultáneamente generarían un entrelazamiento que podría producir un resultado incorrecto. Informática III 2008 Ing. Estela D'Agostino

Variables compartidas Las partes de un proceso que tienen acceso a las variables compartidas han de ejecutarse indivisiblemente unas respecto a las otras. Estas partes se denominan secciones críticas. La protección requerida se conoce como exclusión mutua. Informática III 2008 Ing. Estela D'Agostino

Variables compartidas Sección crítica: secuencia de instrucciones que debe ejecutarse sin perder el control, y afecta variables compartidas. Si un proceso esta ejecutando código de su sección crítica, ningún otro proceso puede estar ejecutando código de su sección crítica Informática III 2008 Ing. Estela D'Agostino

Sincronizaciones necesarias en la programación concurrente Exclusión mutua: es el mecanismo que asegura que solo un proceso está haciendo algo en un instante determinado. Sincronización para proteger una sección crítica. Es necesario si dos procesos comparten variables. Sincronización condicionada: necesaria cuando un proceso necesita realizar alguna acción, solo después que se haya cumplido una condición. Informática III 2008 Ing. Estela D'Agostino

Sincronización de condición Utilización de buferes: productor / consumidor Son aquellos problemas en los que existe un conjunto de procesos que producen información que otros procesos consumen, siendo diferentes las velocidades de producción y consumo de la información. Este desajuste en las velocidades, hace necesario que se establezca una sincronización entre los procesos de manera que la información no se pierda ni se duplique, consumiéndose en el orden en que es producida. Informática III 2008 Ing. Estela D'Agostino

Variables compartidas Semáforos Monitores tipos protegidos Metodos sincronizados Informática III 2008 Ing. Estela D'Agostino

Semáforos Introdujo Dikstra en 1968. Permite resolver la mayoría de los problemas de sincronización entre procesos y forma parte del diseño de muchos sistemas operativos y de lenguajes de programación concurrentes. Informática III 2008 Ing. Estela D'Agostino

Semáforos binarios Es un indicador de condición que registra si un recurso está disponible o no. Solo puede tomar dos valores (semáforo binario): 1: recurso disponible 0: recurso no disponible Se le asocia una cola de tareas. Informática III 2008 Ing. Estela D'Agostino

Semáforos Sólo se permiten tres operaciones sobre un semáforo: inicializa (S: SemaforoBinario; v: integer) Poner el valor del semáforo S al valor de v (0 o 1) • espera (S) (wait(s)) if S = 1 then (hacer lo que deba hacer) S := 0 else suspender la tarea que hace la llamada y ponerla en la cola de tareas • señal (S) (signal(s)) if la cola de tareas está vacía then S := 1 else reanudar la primera tarea de la cola de tareas Informática III 2008 Ing. Estela D'Agostino

Sincronización de condición con semáforos var S : semaforo (inicialmente en 0) process p1 .......... wait(S); //espera hasta que S=1 end p1; process p2 .............. signal(S); end p2; El uso de wait y signal se da en dos procesos por separado. En uno se ejecuta wait y en el otro signal. Informática III 2008 Ing. Estela D'Agostino

Exclusión mutua con semáforos var mutex : semaforo; (inicialmente a 1) process p1 loop wait(mutex) (mutex =1 entra seccion critica) <seccion critica> signal(mutex); <seccion no critica> end endp 1; var mutex : semaforo; (inicialmente a 1) process p2 loop wait(mutex) <seccion critica> signal(mutex); <seccion no critica> end endp 2; wait: se usa como operación de bloqueo signal: se usa como operación de desbloqueo Informática III 2008 Ing. Estela D'Agostino

Semáforos para proteger un conjunto de recursos En caso que exista un conjunto de recursos similares, se puede usar una versión más general de semáforo que lleve la cuenta del número de recursos disponibles. En este caso el semáforo se inicializa con el número total de recursos disponibles (N) y las operaciones de espera y señal se diseñan de modo que se impida el acceso al recurso protegido por el semáforo cuando el valor de éste es menor o igual que cero. Informática III 2008 Ing. Estela D'Agostino

Características de los semáforos Los semáforos tienen algunas características que pueden generar incovenientes: las variables compartidas son globales a todos los procesos. las acciones que acceden y modifican dichas variables están diseminadas por los procesos. para poder decir algo del estado de las variables compartidas, es necesario mirar todo el código. la adición de un nuevo proceso puede requerir verificar que el uso de las variables compartidas es el adecuado. Programas poco escalables Informática III 2008 Ing. Estela D'Agostino

Críticas a los semaforos Si el semáforo se ubico en un lugar erróneo falla y estamos en presencia de un sistema en tiempo real, falla el programa completo No se garantiza la exclusión mutua Posible solución : monitores Informática III 2008 Ing. Estela D'Agostino

Monitores Es un conjunto de procedimientos que proporciona el acceso con exclusión mutua a un recurso o conjunto de recursos (datos o dispositivos) compartidos por un grupo de procesos. Los procedimientos van encapsulados dentro de un módulo que tiene la propiedad especial de que sólo un proceso puede estar activo cada vez para ejecutar un procedimiento del monitor. Informática III 2008 Ing. Estela D'Agostino

Características de un monitor Es un TAD: uso independiente de la implementación. el usuario no conoce la implementación. nada se sabe del orden en que se van a invocar acciones del monitor. por lo que necesita una correcta especificación. Informática III 2008 Ing. Estela D'Agostino

Funcionamiento de un monitor Respecto a la sincronización: la exclusión mutua se asegura por definición: por lo tanto, sólo un proceso puede estar ejecutando acciones de un monitor en un momento dado. aunque varios procesos pueden en ese momento ejecutar acciones que nada tengan que ver con el monitor Informática III 2008 Ing. Estela D'Agostino

Funcionamiento de un monitor la sincronización condicionada: cada proceso puede requerir una sincronización distinta, por lo que hay que programar cada caso. para ello, se usarán las variables “condición”: se usan para hacer esperar a un proceso hasta que determinada condición sobre el estado del monitor se “anuncie” también para despertar a un proceso que estaba esperando por su causa Informática III 2008 Ing. Estela D'Agostino

Monitores Existe necesidad de sincronización de condición. Se maneja con dos operadores que se llaman wait y signal. Informática III 2008 Ing. Estela D'Agostino

Monitores Un wait siempre bloquea y se ubica en una cola asociada a esa variable de condición. Cuando un proceso bloqueado libera su bloqueo permitirá ingresar a otro proceso. Cuando un proceso ejecuta una operación signal, liberará un proceso bloqueado. Informática III 2008 Ing. Estela D'Agostino

Críticas a monitores Solución elegante a problemas de exclusión mutua. No soluciona bien las sincronizaciones de variables de condición. Informática III 2008 Ing. Estela D'Agostino

Métodos sincronizados Es el concepto de monitor implementado en el paradigma de Orientación a Objetos Se utilizan en como Java, que tiene la concurrencia totalmente integrada. Informática III 2008 Ing. Estela D'Agostino

Métodos sincronizados Los métodos se califican con el modificador synchronized. Puede existir también synchronized a nivel de bloque. Informática III 2008 Ing. Estela D'Agostino

Paso de mensajes Se necesita un proceso emisor y uno receptor. Información para intercambiar. Operaciones básicas son: Enviar (mensaje) Recibir (mensaje) Informática III 2008 Ing. Estela D'Agostino

Paso de mensajes Se debe establecer un enlace entre receptor y emisor: Modelo de sincronización Como nombrar los procesos Estructura del mensaje Informática III 2008 Ing. Estela D'Agostino

Modelo de sincronización Sincronización implícita: un proceso no puede recibir un mensaje antes que el emisor lo haya emitido. Asíncrona: el emisor continua sin saber si el mensaje llegó o no Síncrona: el emisor continua solo cuando se recibió el mensaje Invocación remota: el emisor continua sólo cuando se recibió una respuesta desde el receptor Informática III 2008 Ing. Estela D'Agostino

Nombrado de procesos Simetría: Dirección: nombrado directo: envía <msj> <proceso> nombrado indirecto: envía <msj> <buzón> Simetría: simétrico:si el emisor y el receptor se pueden nombrar entre sí envía <msj> <proceso> espera <msj> <proceso> asimétrico: espera <msj> Informática III 2008 Ing. Estela D'Agostino

Estructura del mensaje Idealmente: cualquier objeto. Cada lenguaje ha impuesto sus restricciones. Informática III 2008 Ing. Estela D'Agostino