APENDICE
(Compilación y Ejecución
de los Ejemplos)



PROGRAMA : chat

Compilación.

Para la compilación de este programa de ejemplo he creado un fichero makefile en el cual se especifica las dependencias entre módulos, así como los ejecutables resultantes. A continuación se muestra el contenido de dicho fichero:

PATHPPL=$(HOME)/proyecto/ppl/
LIBS= -L/usr/openwin/lib -lxview -lolgx -L/usr/X11/lib -lX11
CC= gcc
PPLOBJS= $(PATHPPL)list.o $(PATHPPL)netutils.o $(PATHPPL)utils.o

all: serchat clichat

serchat: $(PPLOBJS) serchat.c chat.h
$(CC) serchat.c -o serchat $(PPLOBJS)

clichat: $(PPLOBJS) clichat.c chat.h
$(CC) clichat.c -o clichat $(PPLOBJS)

en el se especifica como tienen que ser compilados los programas, las librerías necesarias y las dependencias entre módulos de programa.

Para compilar tantos los procesos cliente como servidor lo único que hay que hacer es teclear, dentro del directorio en el cual se encuentran los ficheros fuentes y el fichero makefile, el comando make.

Finalizado el proceso de compilación dispondremos de dos ejecutables, uno llamado serchat que corresponde al proceso servidor, y otro llamado clichat que corresponde al proceso cliente.


Ejecución.

El proceso servidor serchat tiene que ser ejecutado en una de las máquinas de la red, accesible por el resto de máquinas en las cuales se ejecutarán los procesos clientes.

Cada proceso cliente clichat será ejecutado por el usuario, indicando como parámetro la dirección IP de la máquina en la cual se está ejecutando el proceso servidor con el cual se desea conectar.

Por ejemplo, si se inicia la ejecución del servidor en un equipo con la dirección de red 192.168.0.1, para que un usuario pueda contactar con este servidor de chat tendría que ejecutar el cliente de chat del siguiente modo:

clichat 192.168.0.1

El proceso clichat toma el papel tanto de cliente (solicita al servidor que muestre las cadenas al resto de usuarios conectados) como de servidor (se crea un proceso hijo que se queda en espera de que el servidor de chat le remita las cadenas a ser impresas en pantalla, cadenas escritas por el propio usuario, o por otros usuarios). Estas funciones las lleva a cabo sobre unos números de puerto de protocolo concretos, por lo que no será posible ejecutar dos clientes simultáneamente en el mismo ordenador.



PROGRAMA : Suavizado Binario de Imágenes

Compilación.

Para la compilación de este programa de ejemplo he creado un fichero makefile en el cual se especifica las dependencias entre módulos, así como los ejecutables resultantes. A continuación se muestra el contenido de dicho fichero:

PATHPPL=$(HOME)/proyecto/ppl/
LIBS=-L/usr/openwin/lib -lxview -lolgx -L/usr/X11/lib -lX11
CC=gcc
PPLOBJS= $(PATHPPL)list.o $(PATHPPL)netutils.o $(PATHPPL)utils.o
OBJS= img.o
OBJSX= img.o entornox.o

all: img.o entornox.o serimg cliimg cliimgx

img.o: img.c img.h

entornox.o: entornox.c img.c img.h

serimg: $(PPLOBJS) $(OBJS) serimg.c
$(CC) serimg.c -o serimg $(PPLOBJS) $(OBJS)

cliimg: $(PPLOBJS) $(OBJS) cliimg.c img.c img.h
$(CC) cliimg.c -o cliimg $(PPLOBJS) $(OBJS)

cliimgx: $(PPLOBJS) $(OBJSX) cliimgx.c img.c img.h entornox.c
$(CC) cliimgx.c -o cliimgx $(PPLOBJS) $(LIBS) $(OBJSX)

en el se especifica como tienen que ser compilados los programas, las librerías necesarias y las dependencias entre módulos de programa.

Para compilar tantos los procesos cliente como servidor lo único que hay que hacer es teclear, dentro del directorio en el cual se encuentran los ficheros fuentes y el fichero makefile, el comando make.

Finalizado el proceso de compilación dispondremos de tres ejecutables, uno llamado serimg que corresponde al proceso servidor, otro llamado cliimg que corresponde a la versión consola del cliente, y otro llamado cliimgx que corresponde a la versión X-Windows del cliente.


Ejecución.

Se inicia la ejecución de un proceso servidor serimg en cada una de las máquinas disponibles, bien dentro de una red local, o bien en una red remota accesible a través de Internet, la red telefónica o cualquier otro camino.

El usuario inicia la ejecución de un único proceso cliente (cliimg o cliimgx) encargado de controlar la ejecución del conjunto de servidores para el procesado de la imagen de forma paralela. Lo primero que hace el usuario es examinar la red, indicando un rango de direcciones IP y un timeout, para establecer la conexión con los servidores activos y evaluar su potencia de proceso. A continuación se genera la imagen ruidosa a ser procesada y se inicia el procesamiento en el conjunto de servidores activos en la red.

En la primera fase del procesamiento se particiona la imagen asignando a cada servidor activo una porción de la misma (la carga asignada a cada servidor va en función de su capacidad de proceso). A continuación se inicia la fase de comunicación de datos en la cual se transmite cada porción a su servidor indicándole que inicie el procesamiento de la misma. Entramos en la fase de proceso. El cliente establece por cada servidor un temporizador con el tiempo previsto para su conclusión. Finalizada la fase de proceso se inicia la fase de recopilación de resultados en la cual el cliente solicita a cada servidor que le transmita la porción de imagen procesada. El cliente recopila cada una de estas porciones para formar la imagen resultado y poder mostrársela al usuario.

Se dispone de una ventana de estado en la cual se pueden ver las características de la imagen a ser procesada, así como una estimación de la potencia global del conjunto de servidores activos y una estimación del tiempo necesario para procesar la imagen con los servidores disponibles.

También existe una ventana de salida en la cual se van mostrando las distintas fases de procesamiento, así como los mensajes de advertencia referentes a las situaciones especiales que se pueden producir durante la ejecución del programa.


[Indice] [Apéndice] [Bibliografía]

[Capítulo 1] [Capítulo 2] [Capítulo 3] [Capítulo 4] [Capítulo 5] [Capítulo 6] [Capítulo 7]

[Página principal] [Proyecto] [Sección FTP] [Libro de visitas] [Consulte mi libro de visitas]