Вы находитесь на странице: 1из 53

Diseño de Software de Tiempo

Real
Objetivos
 Explicar el concepto de sistema de tiempo real y por
que estos son usualmente implementados como
procesos concurrentes.

 Describir el proceso de diseño de un sistema de


tiempo real.

 Explicar el rol de un sistema operativo de tiempo


real.

 Introducir arquitecturas de procesos genéricos


para monitoreo y control y sistemas de adquisición
de datos.
Puntos a tratar
 Diseño del sistema.

 Sistemas operativos de tiempo real.

 Sistemas de monitorización y control.

 Sistemas de adquisición de datos.


Sistemas de Tiempo Real
 Sistemas que supervisan y controlan su
ambiente.

 Inevitablemente asociado con los


dispositivos del hardware.

 Sensors: recoge datos del ambiente del


sistema ;
Sistemas de Tiempo Real
 Actuadores: Cambia (de algúna manera) el
ambiente del sistema;

 Tiempo crítico. Los sistemas de tiempo


real deben responder dentro de los
tiempos especificados.
Definición
 Un sistema de tiempo real es un sistema software
cuyo correcto funcionamiento depende de los
resultados producido por el mismo y del tiempo
en el que se producen estos resultados.

 Un sistema de tiempo real blando (soft) es un


sistema cuyo funcionamiento se degrada si los
resultados no se producen de acuerdo con los
requerimientos temporales especificados.
Definición
 Un sistema de tiempo real duro (hard) es
un sistema cuyo funcionamiento es
incorrecto si los resultados no se
producen de acuerdo con la especificación
temporal.
Sistema de Estimulo/Respuesta
 Dado un estímulo, el sistema puede producir un
respuesta dentro de un tiempo específico.

 Estímulos periódicos. ocurren a intervalos de


tiempo predecibles.
 Por ejemplo, un sensor de temperatura puede
registrar 10 tomas por segundo.

 Estímulos aperiódicos. ocurren de forma


irregular.
 Por ejemplo, un fallo en la alimentación de corriente
del sistema puede activar una interrupción que debe
procesarse.
Consideraciones de arquitectura

 La arquitectura genérica puede instanciarse


a varias arquitecturas de aplicaciones
diferentes.

 Son instancias de la arquitectura conducida


por eventos donde el estímulo, directa o
indirectamente, provoca la generación de
eventos.

 Se tienen lo que son la arquitectura para


sistemas de monitorización y control y para
sistemas de adquisición de datos.
Modelo de sistema de Tiempo Real
Procesos de control de Sensor/Actuador
Elementos de un sistema
 Proceso de control del sensor
 Recoge información de los sensores. Recoge
información en respuesta a un estímulo.

 Procesador de datos
 Lleva a cavo la recolección de información y el
sistema de computo responde.

 Proceso de control del actuador


 Genera señales de control para al actuador.
Programación en Tiempo Real
 Sistemas de tiempo real duros aun son
programados en ensamblador para
cumplir los plazos de tiempo.

 Lenguajes como C permiten generar


códigos eficientes,pero no incluyen
construcciones para soportar la
concurrencia o recursos compartidos.
Java lenguaje de tiempo real
 Java apoya la ligera concurrencia (los hilos y la
sincronización de métodos) y puede usarse para
algunos sistemas de tiempo real suaves.

 Java 2.0 no es conveniente para programa de tiempo


real duro pero las versiones de tiempo real de Java
están ahora disponibles para los problemas de dirección
como .

 No es posible especificar el instante de tiempo en el que los


hilos se deberían ejecutar.
 La recolección de basura es incontrolable.
 No es posible descubrir el tamaño de las colas asociadas.
 La implementación de la Máquina virtual de Java varía de una
máquina a otra.
Diseño del sistema
 El diseño del sistema debe estar asociado al
hardware y al software. Las funciones de la
partición al hardware o software .

 Las decisiones de diseño deberían ser hechos


en la base en los requisitos del sistema non-
funcionales .

 El hardware tiene un rendimiento bueno pero


desarrollo potencialmente más largo y menos
alcance para el cambio.
Proceso de diseño de sistemas TR
 Identifique los estímulos a ser procesados y las
respuestas requeridas a estos estímulos.

 Para cada estímulo y respuesta, identifique las


restricciones temporales.

 Elegir una plataforma de ejecución para el


sistema: el hardware y el sistema operativo de
tiempo real que se va a utilizar.
Proceso de diseño de sistemas TR
 Incorpar el procesamiento de estímulo y
respuesta a varios procesos concurrentes.

 Para cada estímulo y respuesta diseñar


algoritmos para llevar a cabo los cálculos
requeridos.

 Diseñar un sistema de planificación de los


procesos que asegure que dichos procesos
comienzan a tiempo para cumplir sus plazos
de ejecución.
Modelo de estados Bomba de
petróleo
Timeout

Card
inser ted
into reader Reading Initialising
do: get C C do: initialise
details display

Hose out of holster


Card removed
Waiting Card OK
do: display Validating Ready
welcome Delivering
do: validate
credit card do:
Nozzle deliver fuel
update display
trigger on

Timeout Invalid card


Nozzle trigger off

Nozzle trigger on
Resetting Stopped
do: display C C
error

Paying
Payment ack. Hose in
do: debit
CC account holster
Sistemas Operativos en tiempo
real
 Son sistemas operativos especializados que manejan
los procesos en el RTS.
 Son Responsables por el manejo de procesos y
recursos (procesador y memoria).
 Basados en un estándar las cuales son usadas sin
cambios o modificadas en casos particulares.
 Normalmente no incluye instalaciones como un
administrador de archivos.

14
Componentes del Sistema
Operativo
 Reloj en tiempo real
 Provee información para la calendarización de procesos.
 Controlador de interrupciones
 Controla consultas periódicas para los servicios.
 Planificación
 Escoge el siguiente proceso a ser ejecutado.
 Administrador de recursos
 Administra los recursos de la memoria y del procesador.
 Expedidor
 Comienza la ejecución de los procesos.
Componentes del sistema
imparables
 Administración de configuraciones
 Responsable por la reconfiguración dinámica del sistema,
software y hardware. Los módulos de hardware podrían ser
reemplazados y el software actualizado sin parar los sistemas.
 Administrador de fallas
 Responsable de detectar fallas de software y hardware y tomar
la acción apropiada(ej. Cambiar a los discos de respaldo) para
asegurarse que el sistema continúe funcionando.
Componentes del Os en tiempo
real
Scheduling
informa tion

R eal-time Interrupt
Scheduler
clock handler

Pr ocess r esour ce
r equir ements

Pr ocesses Av ailable
R esource
aw aiting r esour ce
mana ger
r esour ces list
Read y R eleased
pr ocesses r esour ces

Read y Pr ocessor
Despa tcher
list list

Ex ecuting pr ocess
Priorización en los procesos
 El procesamiento de algunos tipos de estímulos a veces
deben tomar prioridad.
 Interrumpe el nivel de prioridades.la mas alta de la
prioridades destinada a procesar necesita una respuesta
muy rápida.
 Prioridad en el nivel de reloj. Destinada a los procesos
periódicos.
 Dentro de estos, otros niveles de prioridad podrían ser
asignados.
Interrupción del servicio
 El control es automáticamente transferido a una
ubicación predeterminada de la memoria.
 Esta ubicación contiene una instrucción para saltar a un
servicio que interrumpe la rutina.
 Las interrupciones adicionales son desactivadas, el
servicio interrumpido y controlado es devuelto a los
procesos interrumpidos.
 Las rutinas de interrupción del servicio deben ser cortas,
simples y rápidas.
Procesos de servicio periódicos
 En muchos de los sistemas en tiempo real, hay muchas
clases de servicios periódicos, cada uno con diferentes
tiempos(el tiempo entre ejecuciones) tiempos de
ejecución y plazos(el tiempo en el cual el proceso debe
ser finalizado).
 El reloj de tiempo real marca el tiempo periódicamente y
en cada marcación ocasiona una interrupción la cual
agenda el administrador de procesos para los procesos
periódicos.
 El administrador de procesos selecciona un proceso el
cual esta listo para su ejecución.
Administrador de procesos
 Involucrado con la administración de el
conjunto de procesos concurrentes.
 Los procesos periódicos son ejecutados en
intervalos de tiempo pre especificados.
 Los RTOS usan el reloj de tiempo real para
determinar cuando ejecutar un proceso
tomando en cuenta:
 Periodo del proceso- tiempo entre ejecuciones.
 Plazos de los procesos-El tiempo en el cual el
proceso debe de finalizarse.
RTE administración de
procesos

Scheduler Resour ce manager Despatcher

Choose pr ocess Allocate memory Star t e xecution on an


for e xecution and pr ocessor available pr ocessor
Cambio de procesos
 La agenda escoge el siguiente proceso a ser
ejecutado por el procesador. Esto depende
de una estrategia de planificación la cual
puede tomar la prioridad del proceso en
cuenta.
 El administrador de recursos dispone de
memoria y procesador para que el proceso
pueda ser ejecutado.
 El despachador toma el proceso listo de una
lista, lo carga en el procesador y comienza la
ejecución.
Estrategias de Planificación
 Planificación no preventiva.
 Una vez que un proceso ha sido calendarizado para su
ejecución , este corre hasta su finalización o sea bloqueado por
alguna razon(ejemplo espera por I/O).
 Planificación preventiva
 La ejecución de un proceso que se ejecuta podría ser detenido
si un proceso de mayor prioridad requiere del servicio.
 Algoritmos de planificación
 Torneo;
 Frecuencia monótona;
 El plazo den entrega mas corto primero.
Sistemas de monitoreo y control
 Clase importantes en sistemas de tiempo
real.
 Pruebas continuas de los sensores y
tomar acciones dependiendo de el valor
de los sensores.
 Sistemas de monitoreo examina los
sensores y reportan los resultados.
 Los sistemas de control toman valores del
sensor y de las partes de control del
hardware.
Arquitectura genérica
Testing
process
P (A1) A1
S1 P (S1)
Monitoring
processes P (A2) A2
S2 P (S2)

P (A1) A3
Control
S3 P (S1) processes

P (A4) A4

Control panel
processes
Sistema de alarma antirrobo
 Un sistema requiere sensores que
monitoreen puertas y ventanas para
detectar la presencia de intrusos en un
edificio.
 Cuando un sensor indica una intrusión, el
sistema enciende las luces alrededor del
área y llama a la policía.
 El sistema debe poder funcionar sin una
conexión al suministro de energía
principal.
Sistema antirrobos
 Sensores
 Detectores de movimientos, sensores en la ventana, sensores
en las puertas;
 50 sensores en las ventanas, 30 sensores en las puertas y 200
sensores de movimiento;
 Sensor de caída del voltaje.
 Acciones
 Cuando un intruso es detectado, la policía es llamada de forma
automática;
 Las luces se encienden en los cuartos con sensores activados;
 Una alarma audible se enciende;
 El sistema activa energía de respaldo automáticamente cuando
se detecta una caída de voltaje.
El proceso de diseño del sistema
R-T
 Identificar los estímulos y las respuestas asociadas.
 Definir las restricciones de tiempo asociadas con cada
estimulo y respuesta.
 Distribuir las funciones del sistema para los procesos
concurrentes.
 Diseñar algoritmos para el procesamiento de estimulos y
la generacion de respuestas.
 Diseñar un sistema de planificación que asegure que el
proceso cumplira los plazos.
Estimulos a ser procesados
 Falla de energía
 Si la falla se genera el sistema debe cambiar
al sistema de respaldo en 50 ms.
 Alarma de intrusos
 Estimulo generado por los sensores del
sistema. La respuesta es llamar a la policía,
encender las luces del edificio y la alarma
sonora.
Timing requirements
Stimulus/Response Timing requirements
Power fail interrupt The switch to backup power must be completed
within a deadline of 50 ms.
Door alarm Each door alarm should be polled twice per
second.
Window alarm Each window alarm should be polled twice per
second.
Movement detector Each movement detector should be polled twice
per second.
Audible alarm The audible alarm should be switched on within
1/2 second of an alarm being raised by a sensor.
Lights switch The lights should be switched on within 1/2
second of an alarm being raised by a sensor.
Communications The call to the police should be started within 2
seconds of an alarm being raised by a sensor.
Voice synthesiser A synthesised message should be available
within 4 seconds of an alarm being raised by a
sensor.
Sistema de procesamiento de una
alarma
400 Hz 60 Hz 100 Hz

Mo vement Door sensor Windo w sensor


detector pr ocess process pr ocess

Detector sta tus Sensor sta tus Sensor sta tus

560 Hz Alarm system

Building monitor Comm unica tion


process pr ocess

Pow er failure
interrupt Building monitor Room n umber

Po wer switch Alarm system


process process Alert messa ge

Room n umber
Alarm system Alarm system Alarm system
Room n umber
Audib le alar m Lighting contr ol Voice synthesis er
process process pr ocess
Building_monitor process 1
class BuildingMonitor extends Thread {

BuildingSensor win, door, move ;

Siren siren = new Siren () ;


Lights lights = new Lights () ;
Synthesizer synthesizer = new Synthesizer () ;
DoorSensors doors = new DoorSensors (30) ;
WindowSensors windows = new WindowSensors (50) ;
MovementSensors movements = new MovementSensors (200) ;
PowerMonitor pm = new PowerMonitor () ;

BuildingMonitor()
{
// initialise all the sensors and start the processes
siren.start () ; lights.start () ;
synthesizer.start () ; windows.start () ;
doors.start () ; movements.start () ; pm.start () ;
}
Building monitor process 2
public void run ()
{
int room = 0 ;
while (true)
{
// poll the movement sensors at least twice per second (400 Hz)
move = movements.getVal () ;
// poll the window sensors at least twice/second (100 Hz)
win = windows.getVal () ;
// poll the door sensors at least twice per second (60 Hz)
door = doors.getVal () ;
if (move.sensorVal == 1 | door.sensorVal == 1 | win.sensorVal == 1)
{
// a sensor has indicated an intruder
if (move.sensorVal == 1) room = move.room
if (door.sensorVal == 1) room = door.room ;
if (win.sensorVal == 1 ) room =

lights.on (room) ; siren.on () ; synthesizer.on (room) ;


break ;
}
}
Building_monitor process 3

lights.shutdown () ; siren.shutdown () ; synthesizer.shutdown () ;


windows.shutdown () ; doors.shutdown () ; movements.shutdown () ;

} // run
} //BuildingMonitor
Sistemas de control
 Un sistema de alarma anti robo es
primeramente un sistema de monitoreo.
Recoge informacion de sensores pero no de
actores de control en tiempo real.
 Los sistemas de control son similares pero,
en respuesta a los resultados del sensor, el
sistema envia señales de control a los
actores.
 Un ejemplo de un sistema de control y
monitoreo es un sistema que monitorea la
temperatura y cambia los calentadores a
encendido o apagado.
Sistema de control de temperatura
500 Hz

Sensor
process

Sensor
500 Hz values

Ther mosta t
process

Switch command
500 Hz Room n umber Ther mosta t pr ocess

Heater contr ol Furnace


process contr ol pr ocess
Sistema de adquisicion de
informacion
 Recollectar informacion de los sensores para un
posterior analisis y procesamiento.
 Los procesos de recoleccion de informacion y procesos
de procesamiento pueden tener diferentes periodos y
limitess.
 La recoleccion de informacion puede ser mas rapida que
procesarla
ejemplo. Recolectar informacion sobre una explosion.
 Los topes circulares o anillos son un mecanismo para
igualar diferencia de velocidad.
Data acquisition architecture
Sensors (each da ta flow is a sensor v alue)
Sensor Sensor
s1 identifier and identifier and
value value
Sensor Sensor da ta Process
s2 Display
process buffer da ta

s3

Sensor Sensor
s4 identifier and
identifier and
value value
s5 Sensor Sensor da ta Process
process b uffer da ta

s6
Recoleccion de informacion del
reactor
 El sistema recolecta informacion por un
grupo de sensores que monitorean el flujo
de neutrones de un reactor nuclear.
 Informacion del flujo es insertada en un
disco duro par su posterior procesamiento.
 El disco duro es en si implementado como
un proceso concurrente o sea que la
coleccion y los procesos de
procesamiento pueden ser sincronizados.
Monitoreo del flujo del reactor

Neutron flux sensors


Sensor
identifier and Processed
flux value flux le vel
A-D Flux da ta Flux Operator
convertor buffer processing display
A ring buffer

Producer
process

Consumer
process
Exclusion comun
 Productor procesa la recoleccion de
informacion y la añande al buffer.
Consumidor toma la informacion del buffer
y hace elementos disponibles.
 Procesos de productor y consumidor
deben ser mutamente excluidos de
accesar el mismo elemento.
 El buffer debe detener los procesos de
produccion añadiendo informacion a un
buffer lleno y procesos de consumidor
tratando de tomar informacion de un buffer
vacio.
Implementacion Ring buffer 1

class CircularBuffer
{
int bufsize ;
SensorRecord [] store ;
int numberOfEntries = 0 ;
int front = 0, back = 0 ;

CircularBuffer (int n) {
bufsize = n ;
store = new SensorRecord [bufsize] ;
} // CircularBuffer
Implementacion Ring buffer 2

synchronized void put (SensorRecord rec )


throws InterruptedException
{
if ( numberOfEntries == bufsize)
wait () ;
store [back] = new SensorRecord (rec.sensorId, rec.sensorVal) ;
back = back + 1 ;
if (back == bufsize)
back = 0 ;
numberOfEntries = numberOfEntries + 1 ;
notify () ;
} // put
Implemetacion Ring buffer 3
synchronized SensorRecord get () throws InterruptedException
{
SensorRecord result = new SensorRecord (-1, -1) ;
if (numberOfEntries == 0)
wait () ;
result = store [front] ;
front = front + 1 ;
if (front == bufsize)
front = 0 ;
numberOfEntries = numberOfEntries - 1 ;
notify () ;
return result ;
} // get
} // CircularBuffer
Elementos clave
 Exactitud del Sistema de tiempo real depende no solo
del los que el sistema hace pero tambien en que tan
rapido reacciona.
 Un modelo de sistema RT general incluye procesos de
asociacion con sensores y actores(actuators).
 Arquitecturass de sistemas de tiempo real son
diseñadas como un numero de procesos concurrentes.
Elementos clave
 Sistemas de operacion a tiempo real son
responsables por el manejo de el proceso y
los recursos.
 Sistemas de control y monitoreo activan los
sensores y envian señales de control a los
actores(actuators).
 Sistemas de adquisicion de informacion son
generalmente organizados de acuerdo al
modelo productor y consumidor.

Вам также может понравиться