Contenido de XSL
Sistemas Distribuidos
- Centro
- Facultad de Informática
- Titulación
- Grado en Ingeniería Informática
- Curso académico
- 2018/19
- Curso
- 4
- Nº Créditos
- 6
- Idiomas
- Castellano
DocenciaAlternar navegación
Tipo de docencia | Horas de docencia presencial | Horas de actividad no presencial del alumno/a |
---|---|---|
Magistral | 40 | 40 |
Seminario | 0 | 0 |
P. de Aula | 10 | 25 |
P. Laboratorio | 10 | 25 |
Guía docenteAlternar navegación
ObjetivosAlternar navegación
Competencias
------------
C1: Comprender la necesidad de proporcionar abstracciones y herramientas sobre las redes de computadores para integrar recursos y soportar aplicaciones distribuidas de forma transparente.
C2: Comprender los mecanismos básicos que permiten implementar las abstracciones y herramientas de los sistemas distribuidos.
C3: Obtener la capacidad de evaluar el rendimiento de los mecanismos y comprender la necesidad de adoptar compromisos de diseño en los sistemas distribuidos de cara a optimizar el rendimiento.
C4: Obtener la capacidad de abordar el desarrollo en grupo de proyectos sencillos sobre sistemas distribuidos, documentar las soluciones adecuadamente y exponerlas en público.
Resultados de Aprendizaje
-------------------------
El estudiante:
R1: Identifica las propiedades necesarias de los sistemas disstribuidos.
R2: Identifica dichas propiedades en diversos sistemas y soluciones distribuidas: sistemas de ficheros distribuidos, sistemas tolerantes a fallos, algoritmos de sincronización y de acuerdo distribuido.
R3: Propone soluciones distribuidas a problemas concretos.
R4: Analiza y compara el rendimiento de las soluciones y mecanismos distribuidos.
R5: Elabora informes técnicos explicando las decisiones de diseño en base a las especificaciones y de acuerdo al estado del arte, el coste y el rendimiento.
R6: Expone y defiende oralmente las soluciones adoptadas.
TemarioAlternar navegación
Contenidos teóricos
-------------------
Tema 1
Introducción
Motivación. Propiedades de los sistemas distribuidos. Aplicaciones distribuidas. Computación móvil y ubicua. Soporte hardware. Soporte de comunicaciones. Estructura de un sistema distribuido.
Tema 2
Tiempo, causalidad y consistencia
Tiempo físico. Sincronización de relojes. Tiempo lógico y causalidad. Estado global y consistencia. Problemas de ajuste de tiempos y ordenación de eventos. Herramientas y protocolos de sincronización de relojes (p.ej., NTP), algoritmos de sincronización.
Tema 3
Sincronización distribuida
Exclusión mutua en sistemas distribuidos. Algoritmos de elección de líder. Comunicación a grupos: semánticas de difusión e implementación. Replicación. Arquitecturas para tolerancia a fallos. Transacciones distribuidas: compromiso atómico en dos fases. El problema del Consenso.
Tema 4
Sistemas de ficheros distribuidos
Modelo de sistema. Servidores de nombres. Servidores de ficheros. Sistemas de ficheros de alto rendimiento. Sistemas de ficheros de ámbito Internet. Ejemplos: NFS, CIFS, AFS, Coda. Prueba de sistemas de ficheros distribuidos y evaluación de su comportamiento en diferentes situaciones.
Tema 5
Seguridad en sistemas distribuidos
Amenazas. Políticas de seguridad y mecanismos de seguridad. Servidores de seguridad. Ejemplo: Kerberos. Caso práctico: Computación distribuida segura.
Trabajo práctico
----------------
Desarrollo de un trabajo en grupo en el ámbito de los sistemas distribuidos. Se proponen temas como: sistemas de alta disponibilidad, computación en grid, computación móvil y ubicua, sistemas en la nube, etc.
MetodologíaAlternar navegación
Los contenidos teórico prácticos no se desarrollan necesariamente en el orden enunciado, sino que se sigue un enfoque mixto de orientación a problemas y clases magistrales. Se define un problema inicial (por ejemplo: implementación de un sistema distribuido en la nube) y se analiza su diseño paso a paso, entrando en el diseño y evaluación de los mecanismos que componen sus aspectos. Finalmente se culmina el trabajo propuesto y se presenta en una memoria de grupo.
En general el esquema que se sigue en cada paso consiste en motivar primero a los estudiantes para que, de forma dirigida, discutan y propongan soluciones básicas para luego discutirlas en común y completarlas mediante clase magistral con las soluciones y mecanismos que el estado del arte ofrece. Posteriormente, se pide que re-elaboren y evalúen las propuestas en un pequeño informe escrito que, una vez corregido por el profesor, puede usarse en un test de evaluación.
En evaluación continua, se evalúan los informes de grupo y se realizan tests individuales recapitulativos. Al finalizar el curso, el trabajo práctico se evalúa mediante la memoria y una breve presentación oral.
La prueba de conjunto alternativa, además de un ejercicio escrito con problemas (80%), incluye la presentación de un trabajo práctico (20%).
Sistemas de evaluaciónAlternar navegación
La preinscripción en el modo de evaluación continua se realizará en las fechas establecidas. La preinscripción pasará a ser definitiva tras la confirmación de la solicitud por parte del estudiante en las fechas que se establezcan (entre el 60% y el 80% del curso) y previa verificación del rendimiento parcial por parte del profesorado. Si en las mencionadas fechas el/la alumno/a no confima su inscripción definitiva en evaluación continua se entenderá que renuncia a la misma.
Materiales de uso obligatorioAlternar navegación
La documentación en eGela.
BibliografíaAlternar navegación
Bibliografía básica
Apuntes de la asignatura de Sistemas Distribuidos
G. Coulouris, J. Dollimore, T. Kindberg, G. Blair. Distributed Systems: Concepts and Design (5th edition). Addison-Wesley, 2011.
A. Tanenbaum, M. Van Steen. Distributed Systems: Principles and Paradigms (2nd edition). Prentice-Hall, 2007
Bibliografía de profundización
S. Mullender. Distributed Systems (2nd edition). Adison-Wesley, 1993.
A. Tanenbaum. Distributed Operating Systems. Prentice-Hall, 1995.
N. Lynch. Distributed Algorithms. Morgan Kaufmann Publishers, 1996.
P. Verissimo, L. Rodrigues. Distributed Systems for System Architects. Kluwer Academic Publishers, 2001.
H. Attiya, J. Welch. Distributed Computing: Fundamentals, Simulations, and Advanced Topics. Wiley-Interscience, 2004.
K. Birman. Reliable Distributed Systems: Technologies, Web Services, and Applications. Springer, 2005.
N. Santoro. Design and Analysis of Distributed Algorithms. Wiley, 2007.
C. Cachin, R. Guerraoui, L. Rodrigues. Introduction to Reliable and Secure Programming (2nd edition). Springer, 2011.
M. Raynal. Distributed Algorithms for Message-Passing Systems. Springer, 2013.
Revistas
IEEE Transactions on Parallel and Distributed Systems
(Springer) Distributed Computing
(Elsevier) Journal of Parallel and Distributed Computing
ACM Transactions on Computer Systems
GruposAlternar navegación
01 Teórico (Castellano - Mañana)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
1-15 | 09:00-10:30 | 10:45-12:15 |
Profesorado
01 P. de Aula-1 (Castellano - Mañana)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
1-15 | 12:30-14:00 |
Profesorado
01 P. Laboratorio-1 (Castellano - Mañana)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
1-15 | 12:30-14:00 |