TEMA 7

Anuncio
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
Descargar