Sistemas de Tiempo Real

Anuncio
Sistemas de Tiempo Real
Tema 116. Características.
Tema 117. Programación Concurrente.
Tema 118. Control de Recursos.
Tema 119. Planificación de la Ejecución de los Procesos.
Tema 120. Sincronización y Comunicación de Procesos.
Tema 121. Fiabilidad y Tolerancia a Fallos.
1.
INTRODUCCIÓN A LOS SISTEMAS EN TIEMPO REAL
1.
Definiciónes: RT, Tiempo de respuesta, eventos, determinismo, sobrecarga y facilidades;
planificación
RT
Un sistema en tiempo real es aquel que tiene que procesar la información dentro de un intervalo
específico de tiempo o el sistema tiene un alto riesgo de fallar.
Fallo en un sistema: no satisfacción de algunos de los requisitos reflejados en la especificación del
sistema.
Computación de tiempo real no igual computación Rápida, sino que un STR ha de ser predecible.
Tiempo de respuesta
Tiempo de respuesta es el tiempo que transcurre entre las entradas al sistema y la aparición de todas las
salidas.
Un sistema en tiempo real es aquel que satisface tiempos de respuesta explícitos.
Eventos
La definición de evento es muy importante en RTS
Evento es cualquier ocurrencia que causa que el contador de programa cambie no-secuencialmente. Un
cambio en el flujo de control.
2.
Síncronos: aquellos que ocurren en momentos predictivos en el flujo de control.
Asíncronos: ocurren en momentos impredecibles del flujo de control.
En un STR, a un evento se le asocia un proceso
Sistema determinista
Un sistema que para un conjunto único de entradas, en un estado, presenta una salida única y un nuevo
estados que se conocen a priori.
Evento-determinista: un sistema determinista también a los eventos de entrada.
Si el tiempo de respuesta de un sistema evento-determinista para los eventos es conocido entonces es
“determinista temporal”
De todo lo anterior se deduce que el sistema ha de tener un número finito de estado.
Carga (time-loading)
O factor de utilización es un porcentaje del tiempo en el que la CPU está realizando proceso.
Es necesario no llegar a la sobre-carga, cercano al 100%.
Facilidades de tiempo real:
Especificar los tiempos en los que las aplicaciones deben ejecutarse
En los que deben completarse
Tener recursos para tratar problemas de que no se pueden cumplir las restricciones anteriores o que
estas cambien dinámicamente.
Para asegurar estas propiedades hay que utilizar un método de planificación de tareas adecuado.
Diferencia entre un STR y uno de tiempo compartido (Garantía de plazos, estabilidad, Tiempo de
respuesta máximo).
En un STR la planificación de las tareas concurrentes (versus un STiempoCompartido) debe asegurar:
Garantía de plazos:
Estabilidad:
Un STR funciona correctamente cuando se garantizan los plazos de todas las tareas. En un STC lo importante
es asegurar un flujo lo más elevado posible.
Caso de sobrecarga, un STR debe garantizar que al menos un subconjunto de tareas cumplen sus plazos
(tareas críticas). En un STC, hay que repartir equitativamente el tiempo de ejecución.
Tiempo de respuesta máximo:
© Luis de Salvador Carrasco
1
3.
Tipos STR: en función del entorno (reactivo/empotrado), restricciones, criticidad
4.
En un STR se trata de acotar el tiempo de respuesta máximo de las tareas. En un STC se trata de minimizar el
tiempo de respuesta medio.
En función de la interacción con el entorno
Reactivos: aquellos que realizan alguna interacción con el entorno (sistema de control de fuego).
Empotrados (embedded): controlan un hardware especializado en el que el sistema está empotrado
(control de una IMU).
En función de sus restricciones de tiempo real
Soft RT: cuando el rendimiento del sistema se degrada pero no se destruye cuando no se cumplen las
restricciones de RT
Hard RT: en contraposición al anterior - > Realmente los que nos ocupa.
Firm RT: aquellos en los que se tolera una mínima probabilidad de tiempo real
En función de su criticidad (parcialmente relacionado con el anterior)
Críticos:
El fallo en las restricciones temporales puede tener consecuencias catastróficas para la salud o la inversión realizada.
Tipos:
− Fiabilidad
− Safety
− Security - Protección
− STR
P.e.: control de navegación
No críticos: se puede tolerar una perdida de datos del entorno, como una adquisición de datos o algunos
sistemas de comunicaciones.
Modelos (monitorización/control, adquisición de datos (repositorio/pizarra)) y Aplicaciones STR
(control, comunicaciones, gestión)
Modelos de sistemas de tiempo real
Sistemas de monitorización y control
Sistemas de adquisición de datos
Monitorización
− Chequeo de sensores periódicamente
− Realizan una acción cuando se encuentra una situación límite
− Sistemas de regulación automática
− La entrada de referencia es o bien constante o bien varía lentamente con el tiempo, y donde la tarea fundamental consiste en
mantener la salida en el valor deseado a pesar de las perturbaciones presentes.
− Ejemplos: el sistema de calefacción de una casa, un regulador de voltaje, un regulador de presión de suministro de agua a una
comunidad de vecinos
−
Entrada
Error
Salida
Control
G
− Continuamente actualizan el valor de los
actuadores en función de los valores de los
sensores.
SalidaDipMedida
− Sistemas seguidores
− La entrada de referencia cambia de valor
H
frecuentemente
− Ejemplo: servomecanismos (sistemas de control realimentado en el cual la
salida es alguna posición, velocidad o aceleración mecánica).
− Utilizan el modelo
− Sensor ->Evento -> Control del sensor -> Proceso de Datos -> Control Actuador -> respuesta -> actuador
Adquieren datos del entorno para su posterior proceso
Toman la forma de dos procesos, el productor y el consumidor.
− Las velocidades de ambos pueden ser muy distintas.
Se comunican a través de un buffer circular.
− Se necesita un control de dicho buffer
Modelo repositorio/pizarra
Aplicaciones
Entornos de control
Tipos
− Entornos industriales
− Entornos sanitarios
© Luis de Salvador Carrasco
2
Entornos de comunicaciones
Tipos
− Nodos de comunicación
− Granjas de servidores
Características
− Tratamiento de peticiones
Entornos de gestión
2.
− Entornos aeroespaciales
Características
− Manipulación de números reales
− Empotrados con sistemas SAD que interaccionan con una planta
− Fiabilidad a nivel de protección de la vida humana
− Tamaño muy cambiante
Tipos
− Entornos financieros
Características
− Sistemas de gran tamaño y complejidad
− No son críticos para la vida humana
− Interacción con bases de datos
T116 - CARACTERÍSTICAS
5.
Hardware: Principios, Limitaciones del entorno, A medida, COTS, Drivers
Principios
Es preciso conocer a fondo la arquitectura del ordenador para trabajar con un sistema en tiempo real.
Limitaciones del entorno
Los entornos de un sistema en tiempo real pueden ser muy distintos en cuanto a sus necesidades.
Realización a medida
Su elección depende del:
Embebidos completamente distribuidos
Orgánicos, un procesador central y un conjunto de procesos esclavos
Arquitecturas no-Von Newman
6.
Tarjetas en distintos tipos de Racks
CPU de propósito general, microcontroladores, DSP's etc
Mono o multiprocesador
E/S, conectores estandarizados, etc.
Sistemas distribuidos
Coste,
Su utilización en otros entornos parecidos con anterioridad por razones de fiabilidad
Facilidades Sw que tenga asociadas por fiabilidad y tiempo de desarrollo (drivers, compiladores,...)
Selección de COTS
Soporte
Aeroespacial
Industrial
Financiero
− Los sistemas non-stop de Tamdem de el Banco de Inglaterra
Tema arquitectura.Supercomputadores
Proceso de diseño: Metodologías, Modelo de Arq.
Metodologías
Actualmente se emplean metodologías orientados a objetos:
RT - UML
ROOM
Modelo de arquitectura SW:
Debe estar organizada de forma que el control sea transferido al manejador apropiado tan pronto como el
estímulo sea recibido. Las posibilidades son:
Ejecutivos cíclicos
Muy utilizados en sistemas muy críticos (satélites), en los que se elimina el riesgos de la definición formal de los
procesos.
Si la aplicación es sencilla
P.e: el control del RIX es un ejecutivo cíclico
© Luis de Salvador Carrasco
3
Multitarea
7.
Proceso de diseño e Iteración
8.
Aparecen multiples procesos.
P.e.: el OBDH del Nanosat
Fases en el proceso de diseño
Identificar estímulos y correspondientes respuestas
Identificar las restricciones de tiempo ligadas con los anteriores.
Asignar estimulos y respuestas a un proceso. Una buena regla es asignar un proceso para cada clase
estímulo-respuesta.
Para cada uno diseñar los algoritmos para realizar los cálculos. El diseño del algoritmo ha de realizarse
en etapas tempranas. para tener una idea del tiempo de proceso necesario.
Diseñar una planificación del sistema, para asegurar que los procesos se inician cuando procede y
terminan antes del deadline.
Integrar el sistema bajo el control de un ejecutivo de tiempo real.
Este es un proceso iterativo
Es preciso realizar análisis y simulaciones.
Es difícil encontrar validaciones formales de tiempos.
Hay que incorporar los mecanismos de coordinación de procesos (semaforos...)
Algunas técnicas, como objetos, implementan características que introducen una sobrecarga de proceso
que no es adecuada para sistemas en tiempo real muy críticos.
Sistemas operativos (kernel RT), Entornos de desarrollo, Lenguajes
Principios
Fiabilidad
Limitaciones
Por la plataforma Hw
Por la memoria
Condicionantes externos
Sistemas operativos
Construcción de sistemas operativos
Sistemas comerciales
Grandes sistemas comerciales
− VxWorks - PSOS+
Kernels pequeños para aplicaciones industriales
− CMX - RTLinux
Selección del entorno de desarrollo
Generalmente un entorno de desarrollo cruzado
Compiladores, depuradores, herramientas de test etc.
Características: Lenguajes
Principios
Limitaciones
Gestión de concurrencia
Velocidad
Metodología
S.O.
Principios de la empresa
Preparación del personal
Propiedades
Propiedades deseables de un lenguaje de tiempo real (ligadas tambien a su entorno y compilador):
− Facilidad de introducir métricas y procesos formales de verificación
− Robustez y fiabilidad
− Acceso a los recursos del sistema directamente, no a través de SO.
− No utilización de máquinas virtuales y entornos no comprobables.
− Se han desarrollado STR espaciales para alguna aplicación con Simulink
Ensamblador
− Se ha usado como recurso para acelerar todo o parte de un código de tiempo real.
− Se desaconseja por problemas de fiabilidad
C
ADA
© Luis de Salvador Carrasco
4
9.
Métricas, Pruebas Hw, Pruebas de Integración, Pruebas de Validación: análisis de la fiabilidad
3.
Simulink
Metricas PF3D
Pruebas Hw
Diseño con micros
Pruebas de Integración
Prueba de tareas
Prueba de comportamiento
Pruebas intertareas
Prueba de sistema
Pruebas de Validación
Tema->Sist. Críticos
T117 - PROGRAMACIÓN CONCURRENTE
10. Definición, programa concurrente, formas de ejecución y paralelismo
Definición de programación concurrente
Rama de la informática que trata de las notaciones y técnicas de programación que se usan para
expresar el paralelismo potencial entre tareas y para resolver los problemas de comunicación y
sincronización entre procesos.
Programa concurrente
Un programa concurrente está formado por una colección de procesos secuenciales autónomos que se
ejecutan (aparentemente) en paralelo.
Formas de ejecución:
Los procesos multiplexan sus ejecuciones sobre un único procesador (multiprogramación).
Los procesos multiplexan sus ejecuciones sobre un sistema multiprocesador de memoria compartida
(multiproceso).
Los procesos multiplexan sus ejecuciones en varios procesadores que no comparten memoria
(procesamiento distribuido).
Paralelismo y concurrencia
No es exactamente lo mismo
El término concurrencia indica paralelismo potencial.
11. Procesos y Threads, tipos y jerarquía. Tipos en tiempo real, prioridades, esquemas de
planificación.
Concepto de proceso -> S.O.
Threads -> S.O.
12. Núcleo de ejecución: SO RT, Configuración(Interrupciones, reloj, sch, disp, recursos), Formas,
Servicio continuo: gestor de configuración, gestor de fallos.
El S.O. en tiempo real
Los procesos concurrentes se ejecutan con ayuda de un núcleo de ejecución (Run-Time Kernel) que
posee muchas de las propiedades del planificador en un sistema operativo y que está situado entre el
hardware y el software de la aplicación.
Gestiona procesos y asignación de recursos en función de los eventos
No suele incluir otras facilidades de SO más grandes como sistemas de ficheros. (ahora sí).
El algoritmo de planificación utilizado por el núcleo de ejecución afectará al comportamiento temporal del
programa.
Desde el punto de vista del programador, el núcleo de ejecución planifica los procesos de una forma NO
determinista.
Configuración básica
Un reloj en tiempo real
Manejador de interrupciones
Que gestiona las perticiones aperiódicas
Examina los procesos que pueden ser ejecutados y elige una para ello.
Scheduler: planificador
Gestor de recursos
© Luis de Salvador Carrasco
5
Asigna memoria y procesador para los procesos (pensar en un multiprocesador)
Es el responsable de iniciar la ejecución de un proceso.
Dispacher
Formas que puede adoptar
Núcleo desarrollado como parte de la aplicación.
Núcleo incluido en el entorno de ejecución del lenguaje.
Núcleo de un sistema operativo tiempo real.
Núcleo microprogramado dentro del procesador para mayor eficiencia.
Para aquellos sistemas que además han de proporcionar un servicio continuo es necesario:
Un gestor de configuración, para realizar la reconfiguración dinámica del hardware en caso de eliminar
componentes o upgrade del sistema
Gestor de fallos, responsable de detectar fallos hardware o software y tomar las acciones correctivas
para sobreponerse al fallo.
13. Funciones de gestión de proceso del SO: Creación, control, recursos, excepciones,
sincronización, comunicación, swapping y asignación de memoria.
14. Lenguajes concurrentes, Características y Representación de procesos concurrentes
Los lenguajes de programación concurrentes proporcionan elementos para:
La expresión de la ejecución concurrente a través de la noción de proceso.
La sincronización de procesos.
La comunicación entre procesos.
Características de los lenguajes concurrentes
Estructura
Nivel de paralelismo
Anidado (nested): procesos definidos a cualquier nivel del programa.
Plano (flat): procesos definidos sólo al nivel externo del programa.
Granularidad del paralelismo
Grano grueso (coarse grain): pocos procesos pero de larga vida.
Grano fino (fine grain): gran número de procesos simples.
Inicialización
Terminación
Paso de parámetros o comunicación explícita.
Al completar la ejecución
Suicidio
Aborto
Excepción sin manejar
Nunca
Cuando no se necesita más
Representación de procesos en los lenguajes
Co-rutinas
Fork-join
Cobegin-coend
Declaración explícita de procesos
4.
Estática: número de procesos fijo y conocido en tiempo de compilación.
Dinámica: número de procesos conocido sólo en tiempo de ejecución.
Los procesos son unidades de programa (como los procedimientos). Permite una mejor estructura. Ejemplo:
Ada.
T118 - CONTROL DE RECURSOS
15. Recursos: que son, clasificación, instancias y solicitudes
Que son los recursos.
Clasificación
Apropiables.
No apropiables.
Reutilizables
Son Hw o memoria que se caracterizan por que para utilizarse con seguridad sólo uno lo puede emplear a la
vez como máximo.
Consumibles.
© Luis de Salvador Carrasco
6
P.e:
Problemas con los no apropiables y reutilizables.
Instancias de un recurso
Un recurso puede tener varias instancias. P.e.: varios procesadores o varias impresoras.
En función de esto se pueden clasificar los recursos en:
Distinguibles
Indistinguibles.
Secuencia de solicitud de recursos.
Se supone que se devuelve en un tiempo finito excepto los bloqueos (se ignoran otras circunstancias).
Que ocurre cuando se solicita un recurso.
Llamadas para la solicitud de un recurso.
16. Interbloqueo, Codiciones (exclusion, expropiación, posesión, circular), Holt estrategias
Introducción a los interbloqueos.
Varios procesos. Acceso exclusivo a varios dispositivos, etc. Bloqueo, parte de los procesos del sistema
no avanzan.
Un conjunto de procesos se dice que esta bloqueado si cada uno de ellos está esperando una acción que
sólo puede ser realizada por uno de lo procesos del conjunto (excepto el mis).
Condiciones para un bloqueo
Exclusion mutua.
No expropiación
Posesión y espera
Espera circular
Modelado de interbloqueos
Diagrama de Holt para recursos con una sola instancia.
Ejemplo. Si hay un camino cerrado
Diagrama de Holt para recursos con varias instancias.
Ejemplo, se disponen de circulos dentro de los recursos
Estrategias.
Ignorarlos.
Detección y recuperación.
Evitación o evasión de bloqueos
Prevención mediante la negación estructural de una de las cuatro condiciones.
Métodos Combinados.
17. Ignorar. Detectar (diagramas) y Recuperar (expropiación, roll-back, eliminación). Cuando buscar
Ignorar
El algoritmo del avestruz. el caso del Unix (pSOS+)
Vision matematica.
Vision ingenieril
Detección del bloqueo
La detección no es tan simple como solicitar un recursos y recibir un mensaje de error.
Frecuencia de fallos.
Seriedad del bloqueo
Inspección de la gráfica.
Algoritmo analítico.
Elementos
Vector de existencia de recursos.
Vector de disponibles
Matriz de asignación
Matriz de solicitudes (no de todos los necesarios).
Recursos asignados más disponibles = existentes.
Definición de vector menor.
Algoritmo.
Recuperación
Mediante expropiación
A veces manual.
Depende del recurso y puede ser imposible.
Roll-back
Puntos de verificación
© Luis de Salvador Carrasco
7
Procesos dentro del ciclo o fuera.
Criterios:
− Cantidad de recursos
− Prioridad
− Menor tiempo ejecutado.
Problemas
Cuando buscarlos
Reinicialización
Eliminación de procesos
En cada petición de recursos.
Cada cierto tiempo.
Analizando alguna otra variable del sistema.
Complejidad de los procesos de búsqueda.
Imposiblidad de recuperación.
18. Estrategias avanzadas: Evasión (declaración previa) y Prevención (Romper las condiciones)
Evitación o Evasión de bloqueos
Se pueden evitar siempre que se tenga información de antemano. Es necesario que todos los procesos
declaren sus necesidades de recursos de antemano.
Forzar a liberar cuando no este disponible.
− Conduce a inconsistencias.
Reservar todos de antemano.
− Desperdicia procesos.
− Interrumpe la ejecución de procesos durante largo tiempo.
No expropiación.
Spooling
Intentar no solicitar un recurso cuando no sea necesario.
Esperar que un recurso sea utilizado por los menos procesos posibles.
Detenerse y Esperar
Ha de realizarse ha cada petición de recurso.
Es de la misma complejidad que el de detección de bloqueos (imagina un sistema operativo en red).
Prevención
Eliminación de una de las condiciones que hacen posible un bloqueo.
Exclusión mútua.
Existe un trayectoria en la que es posible terminar todos los procesos.
Algoritmo del banquero para un recurso (Ejemplo)
Algoritmo del banquero para varios recursos (extensión del algoritmo de detección de bloqueos).
Problemas
Trayectoria de recursos (Ejemplo).
Estados seguros e inseguros.
Expropiacion del dispositivo o reiniciacion del proceso expropiado.
El sistema operativo encargado de la gestión del cambio.
Espera circular.
Un proceso un recurso en cada momento.
− No siempre es posible.
Numeración de todos los procesos.
− Petición por orden numerico. (Ejemplo).
− Con esta ordenación no puede haber boqueos.
− Un proceso solicite un recurso con número menor al que necesita en ese momento.
− Este orden puede no ser conveniente a todos.
− Cerradura en dos fases (bases de datos).
−
Cuando se necesita un recurso se liberan n-1 recursos que ya se tenian.
−
Si no se consiguen los n, los n se liberan.
−
Se vuelve a empezar.
19. Método combinado, Distribuidos y Livelock
Método Combinado.
Ninguno de los anteriores es un buen método.
Dividiendo los procesos en clases disjuntas a los que se aplican una serie de métodos a cada uno de
ellos.
O dividiendo las estrategias según los tipos de recursos:
© Luis de Salvador Carrasco
8
Swap: prevención
Recursos de trabajos: prereserva
Memoria princiapl: expropiación si hay swap
Recursos internos del sistema: ordenación de recursos
Distribuidos y livelock
Estructura cliente-servidor
livelock
Otros
Conclusion
5.
En tiempo real, los recursos no son compartidos.
Recursos consumibles y otros tipos de interbloqueos.
Ejemplos de algoritmos (en apuntes curso OS).
T119 - PLANIFICACIÓN PARA LA EJECUCIÓN DE LOS PROCESOS
20. Algoritmo de planificación, Requisitos RT (restricción det./analisis tiempos), Tipos(cuando, plazo,
expropiacion) y criterios de planificación
Definición
Conjunto de políticas y mecanismos incorporados al sistema operativo que gobiernan el orden en que se
ejecutan los trabajos (ordenad el uso de recursos) que deben ser cumplimentados por el sistema
informático.
Tiene por tanto relación con gestión de memoria y control de recursos.
El objetivo primario de la planificación es optimizar el rendimiento del sistema conforme a un conjunto de
criterios considerados más importantes.
Requisitos RT
Un STR necesita restringir el indeterminismo encontrado en los sistemas concurrentes: este proceso se
conoce como planificación (Scheduling).
Un método de análisis que permita predecir el comportamiento temporal del sistema en el peor caso
cuando se aplica el algoritmo de planificación.
Tipos
Cuando se prepara la planificación
Expropiación
Expropiatorias
No expropiatorias
Plazo de planificación.
Estático: el análisis puede realizarse antes de la ejecución.
− Un método estático muy utilizado es el de planificación con prioridades fijas y desalojo (preemtive priority-based schemes): a cada
proceso se le asigna una prioridad y en cada instante se ejecuta el proceso con prioridad mayor.
− Necesitamos, por lo tanto, un algoritmo de asignación de prioridades y una prueba de planificabilidad.
Dinámico: se utilizan decisiones tomadas en tiempo de ejecución.
Planificador a largo plazo, para los procesos batch
Planificador a medio plazo, para los expropiados a memoria
Planificador a largo plazo, para los que están listos para la ejecución
En SO complejos los tres tipos coexisten
Criterios de planificación
Utilización del procesador
Productividad
Tiempo de retorno
Tiempo de espera
Tiempo de respuesta
21. Procesos y Threads, Tipos de procesos RT, Asignación de prioridades
Procesos y Threads
SO
Tipos de procesos RT, asignación de prioridades, estrategias de planificación
Diseño->Tiempo real
22. Estados, transiciones y conmutación de procesos, Funciones del S.O.
Estados de los procesos
Inactivo
© Luis de Salvador Carrasco
9
Preparado
En ejecución
Suspendido
No tiene todos los recursos preparados para ejecutarse.
Transiciones de estado de un proceso
Control de los sucesos
Los SO están guiados por sucesos para guiar los cambios de estado.
Esencial asegurar que el SO sea informado respecto a cada suceso. Obliga a reglas de codificación estrictas
en las rutinas de dispositivo escritas por usuarios que procesan sucesos externos.
Tipos de sucesos
síncronos o internos
Asíncronos o externos
Conmutación de procesos
Conmutación de modo
Del modo de usuario que ejecuta el proceso al modo del SO
Guardar el estado del proceso
Traslado a la lista de preparados o suspendidos
Invocación del planificador
Tratamiento del suceso
Tiene todos los recursos para ejecutarse excepto la CPU
Para invocar otro proceso
No forma parte de la conmutación y se puede realizar en cualquier otro momento.
Funciones de control de proceso del S.O
Temas -> Sistemas operativos.
23. Núcleo de ejecución: SO RT, Configuración(reloj, sch, disp, recursos), Formas que adopta,
Servicio continuo: gestor de configuración, gestor de fallos.
El S.O. en tiempo real
Los procesos concurrentes se ejecutan con ayuda de un núcleo de ejecución (Run-Time Kernel) que
posee muchas de las propiedades del planificador en un sistema operativo y que está situado entre el
hardware y el software de la aplicación.
Gestiona procesos y asignación de recursos en función de los eventos
No suele incluir otras facilidades de SO más grandes como sistemas de ficheros. (ahora sí).
El algoritmo de planificación utilizado por el núcleo de ejecución afectará al comportamiento temporal del
programa.
Desde el punto de vista del programador, el núcleo de ejecución planifica los procesos de una forma NO
determinista.
Configuración básica
Un reloj en tiempo real
Manejador de interrupciones
Que gestiona las perticiones aperiódicas
Examina los procesos que pueden ser ejecutados y elige una para ello.
Asigna memoria y procesador para los procesos (pensar en un multiprocesador)
Es el responsable de iniciar la ejecución de un proceso.
Scheduler: planificador
Gestor de recursos
Dispacher
Formas que puede adoptar
Núcleo desarrollado como parte de la aplicación.
Núcleo incluido en el entorno de ejecución del lenguaje.
Núcleo de un sistema operativo tiempo real.
Núcleo microprogramado dentro del procesador para mayor eficiencia.
Para aquellos sistemas que además han de proporcionar un servicio continuo es necesario:
Un gestor de configuración, para realizar la reconfiguración dinámica del hardware en caso de eliminar
componentes o upgrade del sistema
Gestor de fallos, responsable de detectar fallos hardware o software y tomar las acciones correctivas
para sobreponerse al fallo.
24. Esquemas de planificación: Sin concurrencia (FCFS, SRTN,Retardos, Ciclicos) Concurrencia:
(Round-Robin, Planf. Prioridades, Multiples Colas, Multiples Colas con realimentación)
© Luis de Salvador Carrasco
10
Sin concurrencia real
First-Come First Served
Shortest Remaining Time Next
Retardos
Planificación con ejecutivos cíclicos
A partir de aquí se considera que se tienen tareas independientes
− En este caso disponemos de un sistema operativo o un núcleo ejecutivo. Con él se permite la ejecución concurrente de tareas
completamente independientes. Cada tarea va pasando por diversos estados en función de sus necesidades y del estado global del
sistema. El núcleo ejecutivo proporciona las primitivas necesarias para dar soporte al diagrama de estados de cada tarea.
No es válido para STR porque:
− No diferencia entre tareas más o menos urgentes
− No permite garantizar el tiempo de respuesta de las tareas.
Planificación con prioridades (event-driven priority)
En cada momento siempre se ejecuta aquella tarea que tiene la prioridad más alta entre todas las que se
encuentran activas.
En sistemas de tiempo real la planificación además es expropiatoria.
La prioridad de cada tarea puede ser estática o dinámica.
Problemas
− Bloqueo directo: una tarea de menor prioridad coge un recurso, es desplazada por otra de mayor prioridad que se detiene cuando
necesita emplear el mismo recurso.
− Bloqueo indirecto: Una tarea queda bloqueada por otra de inferior prioridad con la que no comparte ningún recurso. Cuando una de
menor prioridad toma un recurso, es desplazada por otra de prioridad intermedia y la de prioridad máxima no puede entrar a
ejecutarse por necesitar dicho recurso.
Multiple Level Queues
Multiples colas con realimentación
6.
Es aplicable si todas las tareas son periódicas. Este método se ha venido utilizando mucho hasta ahora.
Tenemos un único programa secuencial. Un plan cíclico se divide en:
− Ciclo principal: se repite con un periodo TM
− Ciclos secundarios: divisiones del ciclo principal sincronizadas con un periodo Tm
Ventajas
− Eficiencia: no hay ni cambios de contexto ni gestión de procesos
− Determinismo en los instantes de activación
− No hace falta emplear mecanismos para evitar condiciones de carrera
Inconvenientes
− Rigidez y dificultad de mantenimiento
− Bajo nivel de abstracción
− Puede ocurrir que el número de subperiodos sea excesivamente grande
Con concurrencia real
Round Robin
Normalmente se realiza mediante una función del tipo delay()
Problema:
− No se tiene en cuenta la duración de la tarea periódica. La ejecución de la acción puede retrasarse por existir otras tareas. El
resultado es una deriva acumulativa
Combinar varias disciplinas de planificación
Un proceso pueda pasar de una cola a otra dependiendo de su comportamiento en ejecución
Criterios de movimiento entre colas: no terminación, muchos recursos o si en seguida devuelve el control sube
en la cola
T120 - SINCRONIZACIÓN Y COMUNICACIÓN DE PROCESOS
25. Necesidad p. concurrentes, Sección crítica, Condición de carrera, Condiciones de la solución
(exclusion, progreso, espera limitada, suposiciones)
Necesidades de procesos concurrentes
Comunicación
Los procesos concurrentes tendrán necesidad de comunicarse información
Sincronización
Además, será necesario en ocasiones detener a un proceso hasta que se produzca un determinado evento o
se den ciertas condiciones
Solución
Compartir memoria entre procesos
Sección Crítica
© Luis de Salvador Carrasco
11
Segmento de código donde se accede a datos compartidos por varios procesos concurrentes
Condición de carrera
Cuando el resultado de la ejecución de dos o más procesos, que comparten variables comunes, depende
de la velocidad relativa a la que cada proceso se ejecuta, es decir, del orden en el que se ejecutan las
instrucciones.
Condiciones de la solución
Exclusión mutua
Nunca puede haber más de un proceso en la sección crítica
Progreso:
Espera limitada
Si ningún proceso está en sección crítica y hay procesos que desean entrar en su s.c., sólo estos últimos
participarán en la decisión y ésta se tomará en un tiempo finito.
Hay un límite para el número de veces que otros procesos pueden adelantarse a un proceso que quiere entrar
en s.c.
Suposiciones
Suponemos que cada proceso se ejecuta a una velocidad distinta de cero
No podemos hacer suposiciones acerca de las velocidades relativas de los procesos
26. Soluciones Hardware: Interrupciones, Instrucciones atómicas (test&set, swap)
Entorno uniprocesador: prohibir las interrupciones mientras se modifican variables compartidas
Problemas
Muy peligroso en sistemas RT, por lo que en la realidad solo se suspenderían aquellas que accediesen a
la sección crítica
Entorno multiprocesador habría que deshabilitar las interrupciones de todos los procesadores, lo que es
muy costoso.
Instrucciones atómicas test-and-set o SWAP.
Permiten evaluar y asignar un valor a una variable de forma atómica.
test-and-set(B):
− Pone B a true y devuelve el antiguo valor de B. (Evaluar-y-Asignar(B))
SWAP(A,B):
− Intercambia los valores de A y B. (Intercambiar(A,B))
Si disponemos de estas instrucciones, se simplifica muchísimo el problema de la sección crítica.
27. Semáforos: General, binario, con cola de procesos, espera activa, implementación
Semáforo general
Un semáforo general S es una variable entera, inicializada a un valor no negativo, y a la que, aparte de
su inicialización, sólo se puede acceder por medio de dos operaciones atómicas P y V.
P(S)
if S > 0 then S = S – 1
else suspender la ejecución del proceso
V(S)
− if hay procesos suspendidos en este semáforo
− then despertar a uno de ellos
− else S = S + 1
−
−
S es una variable compartida por los procesos.
La operación V despierta a uno de los procesos suspendidos pero no indica a cual.
Estas operaciones se realizan de forma atómica y esto tiene sus implicaciones:
No hay modificación ni acceso simultáneo al semáforo.
No hay posibilidad de entrelazado de instrucciones entre el chequeo del valor de S y su posible modificación en
una operación P o V.
P y V son secciones críticas; pues son trozos de código donde se accede a variables compartida
Semáforo binario
Es un semáforo general pero sólo puede tomar valores 0 y 1.
En este caso las operaciones P y V se redefinen de la siguiente forma:
P(S)
if S > 0 then S = S – 1
else suspender la ejecución del proceso
V(S)
− if hay procesos suspendidos en este semáforo
− then despertar a uno de ellos
− else S = 1
−
−
© Luis de Salvador Carrasco
12
Semáforo con cola de procesos bloqueados
En la definición de semáforo general no se especifica en que orden se despiertan los procesos
suspendidos, en este caso los procesos suspendidos se mantienen en una cola FIFO y se despiertan en el
orden en que fueron suspendidos
P(S)
if S > 0 then S = S – 1
else suspender la ejecución del proceso y se inserta en la cola FIFO
V(S)
− if hay procesos suspendidos en este semáforo
− then despertar al primero de la cola FIFO
− else S = 1
−
−
Se puede modificar la gestión añadiendo una pila, un arbol, etc.
Semáforo con espera activa
El proceso no completa la operación P, pues lo que hace es entrar en un bucle hasta que el recurso está
disponible.
Aspecto crítico de la implementación de los semáforos:
Operaciones se ejecuten de forma atómica
Entorno uniprocesador:
− Interrupciones
Entorno multiprocesador
− Instrucciones hardware especiales
− Solución software (espera activa)
28. Monitores: Qué es, Características
Qué es
Un monitor es una estructura software que consta de
datos locales
uno o mas procedimientos
un código de inicialización
Tiene además las siguientes características:
Las variables de datos locales sólo pueden ser accedidas por los procedimientos del monitor
La implementación del monitor garantiza que sólo un proceso puede estar ejecutando código del monitor
en un instante dado (es decir, los procedimientos del monitor se ejecutan en exclusión mutua)
Existe un tipo de variables, denominadas variables condition, para la sincronización de los procesos.
Sobre una variable condition solo se pueden hacer las operaciones wait y signal
La operación wait sobre una variable condition x deja al proceso que la hace en espera. La denotaremos por
x.wait (puede encontrarse también wait(x) cwait(x))
La operación signal sobre una variable condition x saca de la espera a uno de los procesos que han hecho
x.wait; si no hay procesos en espera no tiene efecto. La denotaremos por x.signal (signal (x), csignal(x))
Ejemplo de código del monitor
type nombre-monitor=monitor
declaraciones de variables
procedure entry P1(...)
begin ... end;
procedure entry PN(...)
begin ... end;
begin
código de inicialización
end;
29. Mensajes: Qué es, Mecanismo, Aspectos, Sincronismo
Proporcionan una solución integrada al problema de la sincronización y comunicación entre procesos.
Mecanismo
El sistema operativo proporciona un mecanismo de colas de comunicación entre procesos
Las operaciones básicas son: enviar y recibir
Formato del mensaje (parámetros de enviar) son:
Id emisior
Id receptor
Longitud
Tipo
© Luis de Salvador Carrasco
13
7.
Datos (opcionales)
Aspectos importantes son:
Denominación: si un mensaje solo puede tener un receptor concreto.
Copia: si el mensaje cuando se comunica es una copia del espacio de direcciones del emisor al del
receptor. Paso por valor o por referencia.
Sincronismo en send
Sincronos
− cuando la operación enviar bloquea hasta que se recibe.
Asíncrono, cuando no existe dicho bloqueo
− Se puede implementar la sincronía con una doble cola
Test de mensaje disponible.
T121 - FIABILIDAD Y TOLERANCIA A FALLOS
30. Definición de Fiabilidad en STR, Matemática, Como conseguirla: diseño, IngSw, Test
Definición de fiabilidad en sistemas en tiempo real
Determinista a eventos
Determinismo temporal
Time-loading razonable
Memory-loading razonable
Definición formal de fiabilidad
T tiempo de fallo de un sistema
Fiabilidad a un tiempo t de un software S
R(t) = P(T>t)
Como llegar a la fiabilidad
Sólido proceso de diseño
Buenas prácticas de ingeniería software
Riguroso sistema de test.
31. Calculo de la fiabilidad del sistema: Estático- análisis por bloques. Dinámico: método estadístico -
Predicción de la fiabilidad
Modelar por bloques de procesos
Se considera el conjunto del sistema como bloques de proceso conectados en serie o en paralelo.
Se asigna una función de probabilidad a cada uno de los bloques de forma que se considera
independiente en cada uno de ellos.
Se realiza la simplificación con las siguientes reglas:
Fiabilidad en paralelo = f1+f2-f1*f2
Fiablidad en serie = f1.f2
Modelos para determinar la fiabilidad
Se utilizan métricas de complejidad
Contar sentencias
Métrica de Halstead
Métrica de complejidad ciclomática -> Tema Verificación y validación.
Métrica de puntos de función -> Tema métricas
Métrica bang -> Tema métricas
Métricas de código -> Tema métricas
Método estadístico -> Tema de validación
32. Tolerancia a fallos: Esquemas Espacial Hw y Sw. Temporal: Checkpoints y Bist
Definición
La habilidad para que un sistema continue a pesar de la presencia de fallos Hw y Sw.
Está orientada a aumentar la fiabilidad del sistema.
Definidos en dos tipos de tolerancia en tiempo real
Tolerancia a fallos espacial
Métodos que incorporan redundancia en hardware o software.
Penalización por coste, espacio y requisitos de potencia.
Tolerancia a fallos temporal
Métodos que incorporan técnicas para tolerar fallos en los tiempos de respuesta (missed deadlines). Esta es la
más difícil de alcanzar pues requiere una programación más fina de los algoritmos.
© Luis de Salvador Carrasco
14
Esquemas de TF espacial
Tres o más dispositivos conectados entre sí mediante un sistema de voto.
Dos o más pares de dispositivos, que comparan la salida por pares y si son diferentes el sistema par se
descarta entero.
El esquema de voto no solo se emplea en sistemas Hw sino tambien en Sw para incrementar la robustez del
algoritmo. P.e., la posición se puede obtener por GPS, IMU e información de tierra y se puede componer vía un
filtro de Kalman.
Programación con N-versiones
Muchas veces el error de la ejecución es de código (ciclos no testeados dead-lock etc).
Una solución es redundancia de procesadores ejecutando un código redundante pero desarrollado por distintos
equipos. Via watchdog es fácil ver si alguno se ha quedado colgado.
Se ha usado en el computador de propósito general de shuttle.
Normalmente se utilizan dos procesadores, uno maestro y otro esclavo. El maestro esta on-line, el esclavo se
está ejecutando off-line y solo si el esclavo detecta que el maestro se ha colgado toma el control efectivo.
Esquemas de TF temporal
Recuperación de bloques
Se basa en la utilización de checkpoints
− Puntos fijos en el código, que escribe resultados intermedios con el propósito de realizar diagnósticos. Si solo se utilizan durante la
etapa de test se les denomina test probe. Por supuesto, consumen tiempo y recursos, desvirtuan la ejecución de programas
introduciendo u ocultando errores, y durante test pueden falsear los resultados de temporización.
Cada cierto tiempo, se comprueba el resultado de los checkpoint para determinar si los valores tienen ciertos
parámetros de corrección. Si no es así, el proceso se retrasa hasta el previo bloque de recuperación. Se
supone que un dispositivo Hw a fallado.
Incrementa la fiabilidad pero supone una sobrecarga no solo por la ejecución del repetida sino tambien por el
chequeo en paralelo de los bloques que ya se han ejecutado.
BIST
Built-in self test.
Autodiagnostico del sistema que puede ser:
− Hardware, con registros de consulta que disparan interrupciones
− Software, con consulta de los dispositivos Hw por polling o similar
− Más coste en tiempo del Sw que el Hw
33. Tolerancia en Memoria: fuentes de error, efectos, estrategia, rom, ram, Interrupciones: espúreas y
perdidas. Deadlock
Tolerancia en la memoria
Fuentes de corrupción
Efecto de la corrupción
Vía checksum o códigos de paridad o CRC. Hay que determinar mediante análisis el tipo de errores capaz de
detectar (aislados o en ráfaga) con el modelo de probabilidad de error.
Añade un ciclo Hw
Detección en RAM
Utilizar técnicas de detección y corrección de errores
Ventajas e inconvenientes de este sistema.
Detección en ROM
Cambio de estado - error soft
Daño permanente - error hard
Estrategia
Descarga electroestática, vibraciones, particulas de alta energía,
Códigos Hamming
Interrupciones Espúreas y perdidas.
Son niveles de tensión que aparecen de forma expontanea en las líneas de interrupción causadas por Hw
ruidoso, fuentes de tension, descargas electroestáticas etc.
Las perdidas tienen el mismo origen.
Las espúreas pueden detectarse mediante un Hw redundante y un sistema de voto que active un flag
para ser consultado por la interrupción.
El problema es si aparecen muchas interrupciones seguidas espúreas, con lo que la pila de interrupción
podría conducir a un overflow.
A esto se el conoce como espiral mortal.
Las interrupciones perdidas son más difíciles de manejar. Solo con un diseño robusto.
Deadlock
Tema de gestión de recursos
© Luis de Salvador Carrasco
15
34. Sólido proceso de diseño y test: Cleanroom
Verificación-> Estrategias de prueba
Verificación->Métodos de pruebas
© Luis de Salvador Carrasco
16
© Luis de Salvador Carrasco
17
Descargar