Unidad 1.2 2022

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 34

Sistemas en Tiempo

Real
Equipo Cátedra
Ing. Silvia Sánchez Zuaín (Profesor
Asociado)
Ing. Fernando Leturia(Profesor JTP)
Analista Antonella Mattia (Profesor JTP)
UNIDAD 1
Introducción a los Sistemas en
Tiempo Real
1. Tareas en Tiempo Real

2. Clasificación

3. Concurrencia en los STR

Contenido 4. Sistemas Operativos de TR

5. Lenguajes de Programación
para STR

6. Hardware para STR


Contenidos


O Está definido como una
secuencia de instrucciones de un
programa en ejecución que
pueden ser ejecutadas
concurrentemente con otras
instrucciones de programa.

Proceso O El concepto de proceso es


dinámico en contraposición con
el de programa que es
estático.

O Para algunos autores, el término


tarea es equivalente al término
proceso.

O Para otros, la tarea es una


desagregación del proceso.
1.Tareas de tiempo
real
O Las actividades de un sistema de tiempo real
se llaman tareas
O Tienen varios tipos de propiedades
 funcionales: qué hacen
 temporales: cuándo lo hacen
 fiabilidad
O El comportamiento temporal de las tareas se
especifica mediante sus atributos temporales
 cuándo se ejecutan: esquema de
activación
 qué plazo tienen para ejecutar cada
acción
Ejecución de una tarea
de tiempo real
Activación Límite

Arranque Terminación

Ejecución de la Tarea

Tiempo de Respuesta
Atributos
temporales
O Activación
 periódica: a intervalos regulares, con período
T
 aperiódica: cada vez que ocurre un suceso
determinado
¾ esporádica: separación mínima entre
activaciones T
¾ estocástica, a rachas, irregular
O Plazo de respuesta
 absoluto: tiempo límite para terminar
 relativo: intervalo desde la activación
Se trata de garantizar que la ejecución de cada
tarea termine dentro del plazo
Tipos de requisitos
temporales
O Tiempo real estricto (hard real-time)
 todas las acciones deben terminar dentro del plazo especificado
Ej.: control de vuelo.

O Tiempo real flexible (soft real-time)


 se pueden perder plazos de vez en cuando
 el valor de la respuesta decrece con el tiempo

Ej.: sistema de adquisición de datos

O Tiempo real firme (firm real-time)


 se pueden perder plazos ocasionalmente
 una respuesta tardía no tiene valor

En un mismo sistema puede haber tareas con distintos


tipos de requisitos temporales
IMPORTANTE!!!!

O LA CONSIGNAS DE LAS
ACTIVIDADES DE ESTE
MATERIAL RESPONDERLAS Y
ENVIARLAS POR LA PLATAFORMA
EN UN ARCHIVO DOC

Durán 2019
Consigna 4:

O ¿Qué tipo de requisitos temporales generan


los eventos identificados en el video?
O Ponga ejemplos en algún otro sistema de
requisitos temporales no identificados en el
video
2. Clasificación de
los STR
Se clasifican de acuerdo con:
La integración con el sistema
físico:
• Sistemas Reactivos
• Sistemas Encapsulados o Embebidos
• Sistemas Orgánicos
Con la escalas de Tiempo:
• Basados en reloj:
• Basados en eventos:
• Mixtos.
2. Clasificación de
los
De acuerdo conSTR
tolerancia a
fallas en el tiempo de
respuesta:
• Soft real time systems (Blando)
• Hard real time systems (Duro):
• Firm real time systems (Firmes o
intermedios):
De acuerdo con la interacción
con el operador humano
• Interactivos
• De control de Proceso
Consigna 5:

Clasifique el STR del video teniendo


en cuenta los cuatro criterios
vistos.
3. Concurrencia en
STR
Multiprocesam
Multiprogram
iento:cuando
ación: cuando
dos o más
dos o más
procesos se
procesos se
implementan En estos
implementan,
cooperando dos casos
cooperando
entre si, y y el concepto
entre si y
ejecutándose básico es el
ejecutándose
en paralelo de Proceso
en paralelo,
en máquinas
en máquinas
de más de
de un solo
un
procesador.
procesador.
En principio todos los STR
son concurrentes. La
Un sistema concurrente
implementación de la
se caracteriza por
concurrencia al nivel del
permitir la existencia de
hardware se realiza a
varios procesos activos
través de las facilidades
simultáneamente.
ofrecidas por el sistema
de interrupciones.

Sistema
Concurrente
Ventajas de las tareas
concurrentes en STR

O Reflejan el paralelismo natural que existe


en el dominio del problema cuando
algunas actividades ocurren
simultáneamente.

O Permite separar lo que concierne al qué


hace cada tarea de cuando lo hace.
Ventajas de las tareas
concurrentes en STR
O Pueden reducir el tiempo total de ejecución del
sistema.

O Permiten una planificación más flexible porque


las tareas con tiempos críticos con tiempo
límite inflexible pueden darse con una
prioridad mayor que las tareas menos críticas.

O Identificarlas tempranamente en el diseño


permite un análisis de rendimiento temprano
Cooperación entre tareas
concurrentes
O Exclusión mutua: dos o más procesos desean
acceder a una misma variable o a un mismo
recurso simultáneamente.

O Sincronización de procesos: dos o más


proceso pueden cooperar en la ejecución de un
determinado programa a través de señales de
control.
Esto implica la necesidad de que sean
ejecutados en un orden determinado, y
posiblemente, unos deben esperar los resultados
de otros.
Comunicación y sincronización

