Septiembre 2004

Anuncio
Examen de SISTEMAS DE TIEMPO REAL
9 de septiembre de 2004
Primera parte (30 minutos, sin libros ni apuntes.)
Pregunta 1.
En un sistema de tiempo real se representa el tiempo absoluto mediante un tipo de datos entero sin signo, cuyos valores denotan
el número de nanosegundos transcurrido desde un instante original (época). Si se quiere representar valores de tiempo hasta 100
años después de la época con una resolución de 50 ns, ¿cuántos bits tendrá que tener, como mínimo, la representación del tipo
tiempo?
Solución. En el intervalo de tiempo especificado (100 años) hay 100·365+25 = 36525 días (teniendo en cuenta los años bisiestos, y por tanto 36525·86400·109 = 3,156·1018 ns. Como el tipo de datos representa un número entero de nanosegundos, sin
signo, el número de bits necesario es el menor entero mayor que log2 3,156·1018 = 61,45. Por tanto, hacen falta 62 bits para
representar el tiempo en este sistema.
Si se hubiera optado por representar el número de tics de 50 ns transcurridos, el número de bits necesario sería mayor o
igual que log2 (3,156·1018/50·109) = 25,9, es decir 26 bits.s
Pregunta 2.
Explicar brevemente qué es una tarea periódica, y cuáles son sus requisitos temporales.
Solución. Una tarea periódica es una tarea que se ejecuta a intervalos regulares de tiempo, activándose con un período fijo.
Sus requisitos temporales son: período, fase, y plazo de respuesta máximo, relativo al comienzo de cada período. También se
puede especificar una variación (jitter) máxima en la terminación de la acción.
Pregunta 3.
Dado el siguiente fragmento de un programa en Ada, indicar en qué instantes se ejecutará la operación Activity.
Event : Ada.Synchronous_Task_Control.Suspension_Object;
...
task body T is
use Ada.Real_Time;
begin
loop
Ada.Synchronous_Task_Control.Suspend_Until_True (Event);
T1 := Clock;
Activity;
delay until T1 + Milliseconds (120);
end loop;
end T;
Solución. La actividad se ejecutará esporádicamente, cuando otra tarea haga Set_True(Event), con una separación mínima
de 120 ms entre una activación y la siguiente.
Pregunta 4.
Explicar brevemente cuál es el efecto de la ejecución de un manejador de interrupciones en los tiempos de respuesta de un sistema de tareas de tiempo real planificadas con prioridades fijas.
Solución. El manejador de interrupciones se puede representar como una tarea esporádica, que se ejecuta con una prioridad
igual a la de la interrupción y una separación igual a la separación mínima entre interrupciones. El manejador produce una
interferencia en todas las tareas de aplicación, alargando por tanto su tiempo de respuesta. La interferencia que produce un
manejador H en una tarea τi es:
IH =
R
------i- ⋅ C H
TH
1
Examen de SISTEMAS DE TIEMPO REAL
9 de septiembre de 2004
Segunda parte (60 minutos, con libros y apuntes.)
Pregunta 5.
La figura representa un diagrama de diseño en notación HRT-HOOD de un sistema de tiempo real, en el cual los objetos Sensor
y Switch se suponen ya implementados por los paquetes cuya especificación se muestra.
package Sensor is
type Variable is delta 0.01 range 0.0 .. 100.0;
procedure Input (X : out Variable);
end Sensor;
C Controller
package Switch is
type Setting is (Off,On);
procedure Output (S : Setting);
end Switch;
Pr
Sensor
Input
Pa
Switch
Output
Escriba un paquete Ada que realice el objeto Controller, de forma que el sistema se comporte de la siguiente manera: cada
150 ms se invoca Sensor.Input. Si el valor obtenido es mayor que 50.0, se pone Switch en Off, y si es menor que 45.0 se pone en
On. Resuelva las ambigüedades que pudiera haber en la especificación de la forma que considere más oportuna, explicando las
decisiones tomadas.
Solución. Una posible implementación es:
package Controller is
pragma Elaborate_Body(Controller);
end Controller;
with Sensor, Switch, Ada.Real_Time;
package body Controller is
task Controller_Task is
pragma Priority(10); -- por ejemplo
end Controller_Task;
task body Controller_Task is
use Ada.Real_Time;
T
: constant Time_Span := Milliseconds(150);
Upper_Limit : constant Sensor.Measurement := 50.0;
Lower_Limite : constant Sensor.Measurement := 45.0;
Next_Time
Value
: Time := Clock;
: Sensor.Measurement;
begin
loop
delay until Next_Time;
Sensor.Input(Value);
if Value > Upper_Limit then
Switch.Output(Off);
elsif Value < Lower_Limit then
Switch.Output(On);
end if;
Next_Time := Next_Time + T;
end loop;
end Controller_Task;
end Controller;
Se ha supuesto que hay un tipo de coma flotante Measurement definido en Sensor, y un tipo enumerable (On,Off), definido
en Switch.
2
Pregunta 6. (3 puntos)
Un sistema de tiempo real tiene 4 tareas, T1-T4, y 2 objetos protegidos, P1, y P2. La siguiente tabla contiene los atributos temporales de las tareas, incluidos los tiempos de ejecución de las operaciones protegidas que ejecutan.
Tarea Tipo
T1
T2
T3
T4
Atributos
P
S
P
P
Acceso a OP
T
C
D
P1
P2
120
500
25
80
10
12
8
20
50
20
25
80
—
2
—
5
6
4
—
—
Suponiendo que el método de planificación es el de prioridades fijas con desalojo, y el acceso a los objetos protegidos se realiza
mediante el protocolo del techo de prioridad inmediato, se pide:
1. Asignar prioridades a las tareas y calcular los techos de prioridad de los objetos protegidos.
2. Calcular los tiempos de bloqueo máximos de las tareas.
3. Calcular el tiempo de respuesta en el peor caso de la tarea T1.
Solución.
1. Las prioridades de las tareas se asignan de forma monótona en plazos, quedando en resumen como se indica en la tabla, en
la que se indican también los techos de prioridad de los objetos protegidos:
Tarea Tipo
T1
T2
T3
T4
P1
P2
Atributos
P
S
P
P
P
T
C
D
2
4
3
1
4
4
120
500
25
80
10
12
8
20
50
20
25
80
2. Los tiempos de bloqueo máximos se calcula de las siguiente forma:
T1 se puede bloquear como máximo una vez por las acciones de T4 en P1. Por tanto, B1 = 5.
T2 se puede bloquear como máximo una vez por acciones de T1 y T4 en P2 y P1, respectivamente.
Por tanto, B2 = max(6,5) = 6.
T3 se puede bloquear por acciones de T1 en P2 y T4 en P1. Por tanto, B3 = max(6,5) = 6.
T4 no se bloquea por ser la tarea de menor prioridad.
La tabla de atributos temporales queda así:
Tarea Tipo
T1
T2
T3
T4
P
S
P
P
Atributos
P
T
C
B
D
2
4
3
1
120
500
25
80
10
12
8
20
5
6
6
0
50
20
25
80
3
3. El tiempo de respuesta de T1 viene dado por:
R
R
R 1 = C 1 + B 1 + -----1- ⋅ C 2 + -----1- ⋅ C 3
T2
T3
R
R1
= 10 + 5 + -------- ⋅ 12 + -----1- ⋅ 8
500
25
Iterando, con w10 = 15:
1
15 ⋅ 12 + 15 ⋅ 8 = 35
w 1 = 10 + 5 + ------------500
25
2
35 ⋅ 12 + 35 ⋅ 8 = 43
w 1 = 10 + 5 + ------------500
25
3
43 ⋅ 12 + 43
w 1 = 10 + 5 + ------------- ⋅ 8 = 43
25
500
Por tanto, R1 = 43.
4
Descargar