Conceptos básicos de STRD TEMA 7 Tecnologías y protocolos de red Arquitectura de los STRD Acceso al medio Sincronización de relojes Sistemas de tiempo real distribuido STRD dirigidos por tiempo (Time-triggered) Planificación de STRD Planificación síncrona-cíclica Planificación basada en prioridades fijas Análisis holístico 1 v1 Salida v2 M1 Detector de piezas v3 M2 Accionamiento del motor Transductor de velocidad 2 Conceptos básicos de STRD Entrada M3 Accionamiento del motor Transductor de velocidad Accionamiento del motor Transductor de velocidad Detector de piezas Bus de campo Consola de operación μC μC μC 3 Sistemas distribuidos Sistema de tiempo real distribuido Un sistema compuesto por múltiples procesadores conectados entre sí por uno o varios recursos de comunicación en los que hay que garantizar un plazo máximo de respuesta, por lo que la planificación de los mensajes a transmitir debe estar bien establecida. Definición: Colección de computadores independientes que se presenta al usuario como un sistema único y consistente [Tanembaum] Colección de computadores autónomos interconectados a través de una red de ordenadores y equipados con software que permita compartir los recursos del sistema, hardware, software y datos [Colouris] Ejemplos 4 Internet, Google, Yahoo, … 5 Las actividades del sistema tienen requisitos de tiempo Estos sistemas serán muy complejos, difíciles de diseñar, depurar y mantener Se consideran sistemas débilmente acoplados. Comunicación mediante mensajes El tiempo de comunicación es significativo. Ej. Sistemas multimedia, SCADA, aviónica, fabricación integrada, robótica. Distintos tipos de requisitos temporales Se consideran, fundamentalmente, sistemas críticos 6 1 Sistema de tiempo real distribuido Sistema de tiempo real distribuido Problemas específicos de STRD Ventajas Reducción potencial de costes. Capacidad para compartir recursos. Mejora en el rendimiento y la escalabilidad. Autonomía local. Distribución intrínseca. Mejora de la confianza y la disponibilidad Planificación del medio de comunicación. Asignación de tareas a procesadores. Plazos de respuesta globales (end-to-end). Sincronización de relojes. Tolerancia a fallos. 7 Sistema de tiempo real distribuido Sistema de tiempo real distribuido Medio de Comunicación Distribución de carga En sistemas monoprocesador, el procesador suele ser el único recurso a planificar. En STRD, hay que planificar el medio de comunicación. Los mensajes suelen tener un plazo desde que se solicita su envío hasta que se reciben. Para garantizar estos plazos y acotar el tiempo de envío: protocolos de comunicación deterministas. 8 En muchos casos la arquitectura de niveles OSI introduce demasiada sobrecarga. Un problema adicional es asignar tareas a procesadores. Puede ser estática o dinámica. Una distribución no adecuada puede infrautilizar recursos e impedir el cumplimiento de plazos. Criterios de asignación: Los procesadores tienen recursos limitados. Replicación de tareas. Requisitos de utilización de recursos específicos. Distribución geográfica. 9 Comunicación en STRD El tiempo de comunicación es significativo Los mensajes tienen requisitos temporales. El medio debe ser determinista. Pocos protocolos orientados a tiempo real. El protocolo CSMA/CD (Carrier Sense Multiple Access with Collision Tiempos El tiempo de respuesta (rm) de un mensaje puede descomponerse en varias tareas: • Generación (G) tiempo que tarda la aplicación en generar el mensaje y ponerlo en cola • Encolamiento (Q) tiempo que permanece el mensaje en la cola de envío, antes de ser entregado al medio de comunicación, debido a: • Competencia con otros mensajes del mismo procesador Detection, Acceso Múltiple con Escucha de Portadora y Detección de Colisiones) no es determinista. • Competencia con mensajes de otros procesadores En realizaciones prácticas hay que considerar las actividades necesarias para mandar/recibir los mensajes: Generación Transmisión Encolamiento Entrega 10 • Transmisión (T) tiempo que el mensaje ocupa el medio de comunicación 11 • Entrega (E) tiempo que tarda el procesamiento del mensaje en el destino antes de notificar a la tarea de destino. 12 2 Tiempos Tiempos • Plazo de respuesta: Está asociado a una transacción (conjunto de actividades relacionadas que se sincronizan/comunican mediante mensajes para realizar un determinado servicio de comunicación). Para poder analizar el tiempo de respuesta global de una transacción hay que conocer: • los tiempos de cómputo máximo de cada tarea que interviene en la transacción • los tiempos de transmisión máximos de los mensajes • Plazo de respuesta global: tiempo máximo permitido para la ejecución de una tarea, desde que se produce el evento hasta la actuación. Para garantizar estos plazos hay que acotar los tiempos de transmisión con: • Protocolos de comunicación deterministas: • Mensajes con atributos temporales ( período, plazo) (la planificación de los mensajes también es importante) • Se debe considerar el tiempo de transmisión completo (end-to-end), desde que una tarea envía un mensaje hasta que otra lo recibe, incluyendo los tiempos de espera en colas, buffers, etc. 13 Tiempos 14 Tolerancia a fallos Sincronización de relojes Granularidad del tiempo: suficiente para la aplicación. Los procesadores deben tener la misma visión del tiempo. Visión global del sistema. Los relojes presentan variaciones que obligan a sincronizarlos. La diferencia entre los valores locales del tiempo de observación del mismo evento en diferentes procesadores debe estar acotada. La sincronización de los relojes no debe degradar el rendimiento del sistema. Algoritmos de sincronización: Reloj lógico: Algoritmo de Lamport Reloj físico: Algoritmo de Berkeley El sistema produce resultados correctos, aún en presencia de fallos hardware y/o software. En STRD las actividades se completan en el plazo adecuado. Se deben considerar fallos en procesadores y en los medios de comunicación. Las técnicas de tolerancia a fallos para sistemas de tiempo real están muy poco maduras. Redundancia modular triple Servicios o servidores replicados 15 16 Tecnologías y protocolos de red Tecnologías y protocolos de red Estrella Completa Anillo Árbol Intersección de anillos Irregular Topologías de diseño punto a punto. 17 18 3 Tecnologías y protocolos de red Tecnologías y protocolos de red Capas, protocolos, interfases Host A Host B Protocolo de nivel 7 Nivel 7 Nivel 7 Interfaz de nivel 6/7 Protocolo de nivel 6 Nivel 6 Nivel 6 Interfaz de nivel 5/6 Protocolo de nivel 5 Nivel 5 Nivel 5 Interfaz de nivel 4/5 Protocolo de nivel 4 Nivel 4 Bus Satélite o radio Nivel 4 Interfaz de nivel 4/5 Anillo Protocolo de nivel 3 Nivel 3 Nivel 3 Interfaz de nivel 2/3 Protocolo de nivel 2 Nivel 2 Topologías de diseño de difusión. Nivel 2 Interfaz de nivel 1/2 Protocolo de nivel 1 Nivel 1 Medio físico 19 Tecnologías y protocolos de red Nivel 1 20 Tecnologías y protocolos de red Protocolo de Comunicación es el conjunto de reglas que especifican el intercambio de datos u órdenes durante la comunicación entre las entidades que forman parte de una red de comunicaciones. SAP = Punto de acceso al servicio IDU Entidad: Elemento que, en un equipo, realiza parte o la totalidad de las funciones correspondientes al nivel de la arquitectura al que pertenece. IDU(N) Nivel N+1 Diálogo: Comunicación entre dos entidades del mismo nivel en máquinas distintas. Entidades gemelas: Son entidades del mismo nivel en máquinas distintas. Siempre que en una arquitectura de protocolos tenemos una entidad de un tipo, la entidad con la que está dialogando tiene que ser igual, nivel por nivel. ICI(N) SDU(N) ICI(N) Servicio: El resultado de realizar las funciones de un nivel de la arquitectura de protocolos y todos los inferiores, para ofrecer una funcionalidad al nivel 21 inmediatamente superior que se considera usuario del anterior. Tecnologías y protocolos de red = Información de control de la interfaz SDU = Unidad de datos del servicio PCI = Información de control del protocolo SDU = Unidad de datos del servicio SDU(N) Interfaz: Lo que permite que dos entidades de niveles adyacentes, en la misma máquina, se comuniquen. Protocolo: Conjunto de reglas de comunicación que dos entidades gemelas conocen y respetan para realizar conjuntamente la función que tienen asignada. = Unidad de datos de la interfaz ICI PDU = Unidad de datos del protocolo SAP Interfaz Nivel N PDU(N+1) PCI(N) SDU(N) Las entidades del nivel N intercambian PDU(N) en su protocolo de nivel N PDU(N) Cabecera SDU(N) = PDU(N+1) IDU(N) = ICI(N) + SDU(N) PDU(N) = PCI(N) + SDU(N) 22 Tecnologías y protocolos de red Modelo de referencia OSI (Open System Interconnection) PCI(N) PDU(N+1) Nivel N+1 SDU(N) Nivel N PDU(N+1) PCI(N) PDU(N) PCI(N-1) SDU(N-1) PDU(N-1) SDU(N) PDU(N) Nivel N+1 PCI(N-1) SDU(N-1) PDU(N-1) 23 24 4 Tecnologías y protocolos de red Tecnologías y protocolos de red Modelo de referencia OSI (Open System Interconnection) Aplicación ofrece a las aplicaciones la posibilidad de acceder a los servicios de las demás capas y define los protocolos que utilizan las aplicaciones para intercambiar datos encargada de manejar las estructuras de datos abstractas y realizar las Presentación conversiones de representación de datos necesarias para la correcta interpretación de los mismos. Sesión proporciona los mecanismos para controlar el diálogo entre las aplicaciones de los sistemas finales. Nivel físico: Envío bit a bit entre nodos Proporcionar un interfaz estandarizado para los medios de transmisión físicos, incluyendo: Especificaciones mecánicas de los conectores eléctricos y cables, por ejemplo longitud máxima del cable Especificación eléctrica de la línea de transmisión, nivel de señal e impedancia Interfaz radio, incluyendo el espectro electromagnético, asignación de frecuencia y especificación de la potencia de señal, ancho de banda analógico, etc. Modulación Codificación de línea Transporte encargado de la transferencia libre de errores de los datos entre el emisor y el receptor, aunque no estén directamente conectados, así como de mantener el flujo de la red. Red conseguir que los datos lleguen desde el origen al destino aunque no tengan conexión directa. Sincronización de bits en comunicación serie síncrona Delimitación de inicio y final, y control de flujo en comunicación serie asíncrona Enlace conseguir que la información fluya, libre de errores, entre dos máquinas que estén conectadas directamente (servicio orientado a conexión). Físico características eléctricas, mecánicas y procedimentales de la comunicación en red. Multiplexación de Conmutación de circuitos Detección de portadora y detección de colisión utilizada por algunos protocolos de acceso múltiple del nivel 2 Equalización, filtrado, secuencias de prueba, forma de onda y otros procesados de señales de las señales físicas Configuración de la línea punto a punto, multipunto o punto a multipunto Topología física de la red, por ejemplo en bus, anillo, malla o estrella Comunicación serie o paralela 25 Tecnologías y protocolos de red Modo de transmisión Simplex, half duplex o full duplex 26 Tecnologías y protocolos de red Nivel de enlace: Nivel de red: Montar bloques de información (llamados tramas en este nivel), dotarles de una dirección de nivel de enlace, gestionar la detección o corrección de errores, y ocuparse del control de flujo entre equipos (para evitar que un equipo más rápido desborde a uno más lento). Hay dos formas en las que el nivel de red puede funcionar internamente, mediante datagramas o por circuitos virtuales. En una red de datagramas cada paquete se encamina independientemente, sin que el origen y el destino tengan que pasar por un establecimiento de comunicación previo. Cuando el medio de comunicación está compartido entre más de dos equipos es necesario arbitrar el uso del mismo. Esta tarea se realiza en el subnivel de acceso al medio. En la práctica el subnivel de acceso al medio suele formar parte de la propia tarjeta de comunicaciones, mientras que el subnivel de enlace lógico estaría en el programa adaptador de la tarjeta (driver). En una red de circuitos virtuales dos equipos que quieran comunicarse tienen que empezar por establecer una conexión, durante este estableciemiento de conexión, todos los encaminadores (o routers) que haya por el camino elegido reservarán recursos para ese circuito virtual específico. Iniciación, terminación e identificación Asignación de direcciones de red únicas Segmentación y bloqueo Interconexión de subredes distintas Sincronización de octeto y carácter Encaminamiento de paquetes Delimitación de trama Control de congestión Control de errores Nivel de transporte: Control de flujo Recuperación de fallos Proporciona un control de alto nivel para la transferencia de datos, y es capaz de detectar y eliminar paquetes duplicados, velar por el sincronismo en la información y coordinar el reenvío de un paquete si este no ha llegado correctamente a su destino. Puede asignar un número único de secuencia al paquete que va a ser transmitido, para que este sea revisado en el destino por el correspondiente nivel de transporte. Gestión y coordinación de la comunicación 27 Tecnologías y protocolos de red 28 Tecnologías y protocolos de red Nivel de sesión: Control del Diálogo: simultáneo en los dos sentidos (full-duplex) o alternado en ambos sentidos (half-duplex). Agrupamiento: El flujo de datos se puede marcar para definir grupos de datos. Recuperación: La capa de sesión puede proporcionar un procedimiento de puntos de comprobación, de forma que si ocurre algún tipo de fallo entre puntos de comprobación, la entidad de sesión puede retransmitir todos los datos desde el último punto de comprobación y no desde el principio. Nivel de presentación: Se encarga de la representación de la información, de manera que aunque distintos equipos puedan tener diferentes representaciones internas de caracteres (ASCII, Unicode, EBCDIC), números (little-endian tipo Intel, big-endian tipo Motorola), sonido o imágenes, los datos lleguen de manera reconocible. En esta capa se tratan aspectos tales como la semántica y la sintaxis de los datos transmitidos, ya que distintas computadoras pueden tener diferentes formas de manejarlas. También se encarga de la compresión y cifrado de datos. Nivel de aplicación: Ofrece a las aplicaciones (de usuario o no) la posibilidad de acceder a los servicios de las demás capas y define los protocolos que utilizan las aplicaciones para intercambiar datos, como correo electrónico (POP y SMTP), gestores de bases de datos y servidor de ficheros (FTP). Hay tantos protocolos como aplicaciones distintas y puesto que continuamente se desarrollan nuevas aplicaciones el número de protocolos crece sin parar. El usuario normalmente no interactúa directamente con el nivel de aplicación. Suele interactuar con programas 29 que a su vez interactúan con el nivel de aplicación pero ocultando la complejidad subyacente. Ejemplos Aplicación DNS, FTP, HTTP, IMAP, IRC, NFS, NNTP, NTP, POP3, SMB/CIFS, SMTP, SNMP, SSH, Telnet, SIP Presentación ASN.1, MIME, SSL/TLS, XML Sesión Transporte Red NetBIOS SCTP, SPX, TCP, UDP AppleTalk, IP, IPX, NetBEUI, X.25 Enlace ATM, Ethernet, Frame Relay, HDLC, PPP, Token Ring, Wi-Fi, STP Físico Cable coaxial, Cable de fibra óptica, Cable de par trenzado, Microondas, Radio, RS-232 30 5 Tecnologías y protocolos de red Arquitectura de los STRD 31 Arquitectura de los STRD Arquitecturas de los sistemas distribuidos 1. Compuesta por un conjunto de nodos conectados por redes de comunicación. Cada nodo puede ser un multiprocesador conectado por buses. Arquitecturas dependientes de la aplicación Sólo consideraremos sistemas débilmente acoplados. Arquitectura de N-capas [N-Tier] Es frecuente que estos sistemas tengan gran complejidad. Nace por inconvenientes de la arquitectura cliente / servidor Cliente /Servidor => Arquitectura de dos capas Se suelen estructurar jerárquicamente, para tratar con: Cliente / Servidor [Client / Server] z z 2. 32 Cliente realiza peticiones a servidor Es la primera y la más básica de todas las arquitecturas distribuidas Plazos Soluciones : Usar una única capa servidora más potente Dividir la capa servidora en 2 o más capas de respuesta de diversas escalas. Diferentes tipos de información. Diferentes requisitos de procesamiento 33 34 Arquitectura de los STRD Arquitectura dirigida por: • eventos (ET, event triggered): las actividades del sistema son iniciadas en respuesta a la ocurrencia de eventos causados por el entorno. En estos casos, la planificación puede ser estática o dinámica. Acceso al medio • tiempos (TT, time triggered): las actividades del sistema son iniciadas en instantes predefinidos, al compás de un reloj sincronizado globalmente. En estos casos, la planificación es estática • híbrida: combinación de las anteriores: • ET a nivel de nodo (tareas) • TT a nivel de comunicaciones 35 36 6 Acceso al medio Acceso al medio Protocolos que establecen el nodo que puede acceder al medio de comunicación en un instante dado Determinan muchas propiedades de la arquitectura del sistema distribuido CSMA/CD no es adecuado para STR no se puede acotar el tiempo de transmisión de cada mensaje individual Protocolos deterministas: para asegurar los requisitos temporales del sistema. Ejemplos: TDMA TOKEN BUS (IEEE 802.4) TOKEN RING (IEEE 802.5) Bus CAN (ISO 11898) 37 Acceso al medio TDMA • TDMA: Time Division Multiple Access. • El envío de los mensajes es síncrono. • Todos los procesadores tienen relojes sincronizados entre sí. • El acceso al medio se divide en rodajas de tiempo. • Los mensajes se envían en rodajas específicas. • El inicio se indica mediante un reloj global. • La planificación del medio es estática (no puede haber colisiones y el tiempo máximo de transmisión está acotado) • Este protocolo es predecible y determinista. • Sin embargo, es poco flexible, difícil de mantener y se puede desaprovechar el ancho de banda de la red. • Se usa en TTA (Time-Triggered Architecture) para sistemas de alta integridad con planificación cíclica y tolerancia a fallos por redundancia activa. Acceso al medio Paso de testigo Paso de testigo Priority-Driven Protocol. Timed Token Protocol. • Política de arbitraje basada en prioridades. Pocos niveles de prioridad. • El ancho de banda se asigna cíclicamente. • Cada estación puede enviar mensajes durante cierto tiempo cuando tiene el testigo. • Dos fases : arbitrio de prioridad mediante circulación de testigo, y transmisión del mensaje de datos. • El tiempo de envío debe ser suficiente para enviar los mensajes en su plazo. No puede haber colisiones. • El testigo es un mensaje especial que tiene un campo con prioridad. Cada nodo indica la prioridad del mensaje que desea transmitir. • El tiempo de rotación del testigo está acotado. • Se usa con redes rápidas: FDDI (Fiber Distributed Data Interface). • Emite el nodo con mensaje más prioritario. • Deriva del protocolo IEEE 802.4 token bus • Se emplea sobre IEEE 802.5 (token ring con paso de testigo). • Útil en redes con velocidades 1-10 Mbits. 38 39 Acceso al medio 40 Comunicaciones con CAN Bus CAN • CAN: Controller Area Network. • Los mensajes tienen un identificador que indica la prioridad (menor valor = mayor prioridad) • El protocolo funciona como una puerta AND: • si un nodo escribe un 0 todos los demás leen un 0 • el 0 es dominante • Resolución dinámica de colisiones. • Es posible aplicar el análisis de planificabilidad de sistemas con prioridades estáticas. • La velocidad de la red es 1Mbit/seg. y el mensaje más largo ocupa 130 μseg. 41 CAN (Controller Area Network) es un protocolo de comunicación en serie, radiado y sensible a portadora. Transmisión y recepción de mensajes pequeños, en ambientes ruidosos. Velocidad máxima: 1Mbit/s. Distancia máxima: 40 m. La resolución de la contención está basada en la prioridad de los mensajes. El identificador describe el contenido del mensaje y es su prioridad. Consistencia de los datos: todos los nodos reciben los mismos datos. 42 7 Comunicaciones con CAN Comunicaciones con CAN Arbitraje del bus: Para resolver las colisiones se emplea el campo de arbitraje: identificador y bit de petición remota. Si un nodo envía un bit recesivo (1) y lee un bit dominante (0), hay un nodo transmitiendo con más prioridad. Prioridad de los mensajes. El identificador es la prioridad del mensaje Cuanto menor es el identificador, mayor es la prioridad. Para que este método funcione se debe cumplir: Los mensajes tienen identificador único. No hay dos nodos transmitiendo mensajes con el mismo identificador. Análisis de planificabilidad El acceso al bus CAN está basado en prioridades. Condición: El controlador del bus transmite siempre que haya mensajes pendientes. No hay expulsión durante la transmisión. El mensaje más largo ocupa 0'13ms (B). Se supone que los mensajes se generan al principio del periodo y 44 no hay errores de transmisión. 43 Sincronización en sistemas distribuidos • La sincronización en sistemas de un único ordenador no requiere ninguna consideración en el diseño del sistema operativo, ya que existe un reloj único que proporciona de forma regular y precisa el tiempo en cada momento. Sincronización de relojes • Sin embargo, los sistemas distribuidos tienen un reloj por cada ordenador del sistema, con lo que es fundamental una coordinación entre todos los relojes para mostrar una hora única. • Los osciladores de cada ordenador son ligeramente diferentes, y como consecuencia todos los relojes sufren un desfase y deben ser sincronizados continuamente. • La sincronización no es trivial, porque se realiza a través de mensajes por la red, cuyo tiempo de envío puede ser variable y depender de muchos factores, como la distancia, la velocidad de transmisión o la propia saturación de la red, etc. 45 Sincronización en sistemas distribuidos 46 Ordenación de eventos • La sincronización no tiene por qué ser exacta, y bastará con que sea aproximadamente igual en todos los ordenadores. Es fundamental no retrasar nunca la hora, aunque el reloj se adelante. En vez de atrasar la hora, hay que ralentizar la actualización del reloj, frenarlo, hasta que alcance la hora aproximadamente. • No es necesario que todos los relojes tengan la misma hora exacta, sino que simplemente mantengan una relación estable de forma que se mantengan las relaciones de precedencia entre sucesos (qué suceso ocurrió antes que otro suceso cualquiera). En los sistemas distribuidos la comunicación y las acciones de cómputo no están guiadas por un único reloj global. Cada nodo tiene su reloj y puede haber derivas entre ellos. Esto dificulta la relación “antes/después” entre eventos remotos. El hecho de que el anuncio de un evento A llegue antes a un observador que un evento B no significa que A fuera anterior a B. Puede tratarse de un efecto relativista. (ej. los truenos de 2 rayos) Punto de vista de los sistemas asíncronos: si no existe una relación causaefecto entre A y B el orden temporal de estos eventos es irrelevante. En una red existen diferentes motivos por los que un observador puede observar los eventos en orden diferente del que han sucedido: • • • • Velocidades de conversión A/D, Jitter en el muestreo Jitter en la planificación de tareas Jitter del interfaz de red y priorización de mensajes Latencia de diferentes rutas en redes WAN Diferentes observadores pueden tener diferentes visiones de la ordenación de eventos. En general los observadores perciben antes los eventos del nodo local o los nodos cercanos que los de los lejanos 47 48 8 Ordenación de eventos Ordenación de eventos Ordenación causal – Cómo sucedió • La ordenación causal es una ordenación parcial de los eventos que responde a una relación causa-efecto. Ordenación temporal – Cuándo sucedió • La ordenación temporal es una ordenación total de los eventos que asume un observador con latencia de acceso cero a todos los eventos. • Es una de las posibles ordenaciones totales consistentes con la ordenación causal. 49 Ordenación de eventos Debido a diferentes motivos un observador puede que los eventos le sean notificados en un orden diferente al que se produjeron en el mundo real. El problema es más importante cuanto más concurrencia existe o cuando los componentes del sistema no interaccionan a través de un proceso común del mundo real que impone una cierta sincronización. ¿Cómo saber cual es la ordenación de eventos que se ha producido en el sistema? • Sistemas síncronos: intentan proporcionar una ordenación temporal, aunque con una precisión/granularidad de tiempo que depende de las características del sistema. • Si el sistema dispusiese de un reloj global, podría etiquetarse cada evento con una marca temporal. • Sistemas asíncronos: permiten observar los eventos en cualquier orden que respete la ordenación causal. • Cada agente utiliza un contador de eventos con los que marca cada uno de los mensajes que envía (timestamp): (m, T(m)) Esto permite detectar cuando dos eventos están o no están causalmente 50 ordenados y realizar una ordenación parcial de los eventos. Ordenación de eventos Sistema síncrono • Postula la existencia de un reloj (base de tiempos) global accesible desde cualquier nodo del sistema. • Esto implica una sincronización fuerte de relojes. Sistema asíncrono Sistema síncrono Sistema asíncrono Ordenación total de eventos Ordenación parcial de eventos • No utiliza el concepto de tiempo global • Los eventos se ordenan por sus relaciones de causalidad, no por su ordenación temporal El problema de la sincronización de relojes • Es imposible disponer de relojes perfectamente sincronizados • La latencia de los sistemas de mensajería afecta a la sincronización de relojes: • Si se utiliza la misma red para distribuir el tiempo y anunciar eventos es difícil tener un base de tiempos más precisa que el jitter del anuncio de eventos. La tolerancia a fallos depende de la sincronía 51 Sincronización de relojes Sincronización de relojes Problemática de la sincronización de relojes Los relojes locales tienen variaciones que obligan a sincronizarlos • No es perfecta: los relojes locales de cada nodo pueden diferir respecto a UTC y entre ellos debido a: relojes de cuarzo: ej. 1 s en 6 días si la granularidad del tiempo es del orden de 1 ms. hay que sincronizar los relojes cada 8 min. sincronización «suave» aumentar la frecuencia incremento acotado del valor del reloj • Redondeos de coma flotante (Historia del misil Patriot de la Guerra del Golfo...) • Puede introducir discontinuidades en el tiempo para retrasar disminuir la frecuencia mantener el valor durante un tiempo acotado • La latencia de los mensajes hace imposible conocer el tiempo global con exactitud. Hay que compensar el tiempo debido a la latencia. • Derivas de los osciladores para adelantar 52 • Los procesos corrigen periódicamente sus relojes mediante un protocolo de mensajes tratando de ajustarse a UTC o de reducir las variaciones respecto a ellos. 53 54 9 Sincronización de relojes Sincronización de relojes • Existen diferentes algoritmos. Tres de ellos son los siguientes: • Dos tipos de sincronización: • Sincronización externa: respecto a base de tiempos global UTC. • Sincronización interna centralizada o distribuida: respecto a un reloj de un nodo del sistema (que actúa como servidor) o una media entre los relojes. Puede haber una deriva respecto UTC (si el servidor no realiza una sincronización externa). • Cuando una estación consulta, para sincronizarse, el valor del reloj a una fuente de tiempo (p.e. UTC), se pueden producir dos problemas: • Problema 1: Un reloj rápido respecto UTC no puede retroceder (saltos hacia atrás) , pues el tiempo es monótono creciente. • Solución: hacer los periodos más grandes gradualmente. • Problema 2: la latencia de los sistemas de mensajería afecta a la sincronización de relojes. La red introduce una latencia variable en devolver la respuesta. • Solución: evaluar la latencia de forma probabilística. 55 • Algoritmo de Lamport: se encarga exclusivamente de mantener el orden en que se suceden los procesos. En cada mensaje que se envía a otro ordenador se incluye la hora. Si el receptor del mensaje tiene una hora anterior a la indicada en el mensaje, utiliza la hora recibida incrementada en uno para actualizar su propia hora. • Algoritmo de Christian: Dispone de un servidor de tiempo que recibe la hora exacta (puede conectarse a UTC). El servidor se encarga de enviar a cada ordenador la hora. Cada ordenador de destino sólo tiene que sumarle el tiempo de transporte del mensaje, que se puede calcular de forma aproximada. • Algoritmo de Berkeley: La principal desventaja del algoritmo de Cristian es que todo el sistema depende del servidor de tiempo, lo cual no es aceptable en un sistema distribuido fiable. El algoritmo de Berkeley usa la hora de todos los ordenadores para elaborar una media, que se reenvía para que cada equipo actualice su propia 56 hora ralentizando el reloj o adoptando la nueva hora, según el caso. Algoritmo de Lamport Ejemplo de tres procesos, cada uno con su propio reloj Sincronización de relojes lógicos Necesitamos una forma de asociar a cada evento a un valor de tiempo t(a) en el que todos los procesos estén de acuerdo Los valores de tiempo deben tener la propiedad de que si a→b entonces t(a)<t(b) El tiempo de reloj siempre debe ir hacia adelante, nunca puede ser decreciente 0 6 A 0 0 8 10 12 16 18 24 24 32 30 40 36 48 42 56 61 70 64 69 80 70 54 77 72 90 60 76 80 85 100 48 D 20 B Con los mensajes C y D no se cumplen las reglas anteriores! 30 40 50 C 60 57 Algoritmo de Christian Algoritmo de Berkeley tUTC Servidor m={tUTC } Cliente T0 En este algoritmo se elige, un computador coordinador para actuar como maestro. A diferencia del algoritmo de Christian (con servidor pasivo), este computador (servidor activo) consulta periódicamente a los otros computadores (esclavos) que se van a sincronizar. Éstos le devuelven sus valores de reloj. El maestro estima sus tiempos locales de reloj observando los tiempo de ida y vuelta y promedia los valores obtenidos. Este promedio contrarresta las tendencias de los relojes individuales a funcionar rápido o lento. UTC ti T1 t La precisión del protocolo depende del tiempo de ida y vuelta máximo nominal entre el maestro y los esclavos. El maestro elimina cualquier lectura adicional asociada con tiempos mayores que el máximo. • Al obtener la respuesta el cliente ajusta el tiempo local a: tUTC + (T1-T0)/2 + ti (supondremos ti=0) • Si se conoce el tiempo mínimo de transmisión, min, entonces puede determinarse la precisión: • El valor de UTC cuando el mensaje m llegue estará en el intervalo: [tUTC+min, tUTC+(T1-T0)- min] 58 En lugar de reenviar el tiempo actual actualizado a los demás computadores, lo que introduciría una nueva imprecisión debido al tiempo de transmisión del mensaje, el maestro envía la cantidad que precisa cada esclavo para hacer su ajuste, que puede ser un valor positivo o negativo. cuya anchura es (T1 - T0) – 2 min • Por lo tanto la precisión es: (T1-T0)/2 – min • Se han de realizar un conjunto de medidas (espaciándolas para eliminar congestión transitoria) y tomar el mínimo de T1-T0 59 El algoritmo elimina las lecturas de relojes defectuosos. Dichos relojes podrían tener un efecto adverso significativo si se tomara un promedio ordinario. El maestro toma un promedio tolerante a fallos eligiendo un subconjunto de los relojes que no difieran entre ellos más de una determinada cantidad, y el promedio se toma de las lecturas de sólo estos relojes. Si el maestro fallara, entonces puede ser elegido otro computador para asumir y funcionar exactamente como su predecesor. 60 10 Planificación y análisis temporal • Para poder analizar el tiempo de respuesta global de una transacción hay que conocer • los tiempos de cómputo máximos de cada tarea que interviene en la transacción • los tiempos de transmisión máximos de los mensajes Planificación de STRD • Hace falta que el tiempo de transmisión esté acotado • protocolos de comunicación deterministas • los mensajes tienen atributos temporales (período, plazo) • la planificación de los mensajes es importante • se considera el tiempo de transmisión completo (end-to-end) • desde que una tarea envía el mensaje hasta que otra tarea lo recibe • se incluyen los tiempos de espera en colas, tampones, etc. 61 Planificación de STRD 62 Planificación Anomalías temporales: • Problema muy complejo. • Es necesario considerar la planificación de un conjunto de actividades. • No hay un enfoque generalmente aceptado. • Hay diversas aproximaciones al problema orientadas a dominios concretos. • Un objetivo común consiste en integrar gestión de tareas y recursos y mecanismos de tolerancia a fallos. Al contrario de lo que intuitivamente se podría pensar, mejorar las condiciones (mediante incremento de recursos o reducción de los tiempos de ejecución) puede empeorar las prestaciones del sistema (incremento de los tiempos de respuesta). P = {P1, P2, … Pn} : n unidades de procesamiento L = {T1, T2, …, Tr} : lista o secuencia de tareas en orden de prioridad • Se debe: G(<, μ) : grafo dirigido con las relaciones de precedencia (<) entre tareas y sus tiempos de ejecución (μ) • Maximizar relación de garantía: tareas garantizadas frente a tareas que llegan • Minimizar el coste de comunicación por la red • Balancear la carga entre los nodos del sistema ω : mínimo tiempo para completar todas las tareas de L • No infrautilizar los recursos • Cumplir los plazos 63 Planificación 64 Planificación Ejemplo: Ejemplo: P = {P1, P2, P3} P = {P1, P2, P3} L = {T1, T2, T3, T4, T5, T6, T7, T8, T9} L’ = {T1, T2, T4, T5, T6, T3, T9, T7, T8} T1/3 G(<, μ): T9/9 T5/4 T6/4 T7/4 T8/4 T2/2 T3/2 T4/2 P1 T1 P2 T2 P3 T3 0 T1/3 T3/2 T4/2 P1 T9 T4 5 T5 T7 T6 T8 10 T9/9 T5/4 T6/4 T7/4 T8/4 T2/2 G(<, μ): ω = 12 15 65 T1 T3 T9 P2 T2 T5 T7 P3 T4 T6 T8 0 Cambio en el orden de prioridad 5 ω’ = 14 10 15 66 11 Planificación Planificación Ejemplo: Ejemplo: P = {P1, P2, P3} P = {P1, P2, P3} L = {T1, T2, T3, T4, T5, T6, T7, T8, T9} L = {T1, T2, T3, T4, T5, T6, T7, T8, T9} T1/3 T9/9 T5/4 T6/4 T7/4 T8/4 T2/2 G(<‘, μ): T3/2 T4/2 P1 T1 P2 T2 P3 T3 T6 T4 T1/2 Cambio en las relaciones 0 G(<, μ’): de precedencia T3/1 T4/1 P1 T9 T7 T5 ω’ = 16 T8 5 10 67 15 Planificación P’ = {P1, P2, P3 , P4} Aumento de las unidades de procesamiento T1/3 T9/9 T5/4 T6/4 T7/4 T8/4 T2/2 T3/2 T4/2 T1 P3 T 3 T7 de ejecución T8 T9 5 ω’ = 13 10 15 68 Tipos Protocolos dirigidos por tiempo Síncrono – Cíclico Protocolos dirigidos por eventos Planificación basada en prioridades Análisis holístico T8 P2 T2 T5 P3 T3 T6 P4 T4 T7 0 T5 T6 0 L = {T1, T2, T3, T4, T5, T6, T7, T8, T9} P1 T1 P2 T 2 T 4 Decremento de los tiempos Planificación Ejemplo: G(<, μ): T9/8 T5/3 T6/3 T7/3 T8/3 T2/1 T9 ω’ = 15 5 10 15 69 70 Planificación síncrona-cíclica • Planifica estáticamente la red y los procesadores. • Dirigida por tiempo (time-triggered) • En los procesadores se usan planificadores cíclicos. Planificación síncrona-cíclica • La red es del tipo TDMA. • Se determina estáticamente el instante de envío de los mensajes. • El método es predecible, determinista, inflexible y no optimiza el uso de recursos. • Este enfoque se aplica en MARS (MAintainable Real-time System). • MARS incorpora mecanismos avanzados de tolerancia a fallos 71 72 12 Ejemplo CPU-1 CPU-1 Red Tarea a1 e1 (T = 30) CPU-2 Mensaje a2 e12 C=5 T = 30 e1 (T = 30) Tarea a3 e23 C=2 T = 30 Red e12 Tarea a1 e56 Tarea a6 Especificación CPU-2 e23 Mensaje a2 e45 Mensaje a5 Tarea a3 Tarea a4 e2 (T = 60) C = 20 T = 30 Acción a1 T 30 C 5 D 30 a2 30 2 30 a3 30 20 30 a4 60 5 40 a5 60 10 40 a6 60 10 40 CPU-1 Tarea a6 Mensaje a5 e56 C = 10 T = 60 Tiempo Tarea a4 e45 C = 10 T = 60 e2 (T = 60) C=5 T = 60 73 e1 e1 a1 a6 CPU-2 Acción WCET Tiempo Acción WCET 0 Inicio a1 5 0 Inicio a4 5 4 Envío a2 1 4 Envío a5 5 Fin a4 10 10 Inicio a3 5 Fin a1 20 Inicio a6 30 Fin a6 30 Fin a3 30 Inicio a1 5 40 Inicio a3 34 Envío a2 1 60 Fin a3 35 Fin a1 1 20 20 Planificación cíclica 74 e1 a1 a1 Planificación basada en prioridades a2 a5 a2 e2 e2 a4 0 a3 10 20 a3 30 40 50 a4 60 75 Planificación basada en prioridades 76 Planificación basada en prioridades Basada en prioridades estáticas Basada en prioridades dinámicas • Mismos principios para planificar el medio de comunicación y los procesadores. • Las decisiones de planificación (parte) se realizan en tiempo de ejecución. • La red es de paso de testigo o CAN-Bus. • Spring es un sistema operativo de acuerdo con este enfoque. • Se determinan los tiempos de respuesta más desfavorables de tareas y mensajes. • Planificación integrada de procesos y recursos. • El tiempo de respuesta global se calcula como la suma. • Se considera información semántica de las tareas para la planificación. • Los periodos de las tareas/mensajes deben ser armónicos. • Planificación a cuatro niveles. • Permite un mejor aprovechamiento de recursos. • No hay métodos de tolerancia a fallos suficientemente maduros. 77 • • • • Despachador. Planificador local. Planificador distribuido. Controlador metanivel. 78 13 Planificación basada en prioridades fijas Objetivo: Planificación basada en prioridades fijas de STRD basados en planificación con prioridades fijas Presentar técnicas de análisis de tiempos de respuesta Modelo de sistema Planificación Sistema hardware compuesto por: Tipo de sistemas: Sistema software compuesto por: Sistemas distribuidos débilmente acoplados Nodos: planificación con prioridades fijas (RM o DM) Redes: tiempo de respuesta de los mensajes acotado Conjunto de procesadores Unidos por redes de comunicaciones Tareas asignadas estáticamente a procesadores Mensajes asignados estáticamente a redes Comunicación entre tareas: En el mismo nodo: memoria compartida Entre distintos nodos: paso de mensajes 79 80 Planificación basada en prioridades fijas Planificación basada en prioridades fijas Modelo lineal de sistema distribuido Un evento genera una secuencia de acciones Una acción es una tarea o un mensaje, en secuencia. Las acciones sólo pueden ser activadas por un evento y sólo pueden activar una acción. Tareas periódicas con jitter El instante crítico no es el mismo si hay jitter Las tareas periódicas no suelen tener jitter Puede haberlo si la planificación se hace con una granularidad apreciable (release jitter) El tiempo de respuesta se calcula con: 81 82 Planificación basada en prioridades fijas Planificación basada en prioridades fijas Plazos arbitrarios Si el plazo es mayor que el período, puede haber varias activaciones pendientes en un ciclo Para analizar esta situación construimos una sucesión de ventanas wi(q), donde q + 1 es el número de activaciones de τi. Para cada ventana se obtiene un valor de Ri con: Análisis de planificabilidad Tiempo de respuesta de un mensaje (tarea) Esta ecuación se resuelve por iteración simple. Si Ri ≤ Di, entonces el mensaje Mi (Tarea τi) es planificable. 83 84 14 Análisis holístico de STRD Desarrollado por Ken Tindell, 1994 El análisis integra los procesadores y las redes. Análisis: Todos los mensajes y tareas de una transacción se activan al mismo tiempo. Las relaciones de precedencia se modelan como jitter El retardo en la activación de una tarea (mensaje) depende del tiempo de respuesta del mensaje (tarea) anterior Se continúa hasta que se complete una activación. Análisis holístico de STRD 85 Análisis holístico de STRD 86 Análisis holístico de STRD Requisitos temporales impuestos a las acciones: • Plazos globales: plazos de respuesta relativos a la llegada del evento externo. (D2) • Plazos locales: plazos considerados desde el instante real en que se activó la acción en la respuesta al evento. (d2) • Plazos de principio-a-fin (end-to-end): plazos asignados a las secuencias de respuesta completas. Coinciden con los plazos globales correspondientes a las últimas acciones en la secuencias de respuesta a eventos externos. (ED1) 87 Análisis holístico de STRD c.i.: wij0 (q) = (q + 1) Cij Análisis holístico de STRD ⎡ wijn (q) + J ik ⎢ Tik ∀k∈hp ( j ) ⎢ ⎢ ∑ wijn +1 (q ) = Bij + (q + 1) Cij + c.p.: wijn +1 (q ) 88 ⎤ ⎥ Cik ⎥⎥ Inicializar términos de jitter {Ji(0)} = 0 n = n+1 n=0 Calcular tiempos de respuesta {Ri(n+1)} en función de términos {Ji(n)} = wijn (q) Estimar nuevos términos {Ji(n+1)} Rij = max ( wij (q ) − qT j + J ij ) Problemática del jitter en función de los nuevos {Ri-1(n+1)} Tiempo de respuesta global de peor caso de la acción aj generada por el evento ei ¿ {Ri(n+1)} = {Ri(n)} ? J ij = Rij −1 − Rijb−1 Algoritmo recursivo WCGRT de aj-1 BCGRT de aj-1 89 NO SI {Ri} = {Ri(n)} 90 15 Análisis holístico de STRD Ejemplo CPU-1 Red Tarea a1 e1 (T = 30) Mensaje a2 e12 C=5 T = 30 P = Alta Tarea a6 Tarea a3 e23 C=2 T = 30 P = Baja Mensaje a5 e56 C = 10 T = 40 P = Baja CPU-2 C = 20 T = 30 P = Baja Tarea a4 e45 C = 10 T = 40 P = Alta e2 (T = 40) C=5 T = 40 P = Alta 91 92 CPU-1 e1 (T = 30) CPU-1 e1 (T = 30) Tarea a1 Tarea a6 Red e12 e56 Mensaje a2 Mensaje a5 e45 e45 Tarea a3 Tarea a4 e2 (T = 40) a2 : su activación depende de únicamente de la tarea a1, que tiene una variabilidad en su tiempo de respuesta desde 0 (BCRT) hasta 5 (WCRT) Î J2 = 5 T C P D a1 30 5 Alta 30 a2 30 2 Baja - a3 30 20 Baja 50 a4 40 5 Alta 40 a5 40 10 Alta - a6 40 10 Baja 40 a3 : su activación depende de a2, que tiene una variabilidad en su tiempo de respuesta desde 0 (BCRT) hasta 17 (WCRT) Î J3 = 17 a4 no tiene jitter pues es una tarea periódica y su activación no depende de otras tareas Î J4 = 0 a5 : su activación depende de únicamente de la tarea a4, que tiene una variabilidad en su tiempo de respuesta desde 0 (BCRT) hasta 5 (WCRT) Î J5 = 5 93 a6 : su activación depende de a5, que tiene una variabilidad en su tiempo de respuesta desde 0 (BCRT) hasta 15 (WCRT) Î J6 = 15 Cálculo del tiempo de respuesta global (WCGRT) de las tareas: CPU-1 e1 (T = 30) CPU-1 : Tarea a1 Tarea a6 a 1 : w1 = C 1 = 5 Î R1 = 5 + 0 a6 : w6 = C6 + C1 = 10 + 5 = 15 Î R6 = 15 + 15 = 30 Î R2 = 12 + 5 Î R5 = 10 + 5 Red e12 Mensaje a2 e56 Mensaje a5 94 CPU-2 e23 e45 Tiempos de respuesta globales, desde el instante de ocurrencia del evento (e1, e2) correspondiente Tarea a3 Tarea a4 e2 (T = 40) = 5 Red : a5 : w5 = C5 = 10 Mensaje a5 CPU-2 e23 a1 : no tiene jitter pues es una tarea periódica y su activación no depende de otras tareas Î J1 = 0 e2 (T = 40) Acción a2 : w2 = C2 + C5 = 2 + 10 = 12 Mensaje a2 Cálculo del jitter de las tareas: Tarea a3 Tarea a4 e56 Tarea a6 CPU-2 e23 Red e12 Tarea a1 = 17 = 15 CPU-2 : a3 : w3 = C3 + C4 = 20 + 5 = 25 Î R3 = 25 + 17 = 42 a 4 : w4 = C 4 = 5 Î R4 = 5 + 0 =5 95 Acción T C P J a1 30 5 Alta 0 5 a2 30 2 Baja 5 17 R a3 30 20 Baja 17 42 a4 40 5 Alta 0 5 a5 40 10 Alta 5 15 a6 40 10 Baja 15 30 96 16 e1 e1 a1 CPU-1 e1 (T = 30) Tarea a1 Tarea a6 Red e12 e56 Mensaje a2 Mensaje a5 a6 e1 a1 a6 a1 a6 CPU-2 e23 e45 a5 Tiempos de respuesta locales, desde el instante de activación de la tarea Tarea a3 a2 a2 a5 e2 a2 e2 e2 (T = 40) Tarea a4 a4 a3 0 10 a3 20 30 e1 Acción T C P R a1 30 5 Alta 5 a2 30 2 Baja 12 a3 30 20 Baja 37 a4 40 5 Alta 5 a5 40 10 Alta 12 a6 40 10 Baja 30 a4 a3 40 50 e1 a1 a6 e1 a1 a2 a5 a6 a1 a2 e2 97 a3 60 a3 70 e2 a4 80 60 a3 a3 90 100 a4 110 120 98 99 17