PDF de programación - Sistemas distribuidos de tiempo real - TEMA 5. Middleware de distribución para el modelo Ada

Imágen de pdf Sistemas distribuidos de tiempo real - TEMA 5. Middleware de distribución para el modelo Ada

Sistemas distribuidos de tiempo real - TEMA 5. Middleware de distribución para el modelo Adagráfica de visualizaciones

Publicado el 14 de Enero del 2017
881 visualizaciones desde el 14 de Enero del 2017
115,6 KB
16 paginas
Creado hace 11a (04/04/2013)
MASTER EN COMPUTACIÓN

UNIVERSIDAD
DE CANTABRIA

Sistemas Distribuidos de Tiempo Real

Apuntes: TEMA 5

Por:

J. Javier Gutiérrez

[email protected]
http://www.ctr.unican.es/
Grupo de Computadores y Tiempo Real, Universidad de Cantabria

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

1

Sistemas distribuidos de tiempo real

UNIVERSIDAD
DE CANTABRIA

PARTE III: Middlewares de distribución

• TEMA 5. Middleware de distribución para el modelo Ada
• TEMA 6. Middleware de distribución esquizofrénico para

lenguaje Ada: CORBA y DSA

• TEMA 7. Middlewares de distribución de tiempo real

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

Introducción a GLADE
Implementación del Ada distribuido de Ada Core:
• programa único dividido en particiones
• las particiones se distribuyen en los nudos procesadores
• distribución por RPCs y objetos: transparencia de uso
• configuración, arranque de particiones y otros aspectos

definidos por la implementación

2

UNIVERSIDAD
DE CANTABRIA

Estructura de GLADE:
• GARLIC: es el PCS (Partition Communication Subsystem)
• GNATDIST: herramienta de particionamiento, chequeo de

consistencia, generación de stubs y enlace de las particiones
con el PCS

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

3

Introducción a GLADE (cont.)
Detalles de la implementación desde el punto de vista del tiempo
real:
• Linux sobre TCP/IP
• pool de tareas configurable por cada partición para la ejecución

UNIVERSIDAD
DE CANTABRIA

de peticiones remotas

• creación dinámica de tareas conectoras de las peticiones en la

partición llamada
- Acceptor Task --> Connector Task --> Tarea del pool

• políticas de prioridades para las tareas del pool:

- Client Propagated (ejecución remota a la prioridad del cliente)
- Server Declared (todas las tareas del pool a la misma prioridad)

• elección arbitraria de una red de entre las disponibles

4

UNIVERSIDAD
DE CANTABRIA

5

UNIVERSIDAD
DE CANTABRIA

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

Esquema de RPC en GLADE

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

El DSA en GLADE
Aspectos destacados de la implementación:
• Variables y access no remotos
• Fallos de RPCs
• Excepciones
• RPCs asíncronas
• Unidades genéricas
• Llamadas remotas concurrentes
• Aborto y terminación
• Configuración

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

6

Variables y access no remotos
En las declaraciones de paquetes Remote Types y Remote Call
Interface:
• las declaraciones de variables están prohibidas
• los tipos access no remotos se permiten siempre que se

UNIVERSIDAD
DE CANTABRIA

proporcionen los subprogramas de marshalling y
unmarshalling

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

7

Fallos de RPC
Las llamadas a procedimiento remoto se ejecutan al menos una
vez:
• pueden realizar el trabajo remoto correctamente
• o pueden fallar retornando una excepción
Si ocurre un error de comunicaciones se eleva la excepción:
•System.RPC.Communicantion_Error

UNIVERSIDAD
DE CANTABRIA

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

8

UNIVERSIDAD
DE CANTABRIA

Excepciones
Cualquier excepción elevada en un método o llamada a
procedimiento remoto se propaga al que ha hecho la llamada,
manteniendo la semántica de Ada
Ejemplo:
• Partición 1: Internal, RemPkg1 y RemExcMain
• Partición 2: RemPkg2
Comentario:
• una excepción visible sólo en la partición 1 es propagada a la
partición 2, tratada con when others y enviada de nuevo a la
partición 1 en la que vuelve a ser visible

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

9

UNIVERSIDAD
DE CANTABRIA

Excepciones (cont.)
package Internal is
Exc : exception;
end Internal;
package RemPkg2 is
pragma Remote_Call_Interface;
procedure Subprogram;
end RemPkg2;
package RemPkg1 is
pragma Remote_Call_Interface;
procedure Subprogram;
end RemPkg1;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

10

UNIVERSIDAD
DE CANTABRIA

Excepciones (cont.)
with Ada.Text_IO, Ada.Exceptions;
use Ada.Text_IO, Ada.Exceptions;
with RemPkg2, Internal;
procedure RemExcMain is
begin
RemPkg2.Subprogram;
exception when E : Internal.Exc =>
Put_Line (Exception_Message (E)); -- Output "Message"
end RemExcMain;

11

UNIVERSIDAD
DE CANTABRIA

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

