Sistemas Distribuidos


Semestre:

Fecha de elaboración:

Enero de 2014

Fecha de revisión:

Febrero de 2014

Elaborado por:

Magali Arellano Vázquez, Lorena Díaz González

Ciclo de formación:

Profesional

Área curricular:

Ciencias de la Disciplina

Tipo de unidad:

Teórica

Carácter de unidad:

Obligatoria

Clave:

SD01FP050010

Créditos:

10

Semestre:

Horas Teoría:

5

Horas Práctica:

0

Programas académicos en los que se imparte:

Licenciatura en Ciencias Áreas terminales en Matemáticas, Física, Bioquímica y Biología Molecular, y Ciencias Computacionales y Computación Científica

Prerrequisitos:

Comprende los conocimientos básicos sobre la arquitectura y operación de un sistema operativo así como las funciones básicas que desempeña.

Antecedentes Recomendadas:

Ninguna

Consecuentes Recomendadas:

  • Ninguna

Presentación de la unidad de aprendizaje:

En esta unidad de aprendizaje se estudian los fundamentos de la computación distribuida, tales como la comunicación, sincronización y coordinación de procesos.


Propósito de la unidad de aprendizaje:

El propósito de este curso es que el alumno adquiera conocimientos sobre los principios fundamentales de los sistemas distribuidos. Asi como también que realice un conjunto de prácticas para que aprenda a implementar los conceptos teóricos tales como Sockets, RMI, RPC e Hilos.


Competencias profesionales:

Codifica y maneja operaciones de estructuras de datos avanzadas.Conoce la arquitectura de los sistemas operativos, el tipo de algoritmos y estructuras de datos que los componen.Comprende la importancia del uso de un sistema operativo para ejecutar los procesos y gestionar los recursos de un sistema.

Contribución al perfil de egreso:

Se aportan competencias académicas y profesionales en el área terminal de su elección, que posibiliten el adecuado desempeño para seleccionar, movilizar y gestionar las disposiciones y los recursos disponibles para resolver problemas en un campo determinado de situaciones de acción, así como la capacidad para el aprendizaje de forma autónoma.


Secuencia temática:

  1. I Introdución.
    1. Características de un sistema distribuido.
    2. Objetivos de los sistemas distribuidos.
    3. Ventajas y desventajas de los sistemas distribuidos.
    4. Complejidad de los sistemas distribuidos.
    5. Técnicas de construcción.
    6. Requerimientos de aplicación.
    7. Arquitectura básica.
    8. Práctica con OpenMosix.
  2. II Comunicación entre procesos.
    1. Sockets.
    2. Modelo cliente- servidor.
    3. RPC.
    4. RMI.
    5. Práctica con sockets, RMI y RPC.
  3. III Procesos.
    1. Hilos y concurrencia.
    2. Concurrencia.
    3. 3.2.1 Bloqueos.
    4. 3.2.1.1 Exclusión mutua.
    5. 3.2.1.2 Starvation.
    6. 3.2.1.3 Liveness.
    7. 3.2.2 Espacio de direcciones.
    8. 3.2.3 Creación de un nuevo proceso.
    9. 3.2.4 Hilos.
    10. 3.2.5 Invocación de procesos.
    11. 3.2.6 Práctica con hilos e investigación sobre algoritmos de exclusión mutua.
  4. IV Sincronización.
    1. Relojes y eventos.
    2. 4.1.1 Sincronización de relojes físicos.
    3. 4.1.1.1 Método de Cristian.
    4. 4.1.1.2 Algoritmo de Berkeley.
    5. 4.1.1.3 Protocolo de tiempo de red.
    6. Tiempo lógico y relojes lógicos.
  5. V Coordinación y acuerdo.
    1. Introducción.
    2. Fallos y detectores de fallos.
    3. Exclusión mutua distribuida.
    4. Elecciones.
    5. Comunicación por multidifusión.
    6. Consenso y problemas relacionados.
    7. Gestión de interbloqueos.

Criterios de Evaluación:

  • Exámenes parciales: 30%
  • Examen final: 30%
  • Participación en clase: 10%
  • Búsqueda de información: 10%
  • Otra (especifique): Tareas: 20%


Bibliografía básica:

  • Santoro, Nicola. 2006. Design and analysis of distributed algorithms. Ed. John Wiley & Sons.
  • Attiya, Hagit y Welch, Jennifer. 2004. Distributed computing, fundamentals, simulations and advanced topics. 2a edición. Ed. John Wiley & Sons.
  • Guerraoui, Rachid y Rodrigues, Luis. 2006. Introduction to reliable distributed programming. Ed. Springer.

Bibliografía complementaria:

  • Coulouris, George, Dolimore, Jean y Kindberg, Tim. Sistemas distribuidos, conceptos y diseño. 3a edición. Ed. Addison Wesley.
  • Tanenbaum, Andrew S. y Van Steen Maarten. 2008. Sistemas distribuidos, principios y paradigmas. 2a edición. Ed. Pearson Education.