MATERIA: Programación Distribuida
CLAVE: Cs-95-036
REQUISITO: Ninguno
Justificación
Los nuevos planes de estudios de las carreras de sistemas están enfocados hacia el manejo de redes. Un curso que hace falta en el plan de estudios, y muy útil para el manejo de redes, es uno en el que se le enseñe al alumno el uso de las llamadas de sistemas para la comunicación de procesos residentes en máquinas diferentes. El curso propuesto cubre esta necesidad.
Objetivo General del Curso
Dominar el uso de las principales herramientas necesarias para la implementación de algoritmos distribuidos; as í como comprender las características principales de estos algoritmos.
Descripción general del curso
El curso abarca los principales aspectos teórico-prácticos de los algoritmos distribuidos. En el aspecto práctico se abordan las dos principales herramientas para la comunicación entre procesos distribuidos: el RPC y los sockets y el RPC. Por el lado teórico se tratan los aspectos más importantes de los algoritmos distribuidos: los conceptos base, los diferentes tipos que existen y su implementación.
Requisitos
Cabe la pena aclarar que la persona que desee seguir este curso debe tener un buen conocimiento del lenguaje programación C.
Responsable
Dr. Roberto Gómez Cárdenas,
Profesor-Investigador del
Dpto. de Ciencias Computacionales del ITESM-CEM
e-mail:rogomez@campus.cem.itesm.mx
página:http://www-lce.cem.itesm.mx/~rogomez
Temario
1. Introducción a los algoritmos distribuidos
3. Programando Sockets
3.1 Introducción a los sockets
3.2 Tipos de comunicación en sockets
3.3 Las familias de sockets
3.4 Uso de sockets Unix
3.5 Uso de sockets en protocolos orientados no conexión
3.6 Uso de sockets en protocolos orientados conexión
3.7 Diseño e implementación de time-outs
3.8 Programando sockets con la llamada select()
4. El RPC: Remote Procedure Call
4.1 Aspectos teóricos del RPC
4.2 El RPC de Sun
4.3 Convirtiendo una llamada de función en RPC
4.4 Pasando más de un parámetro
4.5 RPCs idempotentes
4.6 Programación de RPCs con funciones de alto nivel
4.7 Programación de RPCs con funciones de bajo nivel
5. Algoritmos de control
5.1 El algoritmo de exclusión mutua de Le Lann
5.2 El algoritmo de elección de Chang-Roberts
5.3 El algoritmo de Chandy-Misra de ruteo
5.4 El algoritmo de ruteo de tablas compactas
5.5 El ruteo por intervalos
Objetivos por temas
En base al temario descrito en la sección anterior se plantean los siguientes objetivos por tema:
1. Aprender las características principales de los algoritmos distribuidos, así como sus ventajas y desventajas con respecto a otros algoritmos.
2. Comprender las características principales de los sistemas cliente/servidor y sus diferencias con otros tipos de sistemas.
3. Comprender los aspectos básicos de la comunicación entre procesos remotos basados en sockets, para implementar programas cliente/servidor
4. Entender, usar e implementar diferentes programas cliente/servidor basados en RPC, utilizando la utilería rpcgen de Sun, y desarrollando sus propias rutinas de comunicación
5. Enumerar y explicar las características de los principales algoritmos de control
6. Comprender las características de la recursión en un ambiente distribuido.
Bibliografía
No se tiene un libro de texto como tal en este momento, o hasta que el responsable del curso decida terminar su libro. Es debido a esto se tomarán los siguientes libros como libros de consulta: