Actualizado el 12 de Septiembre del 2020 (Publicado el 14 de Enero del 2017)
687 visualizaciones desde el 14 de Enero del 2017
1,2 MB
92 paginas
Creado hace 12a (25/04/2013)
CENTR-j ut ijivtsna» ''?N y #t
ESTUDIO S A y A \ Z ' 0 0 S DEL
i. P. N.
B I B L I O T E C A
^ F N I E R I A ELEC T R IC A
CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS
a
DEL INSTITUTO POLITECNICO NACIONAL
DEPARTAMENTO DE INGENIERIA ELECTRICA
SECCION DE COMPUTACION
"DISEÑO DE UN LENGUAJE PARA LA COMPUTACION DISTRIBUIDA"
Tesis que presenta el Lic. en Computación Juan José Tevera
Mandujano para obtener el grado de MAESTRO EN CIENCIAS en
la especialidad de Ingeniería Eléctrica. Trabajo dirigido
por el Dr. Jan Janecek Hyan.
Becario del COSNET.
México, D. F. junio de 1990.
A MIS P A D R E S
Sr. Ciro Tevera Jiménez
Sra. Carmen Mandujano Zambrano
Por la confianza depositada en mí.
Por el apoyo y amor que siempre me han brindado.
A MIS H E R M A N O S
Beatriz, Ciro Abel, Rosa del Carmen y Andrés Rafael
Compañeros fraternales que siempre me han apoyado.
Con cariño a ustedes que han sido mis grandes
ami gos.
CENTRO Cfc INVtSl IGACIQN Y Di
E S T U D I O S A V A N Z A D O S D E L
!. P. N.
B I B L I O T E C A
!NGENiEf::A ELEC T R IC A
Respetuosamente deseo agradecer al Dr. Jan Janecek Hyan el
asesoramiento de este trabajo. Sus comentarios fueron
una
ayuda inapreciable en el desarrollo del mismo. Agradezco la
ayuda brindada por los profesores: Dr. Mario Albarrán
Figueroa y al N. en C. César Guzmán Rentería que aparte de
los consejos en la elaboración del trabajo hicieron una
valiosa revisión de su documentación.
Agradezco al Consejo del Sistema Nacional de Educación
Tecnológica (COSNET) ¡, por la ayuda brindada para
la
realización de este trabajo.
Juan José Tevera Mandujanc
junio de 1990.
CíiftTftS [)E f,VV£ST¡GAClSN Y efc
ESTUDIOS A V AN Z AO es DEL
¡. P. N.
B I B L I O T E C A
'N G E N IE R IA E L f T . í r /
I N D I C E
OBJETIVOS
INTRODUCCION
.......................................................................... i
.................................................................. 2
I . DISEÑO
...................................................................... ^
I . 1
C O N C E P T O S D E L O S P R O C E S O S
D I S T R I B U I D O S D E H A N S E N
.......................... 5
1 . 2
E S P E C I F I C A C I O N E S D E L D I S E Ñ O
.......... 13
I I .
IMPLEMENTACION
I I . 1
1 1 . 2
D E S C R I P C I O N D E L L E N G U A J E
G E N E R A C I O N D E C O D I G O
................................................. 17
.........................18
......................................25
I I I . LLAMADOS A PROCEDIMIENTOS REMOTOS.......36
I M P L E M E N T A C I O N D E P R I M I T I V A S ..............37
I I 1 . 1
IV . RED EDISON..............................................................51
M O D E L O D E L A R E D ........................................................51
I M P L E M E N T A C I O N ............................................................... 54
IV . 1
I V . 2
V. RESULTADOS.............................................................
CONCLUSIONES.....................................................................79
B IB LIO G R A FIA .................................................................... 80
CíN'P'í) Dt I N V t h l l M C I S N Y
f S T O ' . O S V * \ Z . t D 0 S DEL
I. P. N.
B I B L I O T E C A
w r:¿N lE R ¡A ELEC T RIC A
O bjetivos.
Los objetivos de esta tesis es diseñar e implementar un
lenguaje cuya finalidad proporcione la ejecución de procedi
mientos remotos, además de crear el software de comunicación
que permita la distribución de la información.
El trabajo se tesis fué dividido en tres partes impor
tantes que son:
1. Diseño del lenguaje distribuido.
El diseño se enfoca en el lenguaje teórico llamado
procesos distribuidos de Hansen.
2. Implementación.
La implementación se realiza en el sistema Edison
3. Software de comunicación.
El software de comunicación se realiza en el
Edison y MS-DOS.
1
INTRODUCCION.
En el curso del desarrollo de la computación, importan
tes avances se han introducido año con afío apareciendo solu
ciones elegantes a un número de problemas. El primer avance
•fué la computadora misma, seguida por los lenguajes de alto
nivel, muítiprogramación, sistemas de base de datos, sistemas
de información y posteriormente las redes de comunicaciones.
Algunos de estos avances fueron previstos en los comienzos de
la computación pero se requirió de decadas para iniciar una
práctica general. Hoy día, en la parte de procesamiento de
datos existe
computación
distribuida ya que permite solucionar una clase significativa
de problemas de una manera natural y efectiva.
importancia
gran
hacia
la
Existen aplicaciones importantes en el desarrollo de
los lenguajes distribuidos que permiten la distribución de
entidades cómo: procedimientos, variables o llamados a proce
dimientos remotos. Esta última constituye el enfoque que se
dá al lenguaje que se presenta en este trabajo de tesis.
El trabajo de tesis está compuesto de cinco capítulos.
El capítulo I tiene como objetivo presentar los conceptos y
definiciones para el diseño del lenguaje distribuido. Este
capítulo está dividido en dos partes: Conceptos de procesos
distribuidos de Hansen y Especificación del diseño. La
primera parte de este capítulo es la parte medular sobre la
concepción de procesos distribuidos, utilizando los conceptos
de Hansen. Descripción teórica de los procesos distribuidos.
La parte de especificación, presenta las definiciones del
diseño basadas en los procesos distribuidos.
El capitulo II, comprende la descripción del lenguaje y
el compilador Edison__D. Primeramente se describen las cons
trucciones sintácticas del lenguaje, tratando de no alejarse
de la semántica de Edison. Posteriormente se mencionan los
2
pasos que realiza el compilador para generar el código Edison
y se dá mayor én-fasis a las primitivas de ambiente distri
buido, describiendo la manera como es interpretada por
el
Kernel.
Este capítulo termina con la descripción de un ejemplo,
analizando el código generado y la acción que realiza en
el
momento de ejecución.
En el capitulo III se crean las primitivas necesarias en
Kernel para interpretar el código Edison generado por el
compilador Edison_D. Se presenta el mecanismo diseñado para
los llamados a procedimientos remotos y se describe el
funcionamiento de los procesos definidos en el capítulo I.
En el capítulo IV se presenta el modelo de la red y su
implementación en el sistema Edison.. La red lo compone un
conjunto de rutinas llamado software de comunicación que
permite la transferencia de información mediante el puerto
serial.
En el capítulo V se presentan resultados obtenidos de un
programa productor-consumidor en forma distribuida. El pro
grama está compuesto de 3 procesos: "producer", "buffer" y
"consumer". Cada proceso está, definido en las estaciones
1,
2, y 3 respectivamente.
Por último se mencionan las conclusiones obtenidas en el
presente trabajo de tesis.
3
I. D I S E Ñ O .
Este capítulo tiene como objetivo describir el diseño de un
lenguaje distribuido.
Primeramente, se realiza una descripción de los conceptos de
un lenguaje teórico llamado procesos distribuidos de Hansen.
Este lenguaje fué introducido por Per Brinch Hansen en el año
de 1978 y fué el primer lenguaje en utilizar llamados a
procedimientos remotos CBrinch Hansen, 19783.
los
Para el diseño del lenguaje distribuido se toman
conceptos de este lenguaje y se implementan en el lenguaje
Edison, transformando a este
lenguaje
distribuido tratando de no alejarse de la semántica de
Edison CBrinch Hansen, 1981J. De esta manera se pretende dar
ai programador la facilidad de describir procedimientos
de
tipo remoto abriendo una posibilidad al lenguaje Edison: La
computación distribuida.
último
en
un
4
1.1 C o n c e p t o s d e l o s p r o c e s o s d i s t r i b u i d o s d e h a n s e n .
Los procesos distribuidos de Hansen es un concepto de
lenguaje para programación concurrente? que se basa en los
conceptos de monitor CHoare, 19743, por medios de
procedi
mientos activos o más bien una colección de procedimientos
pasivos. Este lenguaje tiene las siguientes propiedades!
1) Un programa consiste de un número fijo de
procesos
concurrentes que son in.icia 1 izados simultáneamente y
existirán para siempre. Cada proceso puede accesar
únicamente sus propias variables, no existiendo varia
bles comunes entre procesos«
2) Un procesa puede llamar a procedimientos comunes defini
dos en otros procesos. Estos procedimientos son ejecuta
dos cuando los procesos esperan por alguna condición
verdadera. Esta es la única forma de comunicación entre
procesos.
3) Los procesos son sincronizados por medio de
proposi
ciones no determinísticas llamadas regiones guardadas.
Las propiedades del lenguaje especifican que un
programa
estará constituido de un número fijo de procesos concurrentes
donde cada proceso puede accesar únicamente sus variables
propias.
Estos procesos pueden ser usados como módulos de programas en
un sistema muítiprocesador con almacen
Comentarios de: Tesis: Juan Tevera - DISEÑO DE UN LENGUAJE PARA LA COMPUTACION DISTRIBUIDA (0)
No hay comentarios