PDF de programación - Tesis: Jose Mitre - C++ Distribuido

Imágen de pdf Tesis: Jose Mitre - C++ Distribuido

Tesis: Jose Mitre - C++ Distribuidográfica de visualizaciones

Actualizado el 12 de Septiembre del 2020 (Publicado el 14 de Enero del 2017)
1.112 visualizaciones desde el 14 de Enero del 2017
118,9 MB
86 paginas
Creado hace 11a (14/02/2013)
e&mt I! IWvtSTIIlCIII Y "
IS T IJFIIOS AV • ,.z ~ DGS Ill

I. p N .

I H LIOT EOA

l'l<lr,ENIERIA E LECTRIC~

CENTRO DE INVESTIGACION Y DE ESTUDIOS

AVANZADOS DEL I.P.N.

DEPARTAMENTO DE INGENIERIA ELECTRICA

SECCION DE COMPUTACION

C++ Distribuido

Tesis que presenta el:

lng. Jose Mitre Silva

Para obtencr cl grado de:

Maestro en Ciencias en Ia Especialidad de lngenieria £/Jcrrica

Director de Tesis: Dr. Hector Rll!z Barradas

~UHt iH '.'I'V[ST!BACIU y ll

ESTI'n'aS n~ZADO S OEL

I. P. N .

• . • . L,OTE OA
,.. iFNIE Rl,t. E LECTRIC~

MCxico, D. F., Julio 1998

·

:

:

:U~_zi·=
~i
' H C H A : . . <. - I . ..:..!..:J ... ~
PR.CI:D. ~~~-~1~~

:.; ____________ ....,.. __ _

A mi Padres y a mi Esposa con todo mi amor

Agradecimientos

A mis asesores: Dr. Ht':ctor Ruiz Barradas y al M. en C. Jose Oscar Olmedo par su
paciencia, sus valiosas aportaciones a travCs de sus comentarios y sugerencias, a quienes
debo mi intert':s por este trabajo.

AI Dr. FeliU Davino Sagols Troncoso y al M. En C. Uriel Tirado Rios por sus comentarios
y par aceptar scr cJ jurado para Ia eva\uaci6n de este trabajo.

A todos mis profesores por sus experiencias, conocimientos y ensef'tanzas.

A mis padres par su comprensi6n, cariflo y ejemplo; y par impulsarme y motivarme con sus
COilSCJOS.

A LulU par todo su amory apoyo, ya que sin el no hubiera podido lograrlo.

A mis compaiieros Gonzalo, Heberto, Francisco, CCsar, Carlos, Carlos Alberto, JesUs,
Nury, Eduardo, Manuel, Enrique, Samuel y Ricardo por su amistad y compaiiia.

A Sofia, Anabel y Flor por su ayuda y paciencia.

AI CONACyT por el apoyo econ6mico proporcionado para Ia realizaci6n de este trabajo.

Y a todos los que de alguna manera me apoyaron durante todo este tiempo.

Muchas gracias.

Haz que cada meta lograda sea para ti sOlo un
nuevo punto de part ida.

Alfredo Cuellar G

Cf.TIUt Df

IHVESlltli.A. ClU y ...

EST tJitlll S A'tA~lAD CS U:l

I. P . N.

III BL IOTE OA
"' " ENIE" I ~ ELECTI!IC~

CONTENIDO

I. INTRODUCCION ............................................................................................................ (

2. LENGUAJES Y SISTEMAS DE PROGRAMACION DISTRIBUIDOS
ORIENT ADOS A OBJETOS ........................................................................................... .4

2 .1. PROGR AMACJ6N ORIENT ADA A 0BJETOS ..
2 .2 L A PROGR AM ACI6 N DISTRJBUIDA ...
2.3 PROGRAM ACI6N 01STRIBUIDA ORIENT ADA A 0BJETOS ...
2.4 PROPUESTA ..

. .......... ........ ..... ...... .. .4
. .................................................. ........ 7
. ...... .............. 8
. ............................................. !!

3. EL C++ DISTRIBUIDO .......................... .

. .............. 13

3 .1 G ENERALIDADES... .
3 .2 PALABRAS R ESER VADA S...
3.3 LA C L A SE PROCESS..

. ..................................... ! )
. .................................................................................... 14
. .................................... 14
. ... . .. . . . . . . . . . . ................................................. 15
3. 3. I EspecificaciOn de Procesos...
. ............... 16
3.3.1 DefiniciOn de Procesos...
3.3.3 DeclaraciOn de Objetos-proceso ......................................................................... 16
3 .4 L A I NSTRUCCl6 N SELECT-WHEN ............................................ ...................... ............... 17
3.4.1 No-Determinismo ................................................................................................ 19
. ........................................... 19
3.4.1 Sin taxis y Semdutica..
3.5 COM UN1CACJ6 N ENTRE PROCESOS ........... .................................................................. 24
. ..... 26

3.5. 1 Un ejemplo de conumicaciOn eiJtre procesos...

4. LA CLASE PROCESS ....................................... .

. ........................... ...................... 32

4.1 IMPLANTACJ6N DE LA CLASE PROCESS ..

............ 32
4. 1.1 SoluciOn ala t:reaciOn de procesos. ..
39
4. 1.1 SoluciOu para el inicio de Ia ejecuciOn coucurrellfe . . ................ ............... 44
.. ..................................................... 45

4.1.2.1 La instrucci6n COBEGIN ..

5. LA INSTRUCCION SELECT-WHEN Y LA COMUNICACION ENTRE
PROCESOS ..................................................................................................................... .48
5. 1 I M PLANTACJ6N DE S ELECT- WH EN ...... ... .................. . ....... ........... .. ....................... .48
5.2 COMUN1CAC16N ENTRE PROCESOS .............................................................................. 51
5.1. 1 Las fimciones cpp_ send() y cpp_ receive() ............ . .............. ........................... 51

6. UNA APLICACION ..................... .

. ..................... 55

CONCLUSIONES ............................................................................................................ 61

l.U l "l 0£ I•YES116.1.C 1U y ll

UT IJ{'J~S ~l'~'IIZID OS DEl

I. P. N .

atEl' LIOT EO A
'"~FN/ERI~ ELECTR/CJ

APENDICE A. LOS SOCKETS ...................................................................................... 63

A. I Q UE ES UN SOCKET ..
A.2 EL DOM INIO DE UN SOCKET . .
A.3 L AS PROPIEDADES DE L A COMUN ICACI6N ..
A.4 TIPOS DE SOCKETS DISPONIBLES ..

APENDICE B. CODIGO DE LA CLASE CHANNEL ...

................................... 63
.. ............................... 63
. ...................................................... 64
. .......................... 65
. ................................ 66

GLOSARIO ........................................................................................................................ 69

BIBLIOGRAFiA ............................................................................................................... 70

El Le11g11aje C++ Distrib11ido

I. I ntroduccion

Los sistemas computacionales actuales buscan, entre otras cualidades, mayor rapidez en el
procesamiento de datos, transparencia en el acceso a los recursos, seguridad en los datos,
interfaces mas gritficas, compartici6n de datos y dispositivos. Dejar el trabajo a un solo
proceso o procesador no es suficiente para las cxigencias actuales; Ia alternativa esta en
dividir el trabajo entre varios procesos.

Actualmente es comU.n dcscomponer una aplicaci6n compleja, en una seric de tareas mas
scncillas que se ejecuten en paralelo. Por otro !ado, Ia multiplicaci6n de redes y de
estaciones de trabajo ha pcnnitido que dichas tareas se ejecuten en distintas computadoras.
Esto ha dado Iugar a sistemas complejos conocidos como Sistemas Distribuidos. Los
sistemas distribuidos son, por naturaleza, complejas aplicaciones que requieren de Ia
interacci6n de varios componentes, en ocasiones fisicamente dispersos.

Las claras ventajas que reporta el uso de rcdes de computadoras, en particular de sistemas
distribuidos, ha impuesto a los programadores el reto de crear sistemas para ser utilizados
en este entomo. Sin embargo, es nccesario contar con lenguajes de programaci6n que
pem1itan al disefiador de sistemas programar de una manera sencilla, pero efectiva.

En
Ia actualidad, existen muy pocos lcnguajes diseilados expresamente para Ia
programaci6n de sistemas distribuidos, entre los mas conocidos se encuentran OCAM y
JAVA. Sin embargo, estos lenguajes son poco conocidos por Ia mayoria de los
programadores comunes. Para resolver este problema, a lenguajes imperatives mas
conocidos, como PASCAL o C, se les han agregado herramientas que facilitan Ia
programaci6n de sistemas distribuidos, inclusive se han creado ambientes de programaciOn
paralela y/o distribuida utilizando estos lenguajes, como es el caso de PVM (Parallel
Virtual Machine) [1 0].

Estas herramientas ayudan a\ programador a realizar aplicaciones distribuidas, sin embargo
no son sencillas de entender ni de utilizar; no penniten al programador concentrarse en el
desarrollo de Ia aplicaci6n distribuida, ya que los problemas a los que se enfrenra este son,
pri mero, entender los mecanismos que utilizani para Ia creaci6n de su programa y luego
dedicarse a Ia programaci6n de Sll sistema en si, lo cual complica Ia programaci6n.

Ante esta problem<i.tica, se pens6 en crear herramientas adicionalcs para algU.n lenguaje X,
que fueran f3ci lmente entendibles, que pennitieran Ia disminuciOn de cOdigo en las
aplicaciones y que facilitaran Ia programaciOn de sistemas distribuidos.

Para realizar lo anterior, el primer paso fue seleccionar e\lenguaje a\ que se le iban a hacer
las extensiones. Este lenguaje deberia ser conocido por Ia mayoria de los programadorcs y
utilizado en muchas de las aplicaciones actuales, con el fin de lograr un amplio entomo de
uso. Asimismo, este lenguaje deberia pem1itir mayor modularidad en las aplicacioncs y

£1 Le11guaje C++ Di~·tribuido

mayor abstracci6n en las funciones, caracteristicas que en Ia actualidad son indispensables
en los sistemas. Pensamos que el lenguaje C cumple con estas caracteristicas, ya que
actualmente es uno de los lenguaj es de programaci6n mas difundidos y utilizados en el
ambito mundial. Sin embargo, debido a Ia necesidad de modularidad, abstracci6n,
disminuci6n de c6digo y Ia creciente popularidad de Ia programaci6n orientada a objetos
durante los Ultimos af10s, el Jenguaje seleccionado fue C++. Este lenguaje soporta Ia
abstracci6n y el encapsulamicnto de datos de manera adecuada, por lo que resulta atractivo
para el desarrollo de sistemas de software grandes y complejos. Adem<i
  • Links de descarga
http://lwp-l.com/pdf1218

Comentarios de: Tesis: Jose Mitre - C++ Distribuido (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