Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Apuntes sobre los sistemas en tiempo real, Apuntes de Metodología de Programación

Apunte sobre cómo es el proceso de desarrollo de un sistema en tiempo real y cuáles son los beneficios y las consecuencias que éstos traen.

Tipo: Apuntes

2015/2016

Subido el 12/01/2016

yerbamate
yerbamate 🇪🇸

4.2

(31)

346 documentos

1 / 61

Documentos relacionados


Vista previa parcial del texto

¡Descarga Apuntes sobre los sistemas en tiempo real y más Apuntes en PDF de Metodología de Programación solo en Docsity! 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 5 Componente de un sistema mayor Sistemas empotrados o embebidos Sistemas de tiempo real 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 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 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 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). 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 15 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? 16 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 17 Proceso • Es una instancia de ejecución de un programa. • Tiene un ciclo de vida, es decir pasa por distintos estados. 20 Implementación de un conjunto de procesos 1. Multiplexar sus ejecuciones en un único procesador (multiprogramación). 2. Multiplexar sus ejecuciones en un sistema multiprocesador con acceso a memoria compartida (multiprocesamiento) 3. Multiplexar sus ejecuciones en diversos procesadores que no comparten memoria (sistema distribuído) 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 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. 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 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 27 Representación de procesos • Depende del lenguaje: – Process Modula – Task Ada – Thread Java 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. 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. 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 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. 36 • 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 Variables compartidas 37 – 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. Sincronizaciones necesarias en la programación concurrente 40 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. 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. 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 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 45 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. 46 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 Características de los semáforos 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 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 51 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 Funcionamiento de un monitor 52 Monitores • Existe necesidad de sincronización de condición. • Se maneja con dos operadores que se llaman wait y signal. 55 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. 56 Métodos sincronizados • Los métodos se califican con el modificador synchronized. • Puede existir también synchronized a nivel de bloque. 57 Paso de mensajes • Se necesita un proceso emisor y uno receptor. • Información para intercambiar. • Operaciones básicas son: – Enviar (mensaje) – Recibir (mensaje) 60 Nombrado de procesos 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> 61 Estructura del mensaje • Idealmente: cualquier objeto. • Cada lenguaje ha impuesto sus restricciones.
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved