Contenido de XSL

Sistemas Distribuidos

Centro
Facultad de Informática
Titulación
Grado en Ingeniería Informática
Curso académico
2017/18
Curso
4
Nº Créditos
6
Idiomas
Castellano

DocenciaAlternar navegación

Distribución de horas por tipo de enseñanza
Tipo de docenciaHoras de docencia presencialHoras de actividad no presencial del alumno/a
Magistral4040
Seminario00
P. de Aula1025
P. Laboratorio1025

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: Comprendar 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 dchas 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. Práctica: llamadas a procedimientos remotos, invocación remota de objetos, comunicación uno a muchos mediante IP Multicast.



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. Distributed Systems: Concepts and Design (4th edition). Addison-Wesley, 2005.



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.

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.

G. Tel. Introduction to Distributed Algorithms (2nd edition). Cambridge University Press, 2000.

N. Lynch. Distributed Algorithms. Morgan Kaufmann Publishers, 1996.

R. Guerraoui, L. Rodrigues. Introduction to Reliable Distributed Programming. Springer, 2006.

N. Santoro. Design and Analysis of Distributed Algorithms. Wiley, 2007.

Revistas

IEEE Transactions on Parallel and Distributed Systems

(Springer) Distributed Computing

(Elsevier) Journal of Parallel and Distributed Computing

ACM Transactions on Computer Systems

IEEE Transactions on Computers



GruposAlternar navegación

01 Teórico (Castellano - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

09:00-10:30

10:45-12:15

Profesorado

01 P. de Aula-1 (Castellano - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

12:30-14:00

Profesorado

01 P. Laboratorio-1 (Castellano - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

12:30-14:00

Profesorado