Title: LCWMOV
1LCW-MOV
- Extensiones de movilidad a un lenguaje de
programación distribuida - Alberto Oliart y Victor G. Sánchez
- Lania
2- LCW lenguaje de programación distribuida
- LCW MOV lenguaje de programación distribuida y
movil (extensión de LCW)
3Motivación para la creación de LCW
- En la red existen recursos y programas que pueden
ser reutilizados para crear nuevos programas. - Por ejemplo programas que se ejecutan en
supercomputadoras para resolver matrices de
grandes dimensiones, sistemas de información
geográfica, bases de datos, etc. que podrÃan ser
utilizados para hacer un sistema de predicción
climatológica.
4El ambiente distibuido de LCW
PD Programa compuesto por programas y recursos
interdependientes y distribuidos en varios sitios
de la red
5LCW Lenguaje de programación disribuida
- LCW es un lenguaje que permite
- la distribución
- la coordinación
- de un conjunto procesos y recursos localizados en
la red - Granularidad código ejecutable en una red tcp/ip
de estaciones Unix no dedicadas - Motivación utilización compartida de las
estaciones Unix de una red tcpc/ip en operación
(no dedicadas)
6Distribución en LCW
- La localidad de ejecución de todo proceso en LCW
puede ser - Fija el proceso reside y se ejecutan en un
sitio predeterminado por el programador - Dinámica (transparente) el procesos reside en
algún sitio de la red y su localidad de ejecución
se determina dinámicamente en el momento de
ejecución
7Distribución en LCW
Todo proceso en LCW está asociado con su
localidad de ejecución AP el proceso P reside
y se ejecuta en el sitio A
(localidad fija) Q la localidad de ejecución
del proceso Q se determinará
dinámicamente al momento de su
ejecución (localidad variable). El
sistema seleccionará la estación menos
ocupada
8Coordianción en LCW
- La coordinación en la ejecución de un programa en
LCW se realiza a partir de - 1) La especificación ordenes básicos de
ejecución - ejecución simple de un procso
- paralela de procesos
- ejecución secuencial de procesos
- ejecución nula
- 2) La composición de procesos por
- replicación paralela o secuencial de un proceso
- composición a partir de los ordenes básicos
- comunicación por mensajes
- 2) Un mecanismo de activación de procesos para el
control no determinsita de eventos provocados en
la ejecución de los procesos tales como
terminaciones normales, con error, o llegada de
mensajes
9Coordianción en LCW ordenes de ejecución básicos
Ejecución paralela PD_P Par AP,
Q Programa compuesto por P (residente en A) y
Q (que al momento de ejecución residirá en algún
sitio disponible en la red). PD inicia
ejecutándolos en paralelo y termina correctamente
una vez que P y Q terminaron correctamente en
caso de que alguno termine con error PD_P termina
con error.
10Coordianción en LCW ordenes de ejecución básicos
Ejecución secuencial PD_S Sec AM,
Q Programa compuesto por M (residente en A) y
Q (que al momento de ejecución residirá en algún
sitio disponible en la red). PD_S inicia
ejecutando a M, si éste termina bien ejecuta a N
y si éste termina bien entonces PD_S termina
bien. En caso de que alguno termine con error
PD_S termina con error.
11Coordianción en LCW ordenes de ejecución básicos
Ejecución nula PD_D P_nulo Porgrama que
termina inmediatamente después de que se inicia.
Este progrma siempre termina sin error.
12Coordianción en LCW composición
Replicación de procesos Rep_Par n
P Replica n veces en ejecución paralela a P
en las staciones con mayor disponibilidad en la
red Rep_Sec n AQ Replica n veces en ejecución
secuencial a A residente en Q.
13Coordianción en LCW composición
Composición de procesos PD_M Par AP, Q,
PD_S Programa compuesto por P (residente en A),
Q (residente en algún sitio de la red), y un
programa PD_S que está compuesto por M (residente
en A) y Q (residente en algún sitio de la red).
Su ejecución queda determinada por los ordenes
predefinidos en sus procesos que lo componen.
14Coordianción en LCW control no determinista de
eventos
PD_S Cond evento_a -gt P, event_b -gt
Q Programa que ejecutará P o Q si el evento a o
b se producen respectivamente, si ambos se
reproducen al mismo tiempo el sistema de
ejecucion selecciona uno al azar. P o Q pueden se
procesos simples o una composición.
Par AP, Rep_seq (oo) Cond
E(P) fin_error -gt BP,
E(P) fin_bien -gt P_nulo Si P termina con
error en A se reejecuta en B.
15Ejemplo de programa
seq
seq
par_a
par_s
Ux
Uq
Uy
Uz
16Ambiente LCW
Programa En LCW
Interfaz de programación
Programación
Validación
Distribuidor
Soporte distribuido de ejecución
Ejecución
Localisador
Replicador
17Ejecución de un programa en LCW
D distribuidor R replicador L localizador E
ejecutores
soporte distribuido de ejecución
18Ejemplo de un programa LCW
19Implantación
20Ejemplo de una implantación de LCW (primera
versión)
ARCHSSUN4,LINUX HOSTSafrodita,hefestos,cronos
TASKStest,test1-gtcronos,test2,
test3,test4,text5gtLINUX GTASKStest7 ROOTtest
CW testSYNCPtest1,test2
test2SEQtest3,test4 test3ASYNCPtest5(3)
test4SYNCPtest6(10),test7
21Versión gráfica de LCW
22Aplicación Algoritmo para la reconstitución
estereoscópica de imágenes
23Resultados
24Resumen de LCW
- LCW está inspirado en CSP, procesos comunicantes
por inercambio de - mensaje
- su granularidad procesos unix, y su ambiente
red TCP/IP de estaciones - Unix no dedicadas
- para orientarlo a un ambiente distribuido en red
se introdujo el concepto de - localidad de los procesos.
- con el propósito de flexibilizar la ubicación se
definieron dos tipos de localidad - fija el proceso está en el sitio indicado por
el usuario - dinámica el proceso puede ejecutarse en alguna
de los sitios disponibles - de la red
- En este último caso tenemos movilidad
(migración) pero es transparente al usuario (la
localidad es elgida por el sistema de soporte de
LCW)
25LCW-MOV
Objetivo introducir un mecanismo de control de
movilidad explÃcito para LCW
26Ambiente
- La mobilidad de código puede ser de acuerdo a ()
- debil sólo viaja el código
- fuerte viaja el código con su estado de
ejecución - (contador de programa, variables,
constantes,..)
Ambiente es el lugar donde un proceso y su
estado puede ejecutarse.
27Ambiente para LCW
28Propuesta informal de LCW-MOV
LCW
Estensiones para LCW-MOV
Sx P Mov Sx Q
29Semántica informal de LCW-MOV
Ambientes programas que contienen declaraciones,
código y el estado de
ejecución. Localidades estaciones Unix no
dedicadas conectadas a una
red tcp/ip
SxP mueve P a la localidad Sx si no es que ya
está ahà (LCW asumÃa que P estaba
localizada en Sx) Mov Sx mueve su ambiente (el
programa que lo contiene) a Sx Q se elige una
localidad para ejecutar el ambiente Q
Sx P Mov Sx Q
30Ejemplo
- PP con Par ejecuta en paralelo
- P, Q, Mov Sx y SxR
- P se ejecuta en la misma loclalidad de PP
- Q se ejecuta en un localidad elegida por el
sistema - R se ejcutará en Sx
- Mov Sx en viará a PP a Sx y terminará cuando sus
procesos - hayan terminado
PP Par P, Q,
Mov Sx, Sx R
31Estado actual de LCW-MOV
- Etamos trabajando en
- la formalización de LCW
- la refinación de del concpeto de ambiente,
granularidad - y seguridad
- la extensión de LCW-MOV
- la redefinición de la arquitectura
- en la plataforma de desarrollo
- java, xml, soap,...