1 / 61

Sistemas en tiempo real (STR)

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.

selia
Download Presentation

Sistemas en tiempo real (STR)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas en tiempo real (STR)

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

  3. 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). Ing. Estela D'Agostino

  4. Sistemas de tiempo real Sistema Recibe eventos del entorno Responder de acuerdo a un comportamiento determinado y en un tiempo determinado Ing. Estela D'Agostino

  5. Sistemas de tiempo real Componente de un sistema mayor Sistemas empotrados o embebidos Ing. Estela D'Agostino

  6. 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 Ing. Estela D'Agostino

  7. 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 Ing. Estela D'Agostino

  8. 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 Ing. Estela D'Agostino

  9. 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 temporalde 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 casoposible Ing. Estela D'Agostino

  10. 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 Ing. Estela D'Agostino

  11. 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). Ing. Estela D'Agostino

  12. 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 Ing. Estela D'Agostino

  13. 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 Ing. Estela D'Agostino

  14. 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. Ing. Estela D'Agostino

  15. Procesos concurrentes El trabajar con procesos concurrentesañade complejidad a la tarea deprogramar ¿cuáles son entonces los beneficios queaporta la programación concurrente? Ing. Estela D'Agostino

  16. Beneficios de la programaciónconcurrente • Mejor aprovechamiento de la CPU • Velocidad de ejecución • Solución de problemas de naturalezaconcurrente • Sistemas de control • Tecnologías web • Aplicaciones basadas en interfaces de usuarios • Simulación • SGDB Ing. Estela D'Agostino

  17. Proceso • Es una instancia de ejecución de un programa. • Tiene un ciclo de vida, es decir pasa por distintos estados. Ing. Estela D'Agostino

  18. nacido ejecución terminado No existente No existente Ciclo de vida de un proceso listo Ing. Estela D'Agostino

  19. 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. Ing. Estela D'Agostino

  20. 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) Ing. Estela D'Agostino

  21. 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 Ing. Estela D'Agostino

  22. 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. Ing. Estela D'Agostino

  23. 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. Ing. Estela D'Agostino

  24. ¿Quien provee los mecanismos de concurrencia? • Sistema operativo (SO de Tiempo real) • Lenguaje ( lenguaje que proporciona mecanismos para concurrencia) Ing. Estela D'Agostino

  25. 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 Ing. Estela D'Agostino

  26. 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 Ing. Estela D'Agostino

  27. Representación de procesos • Depende del lenguaje: • Process Modula • Task Ada • Thread Java Ing. Estela D'Agostino

  28. Programación concurrente Los lenguajes concurrentes tiene elementos para: • Crear procesos concurrentes • Sincronizar procesos • Comunicar procesos Ing. Estela D'Agostino

  29. 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. Ing. Estela D'Agostino

  30. 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. Ing. Estela D'Agostino

  31. 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. Ing. Estela D'Agostino

  32. 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 Trae problemas Ing. Estela D'Agostino

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

  34. 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. Ing. Estela D'Agostino

  35. 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. Ing. Estela D'Agostino

  36. 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 Ing. Estela D'Agostino

  37. 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. Ing. Estela D'Agostino

  38. Sincronización de condición Utilización de buferes: productor / consumidor Son aquellos problemas en los queexiste un conjunto deprocesos que producen información que otros procesos consumen, siendo diferentes lasvelocidades de producción y consumo de la información. Este desajuste en lasvelocidades, hace necesario que se establezca una sincronización entre los procesos demanera que la información no se pierda ni se duplique, consumiéndose en el orden enque es producida. Ing. Estela D'Agostino

  39. Variables compartidas • Semáforos • Monitores tipos protegidos • Metodos sincronizados Ing. Estela D'Agostino

  40. Semáforos Introdujo Dikstra en 1968. Permite resolver la mayoríade los problemas de sincronización entre procesos y forma parte del diseño de muchossistemas operativos y de lenguajes de programación concurrentes. Ing. Estela D'Agostino

  41. 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. Ing. Estela D'Agostino

  42. 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 ponerlaen 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 Ing. Estela D'Agostino

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

  44. Exclusión mutua con semáforos var mutex : semaforo; (inicialmente a 1) process p2 loop wait(mutex) <seccion critica> signal(mutex); <seccion no critica> end endp 2; 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; wait: se usa como operación de bloqueo signal: se usa como operación de desbloqueo Ing. Estela D'Agostino

  45. Semáforos para proteger un conjunto de recursos En caso que exista un conjunto derecursos similares, se puede usar una versión más general de semáforo que lleve la cuentadel número de recursos disponibles. En este caso elsemáforo se inicializa con el númerototal derecursos disponibles (N) y las operaciones de espera y señal se diseñan de modoque se impida el acceso al recurso protegido por el semáforo cuando el valor de éste esmenor o igual que cero. Ing. Estela D'Agostino

  46. 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 Ing. Estela D'Agostino

  47. 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 Ing. Estela D'Agostino

  48. Monitores Es un conjunto de procedimientos que proporciona el acceso conexclusión mutua a un recurso o conjunto de recursos (datos o dispositivos) compartidospor un grupo de procesos. Los procedimientos van encapsulados dentro de un móduloque tiene la propiedad especial de que sólo un proceso puede estar activo cada vez paraejecutar un procedimiento del monitor. Ing. Estela D'Agostino

  49. 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. Ing. Estela D'Agostino

  50. 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 Ing. Estela D'Agostino

More Related