Excepciones (cont.)
with RemPkg1, Ada.Exceptions;
use Ada.Exceptions;
package body RemPkg2 is
procedure Subprogram is
begin
RemPkg1.Subprogram;
exception when E : others =>
Raise_Exception (Exception_Identity (E),
Exception_Message (E));
end Subprogram;
end RemPkg2;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

12

UNIVERSIDAD
DE CANTABRIA

Excepciones (cont.)
with Internal, Ada.Exceptions;
use Ada.Exceptions;
package body RemPkg1 is
procedure Subprogram is
begin
Raise_Exception (Internal.Exc'Identity, "Message");
end Subprogram;
end RemPkg1;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

13

RPCs asíncronas: definición RCI

UNIVERSIDAD
DE CANTABRIA

package AsynchronousRCI is
pragma Remote_Call_Interface;
procedure Asynchronous (X : Integer);
pragma Asynchronous (Asynchronous);
procedure Synchronous (X : Integer);
type AsynchronousRAS is access procedure (X : Integer);
pragma Asynchronous (AsynchronousRAS);
end AsynchronousRCI;

14

UNIVERSIDAD
DE CANTABRIA

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

RPCs asíncronas: definición RT
package AsynchronousRT is
pragma Remote_Types;
type Object is tagged limited private;
type AsynchronousRACW is access all Object'Class;
pragma Asynchronous (AsynchronousRACW);
procedure Asynchronous (X : Object);
procedure Synchronous (X : in out Object);
function Create return AsynchronousRACW;
private
type Object is tagged limited null record;
end AsynchronousRT;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

15

UNIVERSIDAD
DE CANTABRIA

RPCs asíncronas: uso de RCI
Dependiendo del subprograma apuntado la llamada puede ser
síncrona o asíncrona
with AsynchronousRCI;
use AsynchronousRCI;
procedure AsynchronousMain is
RAS : AsynchronousRAS;
begin
-- Asynchronous Dynamically Bound Remote Call
RAS := AsynchronousRCI.Asynchronous'Access;
RAS (0); -- Abbrev for RAS.all (0)
-- Synchronous Dynamically Bound Remote Call
RAS := AsynchronousRCI.Synchronous'Access;
RAS (0);
end AsynchronousMain;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

16

UNIVERSIDAD
DE CANTABRIA

RPCs asíncronas: uso de RT
Si el método tiene sólo parámetros in la llamada es asíncrona y si
no síncrona
with AsynchronousRT;
use AsynchronousRT;
procedure AsynchronousMain is
RACW : AsynchronousRACW := Create;
begin
-- Asynchronous Dynamically Bound Remote Call
Asynchronous (RACW.all);
-- Synchronous Dynamically Bound Remote Call
Synchronous (RACW.all);
end AsynchronousMain;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

17

UNIVERSIDAD
DE CANTABRIA

Unidades genéricas
Las unidades genéricas se pueden categorizar pero no heredan
automáticamente la categoría
generic
package GenericRCI is
pragma Remote_Call_Interface;
procedure P;
end GenericRCI;
with GenericRCI;
package RCIInstantiation is new GenericRCI;
pragma Remote_Call_Interface (RCIInstantiation);
with GenericRCI;
package NormalInstantiation is new GenericRCI;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

18

UNIVERSIDAD
DE CANTABRIA

Llamadas remotas concurrentes
En la especificación del PCS no se define cuándo uno o más
threads de control deben estar disponibles para procesar los
mensajes que llegan y esperar a la terminación del RPC
Sin embargo, el PCS debe ser reentrante permitiendo llamadas
concurrentes que den servicio a peticiones remotas
En GLADE esto significa que:
• en la implementación del PCS se maneja un pool de tareas de

manera transparente al usuario

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

19

Aborto y terminación
Aborto:
• si un constructor que contiene una llamada remota se aborta, la

UNIVERSIDAD
DE CANTABRIA

llamada al subprograma remoto se cancela

• la implementación decide si la ejecución se aborta

inmediatamente o no como resultado de la cancelación

Terminación:
• una partición activa termina cuando termina su tarea de entorno
• una partición no puede terminar antes de que el programa Ada

en sí mismo termine

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

20

Configuración
El DSA no describe la forma en la que se tiene que configurar una
aplicación distribuida:
• es el usuario el que tiene que definir cómo son las particiones

UNIVERSIDAD
DE CANTABRIA

de su programa y en qué máquinas van

La herramienta gnatdist y su lenguaje de configuración permite
al usuario partir su programa y especificar la máquina en la que
ejecutará cada partición
gnatdist lee un fichero de configuración y construye un
ejecutable por cada partición definida

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

21

Configuración (cont.)
La forma de configurar y distribuir una aplicación será:
• Escribir una aplicación Ada no distribuida y usar los pragmas de
categorización para indicar los paquetes que se pueden ll
  • Links de descarga
http://lwp-l.com/pdf1119

Comentarios de: Sistemas distribuidos de tiempo real - TEMA 5. Middleware de distribución para el modelo Ada (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad