Sistemas Distribuidos, 13 Otoño
|
Curso
- Clave:
1151046, contenido
oficial
- Prerequisitos: Sistemas Operativos y Bases de
Datos
- Trimestre: 13
Otoño
- Inicio del curso:
26 de agosto de 2013
- Fin del curso:
11 de noviembre de 2013
- Grupo: CSI 01
- Salón de clase:
G206
- Días y hora de clase:
Lunes, miércoles y viernes de 08:00 a 10:00hrs.
- Asesorías:
Martes y jueves de 11:00-13:00 hrs, G314-4
|
Objetivos
-
Describir
las características de un sistema distribuido.
-
Describir
las arquitecturas y los mecanismos de los sistemas
distribuidos.
-
Implementar
servidores sencillos multiproceso, concurrentes y
multihilo.
-
Desarrollar
sistemas distribuidos simples utilizando llamadas a
procedimientos
remotos, la
comunicación basada en mensajes, la comunicación
entre objetos
distribuidos
y CORBA.
-
Describir
el sistema de archivos distribuido NFS.
|
Contenido
Sintético
1.
Arquitecturas de los sistemas distribuidos.
2. Servidores multiproceso, concurrentes y multihilo.
3. Transacciones y control de concurrencia.
4. Replicación de procesos y datos.
5. Migración de procesos y balanceo de carga.
6. Llamadas a procedimientos remotos (RPC) y comunicación
basada en mensajes (MPI).
7. Comunicación entre objetos distribuidos (RMI).
8. Coordinación y consenso.
9. Arquitectura y servicios CORBA.
10. Sistema de archivos distribuido NFS.
|
Bibliografía
- Tanenbaum, A.
S., van Steen M., "Distributed
Systems: Principles and Paradigms", Prentice Hall,
2002.
- Coulouris, G.,
Dollimore J., Kindberg T. "Distributed
Systems,
Concepts
and
Design", 3rd Ed., Addison Wesley, 2004.
- Stroustrup,
B., "The
C++ Programming Language", 3rd Ed.,
Addison-Wesley, 2004.
- Deitel & Deitel,
"C++ How to Program",
6th Ed, Prentice Hall, 2007.
- Deitel & Deitel,
"Java How to Program",
7th Ed, Prentice Hall, 2007.
- Eckel, B. "Thinking in
Java", 3rd Ed., Electronic Book, 2004.
- Eckel, B. "Thinking
in C++", 2nd Ed., Electronic Book, 2000.
|
Herramientas
|
Mensajes
Publicado
|
Mensaje
|
260813
|
El inicio de
curso
|
280813
|
Tarea 1: compilar el kernel
de Linux de manera distribuida utilizando
distcc. Utilizar al menos 3 equipos.
|
|
Tarea 2:Función
gethid()
|
130913
|
Tarea 3:Hijos chambeadores con
pthreads y python, 200913
|
230913
|
Proyecto 1:Aplicación con sockets
|
250913
|
El primer examen parcial será el
041013
|
250913
|
Tarea 4: servidores multihilo 270913
|
|
Proyecto 2:Aplicación con MPI |
|
Proyecto 3:Aplicación con RPC |
|
Proyecto 4:Aplicación con RMI |
|
Proyecto 5:Aplicación con CORBA |
111113
|
El segundo examen parcial será el día
131113 de 8:30 a 10:00hrs en el G208
|
|
|
|
Evaluación
- 1er parcial:
50% examenes + 50% programas
- 2do parcial:
50% examenes + 50% programas
Calificaciones parciales
- Calificaciones.
Última actualización: 071013
|
Calendario
Sem |
Dia |
Notas
|
Códigos
|
1
|
260813
|
01.Introducción
a los Sistemas Distribuidos
|
Programación Orientada a Objetos con C++, Java y
Python
|
1
|
280813 |
Compilación distribuida con distcc |
Encapsulamieto:clases,
métodos y funciones miembro
|
1
|
300813 |
02.Procesos,
sincronización y comunicación entre procesos
|
Herencia múltiple y métodos virtuales (C++) e
Interfaces (Java) |
2
|
020913 |
03.Programas para creación, sincronización y
comunicación de procesos
|
|
2
|
040913 |
04.Hilos
en sistemas uni-procesador y multi-procesador
|
|
2
|
060913 |
05.Implementación
de hilos con OpenMP
|
|
3
|
090913 |
06.Implementación
de hilos con Pthreads
|
Envoltura de
funciones y makefile |
3
|
110913 |
07.Introducción a Python e implemenatción de
hilos con Python |
pthreads, python |
3
|
130913 |
08.Procesos remotos
|
|
4
|
160913 |
Descanso
obligatorio
|
Tipos de sistemas distribuidos |
4
|
180913 |
Clase cancelada
|
|
4
|
200913 |
09.API
de sockets BSD y conexión TCP
|
|
5
|
230913 |
10.Cliente-servidor
TCP con sockets BSD
|
sd_err.h
y sd_err.c
|
5
|
250913 |
11.Servidores
concurrentes y
multihilo
|
|
5
|
270913 |
12.GUI
con Qt4
13.Cliente-servidor TCP con Python
|
|
6
|
300913 |
14.Tipos
de
sistemas
distribuidos
|
|
6
|
021013 |
15.Arquitecturas
de sistemas
distribuidos
|
|
6
|
041013 |
1er examen parcial
|
|
7
|
071013 |
16.Clientes
y sistema X
|
|
7
|
091013 |
Encapsulamiento:
C++, Java, Python |
|
7
|
111013 |
17.Servidores
|
|
8
|
141013 |
18.Migración
de código
|
|
8
|
161013 |
19.Comunicación
orientada a
mensajes y MPI
|
|
8
|
181013 |
20.Cluster
Beowulf y OpenMPI para C y Python
|
|
9
|
211013 |
21.Aplicación en
un cluster con OpenMPI y C
|
|
9
|
231013 |
22.OpenMPI
con Python
|
|
9
|
251013 |
23.RPCs |
|
10
|
281013 |
24.Aplicación con
RPCs |
|
10
|
301013 |
25.Nombramiento y DNS
|
|
10
|
011113
|
Descanso
obligatorio
|
|
11
|
041113
|
26.Objetos distribuidos
26.Pyro
26.Aplicación con Pyro
|
|
11
|
061113 |
27.Interfaz Java, interfaz C++ e
interfaz remota
28.RMI
29.Aplicación con RMI
|
|
11
|
081113 |
30.CORBA para C++, Java y Python
|
|
11-b
|
111113 |
31.Servidor CORBA en C++ y cliente
CORBA en Java |
|
|
|
32.Sistemas de archivos distribuidos
NFS y configuración NFS |
|
|