PDF de programación - Sistemas distribuidos de tiempo real - TEMA 3. Modelo de distribución de Ada

Imágen de pdf Sistemas distribuidos de tiempo real - TEMA 3. Modelo de distribución de Ada

Sistemas distribuidos de tiempo real - TEMA 3. Modelo de distribución de Adagráfica de visualizaciones

Publicado el 14 de Enero del 2017
915 visualizaciones desde el 14 de Enero del 2017
132,7 KB
18 paginas
Creado hace 11a (04/04/2013)
MASTER EN COMPUTACIÓN

UNIVERSIDAD
DE CANTABRIA

Sistemas Distribuidos de Tiempo Real

Apuntes: TEMA 3

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 II: Modelos de distribución

• TEMA 3. Modelo de distribución de Ada
• TEMA 4. Modelo de distribución de CORBA y RT-CORBA

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

2

DSA - Distributed Systems Annex
Anexo E de Ada 95
El DSA de Ada 95 proporciona un modo flexible para distribuir
programas Ada en plataformas con múltiples procesadores
Definición Ada de sistema distribuido: interconexión de
• uno o más nudos procesadores (recurso con capacidad

computacional y de almacenamiento)

UNIVERSIDAD
DE CANTABRIA

• y cero o más nudos de almacenamiento (que sólo tiene

capacidad de almacenamiento, direccionable por uno o más
nudos procesadores)

Definición de programa distribuido:
• una o más particiones que ejecutan independientemente
(excepto cuando se comunican) en un sistema distribuido

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

3

UNIVERSIDAD
DE CANTABRIA

DSA - Distributed Systems Annex
Anexo E de Ada 95 (cont.)
Al proceso de mapear las particiones en los nodos de un sistema
distribuido se llama configuración de las particiones del programa
La distribución se basa en los conceptos de:
• particiones de programa
• y llamadas a procedimiento remoto (RPCs)
El lenguaje no proporciona interfaces ni semántica que permita
usar el DSA para aplicaciones distribuidas con requisitos de
tiempo real
• aunque en las aplicaciones se puede usar el anexo D

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

4

Particiones
Definición:
• Una partición es una entidad que puede ejecutar en paralelo con

UNIVERSIDAD
DE CANTABRIA

cualquier otra, posiblemente en un espacio de direcciones
diferente, y posiblemente en un computador diferente

Tipos de particiones:
• Activas: contienen threads, que pueden ser un programa

principal o alguna tarea

• Pasivas: no contiene un thread de control propio; los datos y

subprogramas son accesibles para las particiones activas
D’Partition_ID es un atributo que devuelve un entero que
identifica la partición en la que D ha sido elaborado

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

5

Categorización de unidades de
biblioteca
Categorías jerarquizadas de las unidades de biblioteca:
• Pure: puede depender sólo de otras unidades declaradas Pure
• Shared Passive: puede depender sólo de otras unidades Shared

UNIVERSIDAD
DE CANTABRIA

Passive o Pure

• Remote Types: puede depender de otras unidades Remote
Types o de las anteriores (el cuerpo de la librería no tiene
restricciones)

• Remote Call Interface: puede depender de otras unidades

Remote Call Interface o de las anteriores (el cuerpo de la librería
no tiene restricciones)

• Normal: sin restricciones

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

6

Categorización de unidades de
biblioteca (cont.)
La categorización se realiza mediante pragmas:
• pragma Pure
• pragma Shared_Passive
• pragma Remote_Types
• pragma Remote_Call_Interface
Se permite a la implementación definir nuevos pragmas de
categorización

UNIVERSIDAD
DE CANTABRIA

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

7

UNIVERSIDAD
DE CANTABRIA

Unidades Shared Passive
Se utilizan para manejar datos globales compartidos entre
particiones activas
Una partición pasiva puede contener unidades de biblioteca
categorizadas como Pure o Shared Passive
No puede contener declaraciones de access a tipos class-wide,
tipos tarea, o tipos protegidos con entries
Sintaxis:

pragma Shared_Passive [(nombre de unidad de biblioteca)]

8

UNIVERSIDAD
DE CANTABRIA

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

Unidades Shared Passive (cont.)
package SharedObjects is
pragma Shared_Passive;
Max : Positive := 10;
type Index_Type is range 1 .. Max;
type Rate_Type is new Float;
type Rates_Type is array (Index_Type) of Rate_Type;
External_Synchronization : Rates_Type;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

9

Unidades Shared Passive (cont.)

UNIVERSIDAD
DE CANTABRIA

protected Internal_Synchronization is

procedure Set

procedure Get

Index : in Index_Type;
Rate : in Rate_Type);
Index : in Index_Type;
Rate : out Rate_Type);

private
end Internal_Synchronization;

Rates : Rates_Type;

end SharedObjects;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