O Problema productor/consumidor:
Ocurre cuando las tareas necesitan
comunicarse con otras para pasarse
datos de unas a otras.
Hay una tarea productora y una
consumidora de los datos.
La comunicación se dá por medio del
intercambio de mensajes que puede
ser síncrona o asíncrona
Comunicación y
sincronización
O Comunicación y sincronización a través
de intercambio de mensajes:
Para el intercambio de mensajes se
utilizan las siguientes primitivas:

SEND mensaje TO
destino
RECEIVE mensaje FROM origen
4. Sistemas
operativos
Los sistemas operativos convencionales
no son adecuados para realizar sistemas
de tiempo real
Ono tienen un
comportamiento determinista
Ono permiten garantizar los
tiempos de respuesta
Oalgunos de ellos son poco
fiables
Sistemas operativos
Un sistema operativo de tiempo real
(SOTR) debe soportar
 concurrencia: procesos ligeros (hebras
o threads)
 temporización: medida de tiempos y
ejecución periódica
 planificación determinista: gestión del
procesador y otros recursos
 dispositivos de E/S: acceso a recursos
de hardware e interrupciones
O Es un conjunto de normas
IEEE/ISO que definen
interfaces de sistemas
operativos
O Permiten desarrollar software
portátil y reutilizable (Portable
Operating System Interface)

POSIX O Las normas definen servicios


que se pueden incluir o no en
un sistema operativo particular
O Además se definen perfiles de
aplicación con conjuntos de
servicios estándar
O Hay interfaces para C, Ada, y
otros lenguajes
O Servicios de tiempo
real
 Relojes precisos y
temporizadores

POSIX para  Señales de tiempo real


 Planificación por

STR prioridades

O Servicios de hebras
(threads)
 Hebras
 Mutex yvariables de
condición

Durán 2019
O LynxOS
O pSOS
O QNX
O VxWorks
O RTEMS
O RT-Linux

Ejemplos O MaRTE OS —
Universidad de
Cantabria
de SOTR O perfil POSIX
PSE50
O para sistemas
empotrados en
PCx86
O Open Ravenscar Kernel
(ORK) — DIT/UPM
O núcleo de SOTR
para el lenguaje
Ada y procesadores
SPARK/PC
5. Lenguajes de
Programación para STR

Un lenguaje de programación de
sistemas de tiempo real debe facilitar la
realización de sistemas:

 concurrentes,
 fiables,
 con un comportamiento
temporal analizable
Lenguajes de
Programación para STR
Hay varias clases de lenguajes de interés
para STR:
O Lenguajes ensambladores: flexibles y
eficientes, pero costosos y poco fiables

O Lenguajes secuenciales (Fortran, C, C+


+): necesitan un SO para concurrencia y
tiempo real

O Lenguajes concurrentes (Ada, Java, ...):


concurrencia y tiempo real incluidos en el
lenguaje
Lenguaje C
O Es un lenguaje muy utilizado para
programación de sistemas
O Es un lenguaje
 estructurado, con bloques
 sin tipado fuerte
 muy flexible (pero a veces poco seguro)

O No tiene integrada la concurrencia ni el


tiempo real
 se consigue invocando servicios del sistema
operativo de forma explícita
O No facilita la descomposición en módulos ni la
programación con objetos
 se puede hacer con C++
Lenguaje Ada
 Es un lenguaje diseñado específicamente para
sistemas de tiempo real empotrados
 Concurrencia
 tiempo real
 acceso al hardware e interrupciones
 Es un lenguaje descendiente de Pascal
 estructura en bloques
 fuertemente tipado
 Está pensado para construir sistemas grandes
y cambiantes
 – paquetes (módulos) y esquemas genéricos
 – extensión de tipos con herencia
 – biblioteca jerárquica
 – interfaces normalizadas con otros lenguajes (C,
Fortran)
Lenguaje Java
O Es un lenguaje pensado para construir
sistemas distribuidos
 basado en objetos dinámicos
 con concurrencia integrada en el lenguaje
 bibliotecas de clases (APIs) muy útiles
 pensado para que el código objeto sea portátil

O La definición original no es adecuada para


tiempo real
 la planificación de actividades concurrentes no está
bien definida
 los mecanismos de sincronización son inadecuados
 la gestión dinámica de memoria introduce
indeterminismo
 la medida del tiempo no es suficientemente precisa
 otros problemas con excepciones y concurrencia
Lenguaje JavaSTR
O Real-Time Specification for Java (RTSJ)
 basada en un máquina virtual extendida
para STR
 hay una implementación de referencia
(TimeSys)
 y otras comerciales (por ejemplo,
Jamaica)
 investigación: Java para sistemas de alta
integridad (HIJA)
O Los compiladores y las máquinas virtuales
para Java de tiempo real no están todavía
completamente maduros
 lo más complicado es la gestión de
memoria y la recogida de basura
Lenguajes Síncronos
O Se basan en un modelo matemático sencillo
 los sucesos son instantáneos
 las acciones también
 puede haber sucesos y reacciones simultáneos
 se puede efectuar un análisis formal del
comportamiento temporal

O Ejemplos
 Esterel, Lustre, Signal, Statecharts

O Se compilan a autómatas realizados en lenguajes


de programación secuenciales (C, Ada sin
concurrencia)
O Manejo de Sistemas
de Entrada Salida
O Polled input/output
O Manejo de

6. interrupciones de
entrada/salida
O Acceso directo a
Hardware memoria
O Categorías de
para STR dispositivos de
Entrada Salida
O Analógicos
O Digitales paralelos
O Digital de pulso
O Digital serial
O Digital de onda

También podría gustarte