SistemasTiempoReal.ppt

Anuncio
Sistemas en tiempo real (STR)
Sistemas en tiempo real (STR)
• Definición y características
• Concurrencia
•Comunicación y sincronización
•Variables compartidas
•Semáforos
•Monitores
•Métodos sincronizados
•Paso de mensajes
Definición de sistemas de tiempo
real
• Cualquier actividad o proceso de información que
tiene que responder a un estímulo de entrada
generado externamente en un periodo finito y
especificado (Young 1982).
• Un sistema de tiempo real es aquel al que se le
solicita que reaccione a estímulos del entorno en
intervalos de tiempo fijados por el entorno
(Randell 1995).
Informática III 2008
Ing. Estela D'Agostino
3
Sistemas de tiempo real
Sistema
Recibe eventos del
entorno
Informática III 2008
Responder de acuerdo
a un comportamiento
determinado y en un
tiempo determinado
Ing. Estela D'Agostino
4
Sistemas de tiempo real
Componente de un sistema mayor
Sistemas empotrados o embebidos
Informática III 2008
Ing. Estela D'Agostino
5
Sistemas de tiempo real
• Resultados lógicos.
• Tiempo en el que se producen esos resultados.
El tiempo en que se ejecutan las acciones del sistema
es significativo
Informática III 2008
Ing. Estela D'Agostino
6
Características de los STR (1)
• Complejos:
– Algunos sistemas tienen millones de líneas de código
– la variedad de funciones aumenta la complejidad incluso en
– sistemas relativamente pequeños
• Control concurrente de los distintos componentes del
sistema:
– los dispositivos físicos controlados funcionan al mismo
tiempo
– las tareas que los controlan actúan concurrentemente
Informática III 2008
Ing. Estela D'Agostino
7
Características de los STR (2)
• Fiable y seguro:
–
–
–
–
sistemas críticos: fallos con consecuencias graves
pérdida de vidas humanas
pérdidas económicas
daños medioambientales
• Implementación eficiente:
– Son críticos respecto al tiempo, lo que implica que una
implementación eficiente es importante
Informática III 2008
Ing. Estela D'Agostino
8
Características de los STR (3)
• Interface con sistemas hardware:
– Los sistemas embebidos requieren que el software esté
preparado para su interacción con el mundo exterior
• Funcionalidades de tiempo real:
– acciones en intervalos de tiempo determinados
– es fundamental que el comportamiento temporal de
los STR sea determinista o, al menos, previsible
– el sistema debe responder correctamente en todas las
situaciones
– en los sistemas de tiempo real estricto hay que prever
el comportamiento en el peor caso posible
Informática III 2008
Ing. Estela D'Agostino
9
Otras características
• Los recursos están limitados
– procesador, memoria, pantalla, etc.
• Los dispositivos de entrada y salida son especiales
para cada sistema
– no hay teclado ni pantalla normales
• El computador debe reaccionar a tiempo ante los
cambios en el sistema físico.
– una acción retrasada puede ser inútil o peligrosa
Informática III 2008
Ing. Estela D'Agostino
10
Tipos de sistemas de tiempo real
• Estrictos (hard real time): las respuestas se deben
producir en los tiempos especificados. (sistemas
de control de vuelos)
• Realmente estrictos: los tiempos de respuestas son
muy breves: (sistema de guía de misiles)
• No estrictos (soft real time): el tiempo es
importante pero el sistema se degrada, aunque
seguirá funcionando a pesar de que los tiempos no
se cumplan estrictamente.(sistema de adquisición
de datos).
Informática III 2008
Ing. Estela D'Agostino
11
Aplicaciones
•
•
•
Control de procesos.
Fabricación (control de producción).
Comunicación, mando y control.
–
–
–
Reserva de pasajes aéreos
Control de pacientes
Control de tráfico
La mayoría de estos sistemas son concurrentes
Informática III 2008
Ing. Estela D'Agostino
12
Características de los STR
• Complejos.
• Control concurrente de distintos componentes
del sistema
• Fiable y seguro
• Implementación eficiente
• Interface con sistemas hardware
• Funcionalidades de tiempo real
Informática III 2008
Ing. Estela D'Agostino
13
Concurrencia
• Son la notación y las técnicas de programación
que expresan el paralelismo potencial
Un programa concurrente es un conjunto de procesos
autónomos que se ejecutan en paralelo.
Informática III 2008
Ing. Estela D'Agostino
14
Procesos concurrentes
El trabajar con procesos concurrentes añade
complejidad a la tarea de programar
¿cuáles son entonces los beneficios que aporta
la programación concurrente?
Informática III 2008
Ing. Estela D'Agostino
15
Beneficios de la programación
concurrente
• Mejor aprovechamiento de la CPU
• Velocidad de ejecución
• Solución de problemas de naturaleza concurrente
–
–
–
–
–
Sistemas de control
Tecnologías web
Aplicaciones basadas en interfaces de usuarios
Simulación
SGDB
Informática III 2008
Ing. Estela D'Agostino
16
Proceso
• Es una instancia de ejecución de un programa.
• Tiene un ciclo de vida, es decir pasa por distintos
estados.
Informática III 2008
Ing. Estela D'Agostino
17
Ciclo de vida de un proceso
No existente
No existente
nacido
listo
terminado
ejecución
Informática III 2008
Ing. Estela D'Agostino
18
Finalización de un proceso
1.
2.
3.
4.
5.
Finaliza la ejecución de su cuerpo.
Ejecución de alguna sentencia de auto finalización.
Condición de error sin tratar.
Aborto por medio de la intervención de otro proceso.
Nunca: procesos que se ejecutan en bloques que no
terminan.
6. Cuando ya no son necesarios.
Informática III 2008
Ing. Estela D'Agostino
19
Implementación de un conjunto de
procesos
1. Multiplexar sus ejecuciones en un único
procesador (multiprogramación).
2. Multiplexar sus ejecuciones en un sistema
multiprocesador con acceso a memoria
compartida (multiprocesamiento)
3. Multiplexar sus ejecuciones en diversos
procesadores que no comparten memoria
(sistema distribuído)
Informática III 2008
Ing. Estela D'Agostino
20
Ejecución de un programa
concurrente
Los procesos deben ser creados, distribuidos en los
procesadores y finalizados. Estas actividades la realiza el
nucleo de ejecución conocido como Run Time System
Support (RTSS).
Se encarga de la creación, terminación y
multiplexado de los procesos
Informática III 2008
Ing. Estela D'Agostino
21
Run Time System Support
• Estructura software programada como parte
de la aplicación (Modula-2).
• Sistema software generado junto al código
objeto del programa por el compilador.
(Ada y Java).
• Estructura hardware microcodificada en el
procesador.
Informática III 2008
Ing. Estela D'Agostino
22
Ejecución de los procesos
• Todos los SO tiene formas de crear procesos.
• Cada proceso se ejecuta en su propia maquina
virtual.
• Los SO modernos permiten crear hilos (procesos
ligeros) dentro de la misma máquina virtual.
Informática III 2008
Ing. Estela D'Agostino
23
¿Quien provee los mecanismos de
concurrencia?
• Sistema operativo (SO de Tiempo real)
• Lenguaje ( lenguaje que proporciona
mecanismos para concurrencia)
Informática III 2008
Ing. Estela D'Agostino
24
Ventajas si el lenguaje proporciona
los mecanismos de concurrencia
• Programas más legibles
• Programas más portables
• Si el sistema es embebido puede que no
tenga un SO residente
Informática III 2008
Ing. Estela D'Agostino
25
Ventajas si el SO proporciona la
concurrencia
• El modelo de concurrencia es el mismo para
todos los lenguajes.
• Puede no ser fácil implementar el modelo
de concurrencia sobre algún modelo de SO
Informática III 2008
Ing. Estela D'Agostino
26
Representación de procesos
• Depende del lenguaje:
– Process
– Task
– Thread
Informática III 2008
Modula
Ada
Java
Ing. Estela D'Agostino
27
Programación concurrente
Los lenguajes concurrentes tiene elementos para:
• Crear procesos concurrentes
• Sincronizar procesos
• Comunicar procesos
Informática III 2008
Ing. Estela D'Agostino
28
Comportamiento de procesos
• Independientes: no se sincronizan
comunican. (son muy raros)
ni
•Cooperativos: se comunican y sincronizan sus
actividades.
•Competitivos: compiten por recursos del
sistema.
Informática III 2008
Ing. Estela D'Agostino
29
Sincronizar y Comunicar
• Sincronizar: Satisfacer las restricciones en el enlazado
de las acciones de los distintos procesos.
• Comunicar: pasar información de un proceso a otro.
Informática III 2008
Ing. Estela D'Agostino
30
Sincronizar y Comunicar
•Variables compartidas: objetos a los que puede
acceder más de un proceso
•Paso de mensajes: intercambio explícito de datos
entre dos procesos mediante el paso de un mensaje
mediante alguna forma que brinda el SO o el propio
lenguaje.
Informática III 2008
Ing. Estela D'Agostino
31
Variables compartidas
Son objetos a los que puede acceder mas de un
proceso.
La comunicación se logra accediendo a dichas
variables cuando sea necesario
Trae problemas
Informática III 2008
Ing. Estela D'Agostino
32
Mensajes
El intercambio de mensajes implica el paso
explícito de datos entre un proceso y otro.
Esto se realiza mediante algún mecanismo
Informática III 2008
Ing. Estela D'Agostino
33
Variables compartidas
Considere dos procesos que actualizan una variable
compartida, X, mediante la sentencia: X:= X+1
– Carga el valor de X en algún registro.
– Incrementa el valor en el registro en 1.
– Almacena el valor del registro de nuevo en X.
Como ninguna de las tres operaciones es indivisible,
dos procesos que actualicen la variable
simultáneamente generarían un entrelazamiento que
podría producir un resultado incorrecto.
Informática III 2008
Ing. Estela D'Agostino
34
Variables compartidas
• Las partes de un proceso que tienen acceso
a las variables compartidas han de
ejecutarse indivisiblemente unas respecto a
las otras.
• Estas partes se denominan secciones
críticas.
• La protección requerida se conoce como
exclusión mutua.
Informática III 2008
Ing. Estela D'Agostino
35
Variables compartidas
• Sección crítica: secuencia de instrucciones que
debe ejecutarse sin perder el control, y afecta
variables compartidas. Si un proceso esta
ejecutando código de su sección crítica, ningún
otro proceso puede estar ejecutando código de su
sección crítica
Informática III 2008
Ing. Estela D'Agostino
36
Sincronizaciones necesarias en la programación
concurrente
– Exclusión mutua: es el mecanismo que asegura que
solo un proceso está haciendo algo en un instante
determinado. Sincronización para proteger una sección
crítica. Es necesario si dos procesos comparten
variables.
– Sincronización condicionada: necesaria cuando un
proceso necesita realizar alguna acción, solo después
que se haya cumplido una condición.
Informática III 2008
Ing. Estela D'Agostino
37
Sincronización de condición
Utilización de buferes: productor / consumidor
Son aquellos problemas en los que existe un conjunto de
procesos que producen información que otros procesos
consumen, siendo diferentes las velocidades de producción y
consumo de la información. Este desajuste en las
velocidades, hace necesario que se establezca una
sincronización entre los procesos de manera que la
información no se pierda ni se duplique, consumiéndose en
el orden en que es producida.
Informática III 2008
Ing. Estela D'Agostino
38
Variables compartidas
• Semáforos
• Monitores tipos protegidos
• Metodos sincronizados
Informática III 2008
Ing. Estela D'Agostino
39
Semáforos
Introdujo Dikstra en 1968.
Permite resolver la mayoría de los problemas de
sincronización entre procesos y forma parte del
diseño de muchos sistemas operativos y de lenguajes
de programación concurrentes.
Informática III 2008
Ing. Estela D'Agostino
40
Semáforos binarios
Es un indicador de condición que registra si
un recurso está disponible o no.
Solo puede tomar dos valores (semáforo
binario):
1: recurso disponible
0: recurso no disponible
Se le asocia una cola de tareas.
Informática III 2008
Ing. Estela D'Agostino
41
Semáforos
Sólo se permiten tres operaciones sobre un semáforo:
• inicializa (S: SemaforoBinario; v: integer)
Poner el valor del semáforo S al valor de v (0 o 1)
• espera (S)
(wait(s))
if S = 1 then (hacer lo que deba hacer) S := 0
else suspender la tarea que hace la llamada y ponerla en la
cola de tareas
• señal (S)
(signal(s))
if la cola de tareas está vacía then S := 1
else reanudar la primera tarea de la cola de tareas
Informática III 2008
Ing. Estela D'Agostino
42
Sincronización de condición con semáforos
var S : semaforo (inicialmente en 0)
process p1
..........
wait(S);
//espera hasta que S=1
..........
end p1;
process p2
..............
signal(S);
..........
El uso de wait y signal
se da en dos procesos
por separado. En uno se
ejecuta wait y en el otro
signal.
end p2;
Informática III 2008
Ing. Estela D'Agostino
43
Exclusión mutua con semáforos
var mutex : semaforo; (inicialmente
a 1)
process p1
loop
wait(mutex) (mutex =1 entra
seccion critica)
<seccion critica>
signal(mutex);
<seccion no critica>
end
endp 1;
var mutex : semaforo;
(inicialmente a 1)
process p2
loop
wait(mutex)
<seccion critica>
signal(mutex);
<seccion no critica>
end
endp 2;
wait: se usa como operación de bloqueo
signal: se usa como operación de desbloqueo
Informática III 2008
Ing. Estela D'Agostino
44
Semáforos para proteger un
conjunto de recursos
En caso que exista un conjunto de recursos similares,
se puede usar una versión más general de semáforo
que lleve la cuenta del número de recursos
disponibles. En este caso el semáforo se inicializa
con el número total de recursos disponibles (N) y las
operaciones de espera y señal se diseñan de modo
que se impida el acceso al recurso protegido por el
semáforo cuando el valor de éste es menor o igual
que cero.
Informática III 2008
Ing. Estela D'Agostino
45
Características de los semáforos
Los semáforos tienen algunas características que pueden generar
incovenientes:
•las variables compartidas son globales a todos los procesos.
•las acciones que acceden y modifican dichas variables están
diseminadas por los procesos.
•para poder decir algo del estado de las variables compartidas,
es necesario mirar todo el código.
•la adición de un nuevo proceso puede requerir verificar que el
uso de las variables compartidas es el adecuado.
Informática III 2008
Ing. Estela D'Agostino
Programas
poco
escalables
46
Críticas a los semaforos
• Si el semáforo se ubico en un lugar erróneo
falla y estamos en presencia de un sistema
en tiempo real, falla el programa completo
No se garantiza la exclusión mutua
Posible solución : monitores
Informática III 2008
Ing. Estela D'Agostino
47
Monitores
Es un conjunto de procedimientos que proporciona el
acceso con exclusión mutua a un recurso o conjunto
de recursos (datos o dispositivos) compartidos por
un grupo de procesos. Los procedimientos van
encapsulados dentro de un módulo que tiene la
propiedad especial de que sólo un proceso puede
estar activo cada vez para ejecutar un procedimiento
del monitor.
Informática III 2008
Ing. Estela D'Agostino
48
Características de un monitor
Es un TAD:
• uso independiente de la implementación.
• el usuario no conoce la implementación.
• nada se sabe del orden en que se van a invocar acciones
del monitor.
• por lo que necesita una correcta especificación.
Informática III 2008
Ing. Estela D'Agostino
49
Funcionamiento de un monitor
Respecto a la sincronización:
• la exclusión mutua se
definición:
asegura
por
– por lo tanto, sólo un proceso puede estar
ejecutando acciones de un monitor en un
momento dado.
– aunque varios procesos pueden en ese momento
ejecutar acciones que nada tengan que ver con
el monitor
Informática III 2008
Ing. Estela D'Agostino
50
Funcionamiento de un monitor
la sincronización condicionada:
– cada proceso puede requerir una sincronización
distinta, por lo que hay que programar cada
caso.
– para ello, se usarán las variables “condición”:
• se usan para hacer esperar a un proceso hasta que
determinada condición sobre el estado del monitor
se “anuncie”
• también para despertar a un proceso que estaba
esperando por su causa
Informática III 2008
Ing. Estela D'Agostino
51
Monitores
• Existe necesidad de sincronización de
condición.
• Se maneja con dos operadores que se
llaman wait y signal.
Informática III 2008
Ing. Estela D'Agostino
52
Monitores
• Un wait siempre bloquea y se ubica en una
cola asociada a esa variable de condición.
• Cuando un proceso bloqueado libera su
bloqueo permitirá ingresar a otro proceso.
• Cuando un proceso ejecuta una operación
signal, liberará un proceso bloqueado.
Informática III 2008
Ing. Estela D'Agostino
53
Críticas a monitores
• Solución elegante a problemas de exclusión
mutua.
• No soluciona bien las sincronizaciones de
variables de condición.
Informática III 2008
Ing. Estela D'Agostino
54
Métodos sincronizados
• Es el concepto de monitor implementado en el
paradigma de Orientación a Objetos
• Se utilizan en como Java, que tiene la
concurrencia totalmente integrada.
Informática III 2008
Ing. Estela D'Agostino
55
Métodos sincronizados
• Los métodos se califican con el modificador
synchronized.
• Puede existir también synchronized a nivel
de bloque.
Informática III 2008
Ing. Estela D'Agostino
56
Paso de mensajes
• Se necesita un proceso emisor y uno
receptor.
• Información para intercambiar.
• Operaciones básicas son:
– Enviar (mensaje)
– Recibir (mensaje)
Informática III 2008
Ing. Estela D'Agostino
57
Paso de mensajes
• Se debe establecer un enlace entre receptor
y emisor:
– Modelo de sincronización
– Como nombrar los procesos
– Estructura del mensaje
Informática III 2008
Ing. Estela D'Agostino
58
Modelo de sincronización
• Sincronización implícita: un proceso no puede
recibir un mensaje antes que el emisor lo haya
emitido.
– Asíncrona: el emisor continua sin saber si el mensaje
llegó o no
– Síncrona: el emisor continua solo cuando se recibió el
mensaje
– Invocación remota: el emisor continua sólo cuando se
recibió una respuesta desde el receptor
Informática III 2008
Ing. Estela D'Agostino
59
Nombrado de procesos
Dirección:
nombrado directo:
envía <msj> <proceso>
nombrado indirecto:
envía <msj> <buzón>
Simetría:
simétrico:si el emisor y el
receptor se pueden
nombrar entre sí
envía <msj> <proceso>
espera <msj> <proceso>
asimétrico:
espera <msj>
Informática III 2008
Ing. Estela D'Agostino
60
Estructura del mensaje
• Idealmente: cualquier objeto.
• Cada lenguaje ha impuesto sus restricciones.
Informática III 2008
Ing. Estela D'Agostino
61
Descargar