Author
others
View
2
Download
0
Embed Size (px)
1
1
TEMA 7
Sistemas de tiempo real distribuido
2
Conceptos básicos de STRD
Tecnologías y protocolos de red
Arquitectura de los STRD
Acceso al medio
Sincronización de relojes
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
3
Salida
Detector de piezas
Transductor de velocidad
Accionamiento del motor
Accionamiento del motor
Transductor de velocidad
Detector de piezas
Transductor de velocidad
Accionamiento del motor
M1 M2 M3
v1 v2 v3 Entrada
Consola de
operaciónμC μC μC
Bus de campo
4
Conceptos básicos de STRD
5
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 ydatos [Colouris]
EjemplosInternet, Google, Yahoo, …
Sistemas distribuidos
6
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.
Las actividades del sistema tienen requisitos de tiempoEstos sistemas serán muy complejos, difíciles de diseñar, depurar y mantener
Se consideran sistemas débilmente acoplados.Comunicación mediante mensajesEl tiempo de comunicación es significativo. Ej. Sistemas multimedia, SCADA, aviónica, fabricación integrada, robótica.Distintos tipos de requisitos temporalesSe consideran, fundamentalmente, sistemas críticos
Sistema de tiempo real distribuido
2
7
Sistema de tiempo real distribuido
VentajasReducció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
8
Sistema de tiempo real distribuido
Problemas específicos de STRD
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.
9
Sistema de tiempo real distribuido
Medio de Comunicación
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.
En muchos casos la arquitectura de niveles OSI introduce demasiada sobrecarga.
10
Sistema de tiempo real distribuido
Distribución de carga
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.
11
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 CollisionDetection, Acceso Múltiple con Escucha de Portadora y Detección de Colisiones) no es determinista.
En realizaciones prácticas hay que considerar las actividades necesarias para mandar/recibir los mensajes:
GeneraciónEncolamiento
TransmisiónEntrega
12
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
• Competencia con mensajes de otros procesadores
• Transmisión (T) tiempo que el mensaje ocupa el medio de comunicación
• Entrega (E) tiempo que tarda el procesamiento del mensaje en el destino antes de notificara la tarea de destino.
3
13
• 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.
• 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).
Tiempos
14
Tiempos
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
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.
15
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
Tiempos
16
Tolerancia a fallos
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
17
Tecnologías y protocolos de red
18
Tecnologías y protocolos de red
Topologías de diseño punto a punto.
Estrella Anillo Árbol
Completa Intersección de anillos Irregular
4
19
Tecnologías y protocolos de red
Topologías de diseño de difusión.
Bus Satélite o radio Anillo
20
Tecnologías y protocolos de red
Capas, protocolos, interfasesHost A Host B
Nivel 7
Nivel 6
Nivel 4
Nivel 3
Nivel 2
Nivel 5
Nivel 1
Medio físico
Nivel 7
Nivel 6
Nivel 4
Nivel 3
Nivel 2
Nivel 5
Nivel 1
Interfaz de nivel 6/7
Interfaz de nivel 2/3
Interfaz de nivel 5/6
Interfaz de nivel 4/5
Interfaz de nivel 1/2
Protocolo de nivel 7
Interfaz de nivel 4/5
Protocolo de nivel 6
Protocolo de nivel 5
Protocolo de nivel 4
Protocolo de nivel 3
Protocolo de nivel 2
Protocolo de nivel 1
21
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.
Entidad: Elemento que, en un equipo, realiza parte o la totalidad de las funciones correspondientes al nivel de la arquitectura al que pertenece.
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.
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.
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 inmediatamente superior que se considera usuario del anterior.
22
Tecnologías y protocolos de red
ICI(N) SDU(N)
SDU(N)PCI(N)
SAPInterfaz
Nivel N
Nivel N+1
CabeceraPDU(N)
SAP = Punto de acceso al servicio
IDU = Unidad de datos de la interfaz
SDU = Unidad de datos del servicio
PDU = Unidad de datos del protocolo
ICI = Información de control de la interfaz
Las entidades del nivel N intercambian PDU(N) en su protocolo de nivel N
IDU(N)
PCI = Información de control del protocoloSDU = Unidad de datos del servicio
SDU(N) = PDU(N+1)
IDU(N) = ICI(N) + SDU(N)
PDU(N) = PCI(N) + SDU(N)
ICI(N) SDU(N)
PDU(N+1)
23
Tecnologías y protocolos de red
Nivel N
Nivel N+1
Nivel N+1
SDU(N)PCI(N)
PDU(N)
PDU(N+1)
SDU(N-1)PCI(N-1)
PDU(N-1)
SDU(N)PCI(N)
PDU(N)
PDU(N+1)
SDU(N-1)PCI(N-1)
PDU(N-1)
24
Tecnologías y protocolos de red
Modelo de referencia OSI (Open System Interconnection)
5
25
Modelo de referencia OSI (Open System Interconnection)
características eléctricas, mecánicas y procedimentales de la comunicación en red. Físico
conseguir que la información fluya, libre de errores, entre dos máquinas que estén conectadas directamente (servicio orientado a conexión). Enlace
conseguir que los datos lleguen desde el origen al destino aunque no tengan conexión directa.Red
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.
Transporte
proporciona los mecanismos para controlar el diálogo entre las aplicaciones de los sistemas finales.Sesión
encargada de manejar las estructuras de datos abstractas y realizar las conversiones de representación de datos necesarias para la correcta interpretación de los mismos.
Presentació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
Aplicación
Tecnologías y protocolos de red
26
Nivel físico:
Tecnologías y protocolos de red
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
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
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
Modo de transmisión Simplex, half duplex o full duplex
27
Nivel de enlace:
Tecnologías y protocolos 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).
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).
Iniciación, terminación e identificación
Segmentación y bloqueo
Sincronización de octeto y carácter
Delimitación de trama
Control de errores
Control de flujo
Recuperación de fallos
Gestión y coordinación de la comunicación
28
Nivel de red:
Tecnologías y protocolos de red
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.
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.
Asignación de direcciones de red únicas
Interconexión de subredes distintas
Encaminamiento de paquetes
Control de congestión
Nivel de transporte:
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.
29
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 que a su vez interactúan con el nivel de aplicación pero ocultando la complejidad subyacente. 30
Ejemplos
Cable coaxial, Cable de fibra óptica, Cable de par trenzado, Microondas, Radio, RS-232Físico
ATM, Ethernet, Frame Relay, HDLC, PPP, Token Ring, Wi-Fi, STPEnlaceAppleTalk, IP, IPX, NetBEUI, X.25RedSCTP, SPX, TCP, UDPTransporteNetBIOSSesiónASN.1, MIME, SSL/TLS, XMLPresentación
DNS, FTP, HTTP, IMAP, IRC, NFS, NNTP, NTP, POP3, SMB/CIFS, SMTP, SNMP, SSH, Telnet, SIPAplicación
Tecnologías y protocolos de red
6
31
Tecnologías y protocolos de red
32
Arquitectura de los STRD
33
Arquitecturas de los sistemas distribuidos
1. Cliente / Servidor [Client / Server]Cliente realiza peticiones a servidorEs la primera y la más básica de todas las arquitecturas distribuidas
2. Arquitectura de N-capas [N-Tier]Nace por inconvenientes de la arquitectura cliente / servidorCliente /Servidor => Arquitectura de dos capas
Soluciones :Usar una única capa servidora más potenteDividir la capa servidora en 2 o más capas
34
Arquitectura de los STRD
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.
Es frecuente que estos sistemas tengan gran complejidad.
Se suelen estructurar jerárquicamente, para tratar con:Plazos de respuesta de diversas escalas.
Diferentes tipos de información.
Diferentes requisitos de procesamiento
35
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.
• 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
Arquitectura de los STRD
36
Acceso al medio
7
37
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 STRno se puede acotar el tiempo de transmisión de cada mensaje individual
Protocolos deterministas: para asegurar los requisitos temporales del sistema. Ejemplos:
TDMATOKEN BUS (IEEE 802.4)TOKEN RING (IEEE 802.5)Bus CAN (ISO 11898)
Acceso al medio
38
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
39
Paso de testigo
Priority-Driven Protocol.
• Política de arbitraje basada en prioridades. Pocos niveles de prioridad.
• Dos fases : arbitrio de prioridad mediante circulación de testigo, y transmisión del mensaje de datos.
• El testigo es un mensaje especial que tiene un campo con prioridad. Cada nodo indica la prioridad del mensaje que desea transmitir.
• Emite el nodo con mensaje más prioritario.
• Se emplea sobre IEEE 802.5 (token ring con paso de testigo).
• Útil en redes con velocidades 1-10 Mbits.
Acceso al medio
40
Paso de testigo
Timed Token Protocol.
• El ancho de banda se asigna cíclicamente.
• Cada estación puede enviar mensajes durante cierto tiempocuando tiene el testigo.
• El tiempo de envío debe ser suficiente para enviar los mensajes en su plazo. No puede haber colisiones.
• El tiempo de rotación del testigo está acotado.
• Se usa con redes rápidas: FDDI (Fiber Distributed Data Interface).
• Deriva del protocolo IEEE 802.4 token bus
Acceso al medio
41
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.
Acceso al medio
42
Comunicaciones con CAN
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.
8
43
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.
44
Comunicaciones con CAN
Prioridad de los mensajes.El identificador es la prioridad del mensajeCuanto 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 planificabilidadEl 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 yno hay errores de transmisión.
45
Sincronización de relojes
46
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.
• 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.
47
• 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).
Sincronización en sistemas distribuidos
48
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 causa-efecto 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
Ordenación de eventos
9
49
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.
Ordenación de eventos
50
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 ordenados y realizar una ordenación parcial de los eventos.
Ordenación de eventos
51
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• 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 jitterdel anuncio de eventos.
La tolerancia a fallos depende de la sincronía
Ordenación de eventos
52
Ordenación de eventos
Sistema síncronoOrdenación total de eventos
Sistema asíncronoOrdenación parcial de eventos
53
Sincronización de relojes
Los relojes locales tienen variaciones que obligan a sincronizarlos
relojes de cuarzo: ej. 1 s en 6 díassi la granularidad del tiempo es del orden de 1 ms. hay que sincronizar los relojes cada 8 min.
sincronización «suave»
para adelantaraumentar la frecuencia
incremento acotado del valor del reloj
para retrasardisminuir la frecuencia
mantener el valor durante un tiempo acotado
54
Sincronización de relojes
Problemática de la sincronización de relojes
• No es perfecta: los relojes locales de cada nodo pueden diferir respecto a UTC y entre ellos debido a:
• 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
• Redondeos de coma flotante(Historia del misil Patriot de la Guerra del Golfo...)
• Puede introducir discontinuidades en el tiempo
• 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.
10
55
• 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.
Sincronización de relojes
56
Sincronización de relojes
• Existen diferentes algoritmos. Tres de ellos son los siguientes:
• 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 dedestino 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 hora ralentizando el reloj o adoptando la nueva hora, según el caso.
57
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 acuerdoLos valores de tiempo deben tener la propiedad de que si a→bentonces t(a)<t(b)El tiempo de reloj siempre debe ir hacia adelante, nunca puede ser decreciente
Algoritmo de Lamport
58
54
60
48
42
36
30
24
18
12
6
0
Ejemplo de tres procesos, cada uno con su propio reloj
72
80
64
56
48
40
32
24
16
8
0
90
100
80
70
60
50
40
30
20
10
0
A
B
C
D
Con los mensajes C y D no se cumplen las reglas anteriores!
70
76
77
85
69
61
59
Algoritmo de Christian
T0 T1
tUTC
ti m={tUTC }
t
UTC
• 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] 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
Cliente
Servidor
60
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.
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.
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.
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.
Algoritmo de Berkeley
11
61
Planificación de STRD
62
• 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
• 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.
Planificación y análisis temporal
63
• 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.
• Se debe:• 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
• No infrautilizar los recursos
• Cumplir los plazos
Planificación de STRD
64
Planificación
Anomalías temporales:
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
G(<, μ) : grafo dirigido con las relaciones de precedencia (<) entre tareas y sus tiempos de ejecución (μ)
ω : mínimo tiempo para completar todas las tareas de L
65
T2
T1
T3
T9
T4
T6
T5
T8
T7
Planificación
Ejemplo:
P = {P1, P2, P3}
L = {T1, T2, T3, T4, T5, T6, T7, T8, T9}
G(<, μ):
T9/9T5/4T6/4T7/4T8/4
T1/3
T2/2
T3/2
T4/2
P1
0 5 10 15
P3
P2 ω = 12
66T8
T3
T2
T1
T4
T9
T5
T6
T7
Planificación
Ejemplo:
P = {P1, P2, P3}
L’ = {T1, T2, T4, T5, T6, T3, T9, T7, T8}
G(<, μ):
T9/9T5/4T6/4T7/4T8/4
T1/3
T2/2
T3/2
T4/2
P1
0 5 10 15
P3
P2 ω’ = 14
Cambio en el orden de prioridad
12
67
T2
T1
T3
T9
T4
T8
T7
T5
T6
Planificación
Ejemplo:
P = {P1, P2, P3}
L = {T1, T2, T3, T4, T5, T6, T7, T8, T9}
G(<‘, μ):
T9/9T5/4T6/4T7/4T8/4
T1/3
T2/2
T3/2
T4/2
P1
0 5 10 15
P3
P2 ω’ = 16
Cambio en las relaciones
de precedencia
68
T2
T1
T3
T9T4 T6
T5 T8
T7
Planificación
Ejemplo:
P = {P1, P2, P3}
L = {T1, T2, T3, T4, T5, T6, T7, T8, T9}
G(<, μ’):
T9/8T5/3T6/3T7/3T8/3
T1/2
T2/1
T3/1
T4/1
P1
0 5 10 15
P3
P2 ω’ = 13
Decremento de los tiempos
de ejecución
69
T2
T4
T9
T3 T6
T5
T8
T7
Planificación
Ejemplo:
P’ = {P1, P2, P3 , P4}
L = {T1, T2, T3, T4, T5, T6, T7, T8, T9}
G(<, μ):
T9/9T5/4T6/4T7/4T8/4
T1/3
T2/2
T3/2
T4/2
P2
0 5 10 15
P4
P3 ω’ = 15
Aumento de las unidades de procesamiento
T1P1
70
Planificación
Tipos Protocolos dirigidos por tiempo
Síncrono – Cíclico
Protocolos dirigidos por eventosPlanificación basada en prioridades
Análisis holístico
71
Planificación síncrona-cíclica
72
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.
• 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
13
73
Tarea a1
C = 5T = 30
Tarea a6
C = 10T = 60
Mensaje a2
C = 2T = 30
Mensaje a5
C = 10T = 60
Tarea a3
C = 20T = 30
Tarea a4
C = 5T = 60
CPU-1 CPU-2Red
ee11 (T = 30)
ee22 (T = 60)
e12 e23
e56 e45
Ejemplo
74
Tarea a1
Tarea a6
Mensaje a2
Mensaje a5
Tarea a3
Tarea a4
CPU-1 CPU-2Red
ee11 (T = 30)
ee22 (T = 60)
e12 e23
e56 e45
CPU-1
Fin a1351Envío a2345Inicio a130
Fin a63010Inicio a620
Fin a151Envío a245Inicio a10
WCETAcciónTiempoCPU-2
Fin a36020Inicio a340
Fin a33020Inicio a310
Fin a451Envío a545Inicio a40
WCETAcciónTiempo
101052025C
606060303030T
40a640a540a430a330a230a1DAcción
Especificación
Planificación cíclica
75
a4
a1
a2 a2
a1 a1a6
a3
a5
a4
e1 e1
e2
e1
0 10 20 30 40 50 60
a3
e2
76
Planificación basada en
prioridades
77
Planificación basada en prioridades
Basada en prioridades estáticas
• Mismos principios para planificar el medio de comunicación y los procesadores.
• La red es de paso de testigo o CAN-Bus.
• Se determinan los tiempos de respuesta más desfavorables de tareas y mensajes.
• El tiempo de respuesta global se calcula como la suma.
• Los periodos de las tareas/mensajes deben ser armónicos.
• Permite un mejor aprovechamiento de recursos.
• No hay métodos de tolerancia a fallos suficientemente maduros.
78
Planificación basada en prioridades
Basada en prioridades dinámicas
• Las decisiones de planificación (parte) se realizan en tiempo de ejecución.
• Spring es un sistema operativo de acuerdo con este enfoque.
• Planificación integrada de procesos y recursos.
• Se considera información semántica de las tareas para la planificación.
• Planificación a cuatro niveles.• Despachador.• Planificador local.• Planificador distribuido.• Controlador metanivel.
14
79
Objetivo:Planificación de STRD basados en planificación con prioridades fijasPresentar técnicas de análisis de tiempos de respuesta
Tipo de sistemas:Sistemas distribuidos débilmente acopladosNodos: planificación con prioridades fijas (RM o DM)Redes: tiempo de respuesta de los mensajes acotado
Planificación basada en prioridades fijas
80
Modelo de sistemaSistema hardware compuesto por:
Conjunto de procesadoresUnidos por redes de comunicaciones
Sistema software compuesto por:Tareas asignadas estáticamente a procesadoresMensajes asignados estáticamente a redesComunicación entre tareas:
En el mismo nodo: memoria compartidaEntre distintos nodos: paso de mensajes
Planificación basada en prioridades fijas
81
Planificación basada en prioridades fijas
Modelo lineal de sistema distribuidoUn evento genera una secuencia de accionesUna 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.
82
Planificación basada en prioridades fijas
Tareas periódicas con jitterEl instante crítico no es el mismo si hay jitterLas tareas periódicas no suelen tener jitterPuede haberlo si la planificación se hace con una granularidad apreciable (release jitter)El tiempo de respuesta se calcula con:
83
Planificación basada en prioridades fijas
Plazos arbitrariosSi el plazo es mayor que el período, puede haber varias activaciones pendientes en un cicloPara 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:
84
Planificación basada en prioridades fijas
Análisis de planificabilidadTiempo 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.
15
85
Análisis holístico de STRD
86
Análisis holístico de STRD
Desarrollado por Ken Tindell, 1994El 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 jitterEl retardo en la activación de una tarea (mensaje) depende del tiempo de respuesta del mensaje (tarea) anteriorSe continúa hasta que se complete una activación.
87
Análisis holístico de STRD
88
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)
89
Análisis holístico de STRD
Tiempo de respuesta global de peor caso de la acción aj generada por el evento ei
ikjhpk ik
iknij
ijijnij C
TJqw
CqBqw ∑∈∀
+
⎥⎥⎥
⎤
⎢⎢⎢
⎡ ++++=
)(
1 )()1()(
ijij Cqqw )1()(0 += )()(1 qwqw nij
nij =+
))((max ijjijij JqTqwR +−=
Problemática del jitterbijijij RRJ 11 −− −=
c.i.: c.p.:
WCGRT de aj-1 BCGRT de aj-1 90
Análisis holístico de STRD
Inicializar términos de jitter {Ji(0)} = 0
¿ {Ri(n+1)} = {Ri
(n)} ?
Calcular tiempos de respuesta {Ri(n+1)}
en función de términos {Ji(n)}
Estimar nuevos términos {Ji(n+1)}
en función de los nuevos {Ri-1(n+1)}
{Ri} = {Ri(n)}
n = 0 n = n+1
SI
NO
Algoritmo recursivo
16
91
Análisis holístico de STRD
92
Tarea a1
C = 5T = 30P = Alta
Tarea a6
C = 10T = 40P = Baja
Mensaje a2
C = 2T = 30P = Baja
Mensaje a5
C = 10T = 40P = Alta
Tarea a3
C = 20T = 30P = Baja
Tarea a4
C = 5T = 40P = Alta
CPU-1 CPU-2Red
ee11 (T = 30)
ee22 (T = 40)
e12 e23
e56 e45
Ejemplo
93
Tarea a1
Tarea a6
Mensaje a2
Mensaje a5
Tarea a3
Tarea a4
CPU-1 CPU-2Red
ee11 (T = 30)
ee22 (T = 40)
e12 e23
e56 e45
40Baja1040a6
-Alta1040a5
40Alta540a4
50Baja2030a3
-Baja230a2
30Alta530a1
DPCTAcción
94
Cálculo del jitter de las tareas:a1 : no tiene jitter pues es una tarea periódica y su activación no depende de
otras tareas J1 = 0
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
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
a6 : su activación depende de a5, que tiene una variabilidad en su tiempo de respuesta desde 0 (BCRT) hasta 15 (WCRT) J6 = 15
Tarea a1
Tarea a6
Mensaje a2
Mensaje a5
Tarea a3
Tarea a4
CPU-1 CPU-2Red
ee11 (T = 30)
ee22 (T = 40)
e12 e23
e56 e45
95
Cálculo del tiempo de respuesta global (WCGRT) de las tareas:
CPU-1 :
a1 : w1 = C1 = 5 R1 = 5 + 0 = 5
a6 : w6 = C6 + C1 = 10 + 5 = 15 R6 = 15 + 15 = 30
Red :
a2 : w2 = C2 + C5 = 2 + 10 = 12 R2 = 12 + 5 = 17
a5 : w5 = C5 = 10 R5 = 10 + 5 = 15
CPU-2 :
a3 : w3 = C3 + C4 = 20 + 5 = 25 R3 = 25 + 17 = 42
a4 : w4 = C4 = 5 R4 = 5 + 0 = 596
Tarea a1
Tarea a6
Mensaje a2
Mensaje a5
Tarea a3
Tarea a4
CPU-1 CPU-2Red
ee11 (T = 30)
ee22 (T = 40)
e12 e23
e56 e45
30155
42175R
1550
1750J
Baja1040a6
Alta1040a5
Alta540a4
Baja2030a3
Baja230a2
Alta530a1
PCTAcción
Tiempos de respuesta globales, desde el instante de ocurrencia del evento (e1, e2) correspondiente
17
97
Tarea a1
Tarea a6
Mensaje a2
Mensaje a5
Tarea a3
Tarea a4
CPU-1 CPU-2Red
ee11 (T = 30)
ee22 (T = 40)
e12 e23
e56 e45
30125
37125R
Baja1040a6
Alta1040a5
Alta540a4
Baja2030a3
Baja230a2
Alta530a1
PCTAcción
Tiempos de respuesta locales, desde el instante de activación de la tarea
98
a2
a6a1
a3a3
a6
a5a2 a2
a4
a1 a1a6
a3
a5
a4
e1 e1
e2 e2
e1
a3a3
a2
a6 a1
a3
a5 a2
a4
a1 a1 a6
a3 a4
e1 e1
e2 e2
e1
0 10 20 30 40 50 60
60 70 80 90 100 110 120
99