Ciencias de la Computación (plan 2013) 2023-2
Quinto Semestre, Computación Distribuida
Grupo 7089, 40 lugares. 17 alumnos.
La Computación Distribuida comprende herramientas, algoritmos y problemas de cómputo en un contexto donde los recursos computacionales se encuentran descentralizados y se acceden por medio de una red.
Por ello, es necesario abordar estas situaciones con metodología diferente a la empleada en el caso de cómputo “tradicional” o centralizado, lo cual se estudiará en este curso.
Evaluación
-
Exámenes 30%
-
Tareas 30%
-
Prácticas 40%
Las entregas de prácticas de programación se realizarán por medio de Google Classroom.
La liga para el aula virtual es: https://classroom.google.com/c/NTQxODkyMDM4NDMy
El código del grupo es: rkm4khm
Nota: los porcentajes están sujetos a cambio durante las primeras semanas de clase y en acuerdo con el grupo.
Las ayudantías de teoría inician el martes 14 de febrero.
Las ayudantías de laboratorio inician el miércoles 15 de febrero.
Temario
1 Introducción
1.1 Antecedentes y definiciones básicas
1.1.1 Diferencias entre cómputo Concurrente, paralelo y distribuido
1.1.2 Taxonomía de Flynn
1.2 Arquitectura y modelos de memoria
1.2.1 La jerarquía de memoria
1.2.2 Características del paso de mensajes
1.2.3 Topologías de red
2 Algoritmos distribuidos
2.1 Rendimiento de algoritmos distribuidos
2.1.1 Características de un sistema distribuido
2.1.2 Complejidad y Métricas
2.2 Búsqueda y ordenamiento en ambientes distribuidos
3 Comunicación en sistemas distribuidos
3.1 El fenómeno de “mundo pequeño”
3.2 Protocolo de bit alternante
3.3 Difusión de información
3.4 Algoritmos epidémicos
4 Problemas clásicos de computación distribuida
4.1 Sincronización
4.1.1 Sincronización de relojes
4.1.2 Relojes lógicos
4.2 Consenso
4.2.1 El problema de los Generales Bizantinos
4.2.2 Algoritmos de consenso distribuido
4.3 Elección
5 Computación en la red
5.1 Protocolo de Internet (TCP/IP)
5.1.1 Protocolos de aplicación
5.2 Peer-to-Peer
5.3 Cómputo en la nube
6 Temas selectos
6.1 Sistemas Operativos distribuidos
6.1.1 Recursos compartidos en redes
6.1.2 Exclusión Mutua en ambientes distribuidos
6.2 Transacciones distribuidas
6.3 Blockchain