Unidades Remote Types
Pensada para la definición de tipos que se usen en la
comunicación entre particiones activas.
Sintaxis:

10

UNIVERSIDAD
DE CANTABRIA

pragma Remote_Types [(nombre de unidad de biblioteca)]

No debe contener declaraciones de variables en la parte visible
Un tipo access declarado en la parte visible de estas unidades de
biblioteca se llama tipo access remoto
• este tipo será un access a subprograma o un access general a

un class-wide limited private

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

11

Unidades Remote Types (cont.)
Cualquier puntero no remoto que forme parte de un tipo remoto
debe especificar los atributos de usuario Read y Write
Restricciones al uso de access remotos a subprogramas:
• un valor de un access remoto a un subprograma será convertido

UNIVERSIDAD
DE CANTABRIA

sólo a otro access remoto a un subprograma

• un valor de un access remoto a un class-wide será convertido
sólo a otro access remoto a un class-wide
• el prefijo del atributo Access que contiene un valor de un tipo
access remoto a un subprograma denotará estáticamente a un
subprograma remoto

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

12

Transmisión de estructuras dinámicas
with Ada.Streams; use Ada.Streams;
-- Lista enlazada
package StringArrayStream is

pragma Remote_Types;
type List is private;
procedure Append (L : access List; O : in String);
function Delete (L : access List) return String;

UNIVERSIDAD
DE CANTABRIA

private

type String_Access is access String;
type Node;
type List is access Node;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

13

Transmisión de estructuras dinámicas
(cont.)

UNIVERSIDAD
DE CANTABRIA

type Node is record

Content : String_Access;
Next : List;

end record;
procedure Read

(S : access Root_Stream_Type'Class;
L : out List);
procedure Write
(S : access Root_Stream_Type'Class;
L : in List);

for List'Read use Read;
for List'Write use Write;

end StringArrayStream;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

Transmisión de estructuras dinámicas
(cont.)
package body StringArrayStream is

14

UNIVERSIDAD
DE CANTABRIA

procedure Read

(S : access Root_Stream_Type'Class;
L : out List) is
if Boolean'Input (S) then

begin

L := new Node;
L.Content := new String'(String'Input (S));
List'Read (S, L.Next);
L := null;

else
end if;
end Read;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

15

Transmisión de estructuras dinámicas
(cont.)

UNIVERSIDAD
DE CANTABRIA

procedure Write

begin

(S : access Root_Stream_Type'Class;
L : in List) is
if L = null then
else

Boolean'Output (S, False);
Boolean'Output (S, True);
String'Output (S, L.Content.all);
List'Write (S, L.Next);

end if;
end Write;
-- [...] Other services

end StringArrayStream;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

Unidades Remote Call Interface RCI
Pensadas para ser usadas como interfaces para llamadas a
procedimientos remotos, RPCs, entre particiones activas
Incluye los siguientes pragmas:

16

UNIVERSIDAD
DE CANTABRIA

pragma Remote_Call_Interface
[(nombre de unidad de biblioteca)]
-

los subprogramas declarados en la parte visible de una unidad de
biblioteca RCI son subprogramas remotos

pragma All_Calls_Remote
[(nombre de unidad de biblioteca)]
-
- obliga a todas las llamadas a bajar al subsistema de comunicación

la unidad a la que se aplica debe ser RCI

de particiones (Partition Communication Subsystem, PCS)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

17

Unidades Remote Call Interface RCI
(cont.)
Restricciones de la parte visible de una unidad RCI:
• no contendrá declaraciones de variables
• no contendrá declaraciones de tipos limited
• no contendrá una declaración genérica anidada
• no contendrá (ni podrá ser) la declaración de un subprograma al

UNIVERSIDAD
DE CANTABRIA

que se le aplique el pragma Inline

• no contendrá (ni podrá ser) una declaración de subprograma (o
access a subprograma) con parámetros de tipo access, o con
parámetros formales de tipo limited a menos que el usuario haya
especificado los atributos Read y Write
• cualquier hijo público será una unidad RCI

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© J. Javier Gutiérrez

4/abr/13

18

Unidades Remote Call Interface RCI
(cont.)
Reglas de post-compilación:
• una unidad RCI se debe asignar al menos a una partición
• una unidad RCI cuyo padre es también una unidad RCI se

asignará sólo a la misma partición que el padre

UNIVERSIDAD
DE CANTABRIA

Requisitos de la implementación:
• el pragma All_Calls_Remote obliga a todas las llamadas a
bajar al PCS; las llamadas a estos subprogramas desde dentro
de la región declarativa de la unidad son locales y no van a
través del
  • Links de descarga
http://lwp-l.com/pdf1117

Comentarios de: Sistemas distribuidos de tiempo real - TEMA 3. Modelo de distribución de 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