• No se han encontrado resultados

\ \ Él

4.1 Nivel de tareas

convenga y utilizando paradigmas muy conocidos en la literatura de aplica-ciones paralelas: segmentación, granjas y servidor replicado entre otros.

• Carga de trabajo sintética. El lenguaje dispone de las primitivas nece-sarias para construir de una forma sencilla programas de prueba que permitan introducir una carga de trabajo en el sistema, de cara a evaluar la respuesta del mismo frente a estos estímulos.

• Generación de código para simulación e implementación. Los prototipos descritos en REALMoD pueden traducirse a código fuente de una manera di-recta. Los primeros prototipos modelizarán los distintos procesos del sistema, y mediante un esqueleto sintético efectuarán comunicaciones con sus respec-tivos procesos vecinos. Los procesos ejecutarán rutinas de cálculo sintéticas durante tanto tiempo como haya sido especificado, de tal manera que reflejen de la mejor manera a los procesos definitivos. A medida que el prototipo se refine, el esqueleto sintético irá siendo substituido por el código real que debe ejecutarse.

• Instrumentación de prototipos, técnica mediante la cual se pueden es-tablecer los eventos que se desea que aparezcan en la traza de ejecución del prototipo, y que servirán de base para un posterior análisis.

El presente capítulo está organizado en ocho secciones, cada una de las cuales comenta un aspecto diferente de la propuesta de lenguaje de diseño para SPTR. En primer lugar, se analizarán los detalles del formalismo gráfico. REALMoD estruc-tura los SPTR en tres niveles, cada uno de los cuales se describe en una sección diferente: a) nivel de tareas, b) nivel de procesos y c) nivel físico. La cuarta sección describe las proyecciones que se establecen entre los distintos niveles del formalismo, fundamentales para ligar los elementos descritos aisladamente en cada una de ellos.

Después de describir pormenorizadamente este lenguaje, sigue una discusión so-bre los criterios de validación a que puede someterse el modelo (sección quinta), así como las limitaciones del mismo (sección sexta).

Seguidamente, se incluye un apartado donde se estudian los aspectos de con-strucción de los diseños realizados. En él, se examina la generación automática de código, aspectos de carga sintética de prototipos, y otros elementos como simulación y ejecución de modelos.

El capítulo concluye con un resumen de las aportaciones más interesantes que se han hecho con este lenguaje de prototipado rápido el diseño detallado de sistemas paralelos de tiempo real.

llevarse a cabo con cualquiera de las técnicas vistas en el capítulo 2.

Como consecuencia del análisis se procede al diseño preliminar del sistema, donde se definen una serie de actividades software cuya ejecución está sometida a ciertas restricciones temporales. Esto último es algo que distingue fundamentalmente los sistemas informáticos convencionales de aquellos específicos de tiempo real.

Estas actividades software se denominan tareas en la terminología de REALMoD.

Las tareas representan por tanto las restricciones del SPTR. Una tarea de tiempo real, en el contexto de REALMoD, es un conjunto de acciones que deben ser real-izadas en presencia de las entradas de la misma, a fin de producir unos resultados o salidas, y sometidas a unas restricciones de tiempo determinadas.

La estructuración del problema en tareas no recoge aspectos de implementación.

Como se verá más tarde, el nivel de proceso aborda la implementación de las distintas tareas en otros elementos llamados procesos, que reflejan de una manera directa los aspectos de prácticos de construcción del sistema. Así por ejemplo, una tarea puede ser ejecutada en un único nodo de computación o puede estar distribuida en múltiples nodos de la arquitectura utilizada.

El nivel de tarea es el nivel más abstracto, para la especificación del sistema. Este nivel está compuesto por un conjunto de tareas que se comunican entre sí (véase figura 4.1). Pueden existir tareas, como la Tarea8, que no se comuniquen con el resto de las tareas. Esto será así con aquellas tareas que efectúen un procesamiento independiente del resto del sistema.

En REALMoD, el nivel de tareas es eminentemente descriptivo. Los distintos atributos para las tareas no son comprobados formalmente bajo ninguna técnica de validación, como se abundará en el apartado 4.5. Para un estudio formal sobre aspectos de planificación de las tareas puede verse [Klein93, Levi90, Liu73].

Formalmente, el nivel de tareas, NT, se define como un grafo donde los nodos son tareas y los arcos representan flujos de información entre las mismas:

NT=(T,A) (4.1) Se consideran dos tipos de tareas: periódicas y esporádicas, por lo que el

conjunto T de tareas puede definirse como:

T = TPER\JTESP (4.2)

Las tareas periódicas, TPER- se compone de tareas en la que existe un periodo de ejecución, que se asume constante para cada una de ellas:

TPER = {tpu tp2, -, tpnper} (4.3)

donde:

tpi = (N,PiD,J) (4.4)

— ^ Identificador í Tarea^ J Plazo Respuesta

^—f J^J Instrumentación

Identificador I . Plazo Repuesta

^ \ Tarea6 ] instrumentación Procesos (Tarea no periódica]

Tarea, [Tarea periódica]

Figura 4.1: Diagrama de tareas del SPTR.

Finalmente, las tareas esporádicas, forman otro conjunto. Estas tareas no tienen definido periodo de ejecución:

TESP = {te1,te2,..,ten } con:

(4.5)

tej = {N, D, I)

Por último, el conjunto de arcos, A, se define como:

(4.6)

A = {ar = (Ti5 Tk) J Tj, Tk G T,, i = 1 , . . . , iWl} (4.7) Este conjunto puede contener elementos con repetición, caso que correspondería al de dos tareas que tuvieran múltiples flujos de datos entre ellas.

A continuación se ilustra el conjunto de atributos de que consta cada uno de estos tipos de tareas.

4.1.1 Tareas periódicas

Los atributos para una tarea periódica son:

• Nombre (iV). Este identificador es único dentro del conjunto de tareas.

Mediante él, la tarea queda identificada unívocamente.

74

Periodo (T). Define el intervalo de tiempo entre dos activaciones de la misma tarea. Los comienzos de cada periodo se denotan por A(i). Al comienzo de cada periodo, la tarea puede empezar a ejecutar.

Plazo de respuesta (D). Es el tiempo máximo que puede transcurrir entre la activación de la tarea y su finalización. En general este plazo puede variar de un periodo al otro, en cuyo caso sería una función D(i). En nuestro modelo se consideran sólo tareas con un plazo de respuesta fijo. Para casos en que los plazos varíen, puede convenir el tomar el valor más restrictivo, esto es:

D = mín{D{i) \ i > 0}.

Para las tareas periódicas, se imponen las siguientes restricciones:

A(i) = 0 (4.8) T > 0 (4.9) D{i) = A(i)+T (4.10)

A(i+l)=D(i) (4.11) Nivel de instrumentación (/). Este atributo está orientado hacia la etapa

de monitorización. Mediante él, se puede establecer el grano de monitorización de la tarea, esto es, la selección de eventos en los que se está interesado, de entre aquellos que puede producir una tarea. Para más información, véase apartado 5.3.3.

Entradas. Conjunto de caminos de datos, procedentes de otras tareas, que se necesitan para que la tarea pueda ejecutar sus acciones. Las entradas son las precondiciones necesarias para poder ejecutar la tarea. Cuando una tarea tiene disponibles todos sus datos de entrada, se dice que está lista para ejecutar, tiempo el cual se denota por R(i). El valor R(i) no coincidirá generalmente con el momento en que la tarea comienza su ejecución real, S(i). La diferencia entre el tiempo de comienzo real de ejecución y el momento en que la tarea es activada, A(í), se conoce como desplazamiento offset) y se denota por <f>(i).

• Salidas. Conjunto de caminos de de datos, generados por la tarea y que pueden ser utilizados por otras tareas. Las salidas son las postcondiciones de la tarea.

En la figura 4.2a, se aprecian gráficamente los atributos temporales para tareas periódicas. Los términos temporales que aquí se manejan son ampliamente utilizados en la literatura de planificación de sistemas de tiempo real [Cheng87].

Nótese que el tiempo de cómputo no se encuentra dentro de los atributos que han de especificarse por tarea. En general, la tarea podrá tardar un tiempo ó (i) = J2kZi S(i)k, que en cualquier caso debe cumplir que 0 < S < D. Obsérvese que la ejecución de una tarea puede estar dividida en una serie de intervalos NA(i).

(A)

A(i) R(i) S(¡)

Activ. Lista Comienzo

F(i)

Limite Fin Respuesta

(B)

, (P(Í) J ñ'1' : fV" i f i ^ ^

\á D(\) i* ; • H

•••••-,

i

A(i) R(¡) S(¡)

Activ. Lista Comienzo

F(¡)

-Limite Fin Respuesta

Figura 4.2: Atributos temporales en tareas periódicas y esporádicas.

4.1.2 Tareas esporádicas

Las tareas esporádicas son aquellas que no tienen un periodo asociado. La activación de estas tareas no se efectúa por tanto al comienzo del periodo, como sucede con las periódicas, sino que es arbitrario, y está condicionado por el entorno físico donde se encuentra el sistema.

Los atributos para tareas esporádicas son los mismos y con el mismo significado que para tareas periódicas. La única excepción es el periodo, inexistente en tareas esporádicas.

En la figura 4.2b, se aprecian gráficamente los atributos temporales para tareas esporádicas.