GUÍA DOCENTE. DATOS BÁSICOS DE LA ASIGNATURA

Download (0)

Full text

(1)

FICHA DE LA ASIGNATURAS Sistemas Operativos Distribuidos PARA GUÍA DOCENTE.

DATOS BÁSICOS DE LA ASIGNATURA

NOMBRE: Sistemas Operativos Distribuidos

CÓDIGO: 3104007 AÑO DE PLAN DE ESTUDIO: 2005 TIPO (troncal/obligatoria/optativa) : Obligatoria

Créditos totales (LRU/ ECTS): 6/5

Créditos LRU/ECTS teóricos: 3/2.5

Créditos LRU/ECTS prácticos: 3/2.5

CURSO: 1º CUATRIMESTRE: 2º CICLO: 2º CURSO ACADÉMICO: 2013 – 2014

TITULACIÓN: INGENIERÍA INFORMÁTICA

DATOS BÁSICOS DE LOS PROFESORES

NOMBRE: Pedro Antonio Gutiérrez Peña

CENTRO/DEPARTAMENTO: Informática y Análisis Numérico ÁREA: Ciencias de la Computación

Nº DESPACHO: C23S130 E-MAIL: pagutierrez@uco.es TLFNO.: 957-218153

DATOS ESPECÍFICOS DE LA ASIGNATURA

1. DESCRIPTOR Según BOE:

• Sincronización de los sistemas distribuidos.

• Planificación en los sistemas distribuidos.

• Gestión de memoria distribuida.

• Sistemas de ficheros distribuidos. 2. SITUACIÓN

2.1. PRERREQUISITOS:

No existen prerrequisitos para cursar Sistemas Operativos Distribuidos en el plan de estudios. Sin embargo, la asignatura se fundamenta en conocimientos detallados de la estructura interna y el funcionamiento de un sistema operativo y de una red de computadores. Esto hace que sea aconsejable tener aprobadas las asignaturas “Sistemas Operativos” del primer ciclo de Informática y “Redes” del primer ciclo de Informática. 2.2. CONTEXTO DENTRO DE LA TITULACIÓN:

La asignatura Sistemas Operativos Distribuidos está relacionada con las siguientes asignaturas de la titulación Ingeniero Informática:

“Seguridad Informática”: asignatura optativa y cuatrimestral del segundo curso.

“Redes”: asignatura anual y troncal del segundo curso. 2.3. RECOMENDACIONES:

Se recomienda que el alumno tenga un conocimiento previo sobre programación orientada a objetos, sistemas operativos y redes.

(2)

3. COMPETENCIAS

3.1. COMPETENCIAS TRANSVERSALES/GENÉRICAS:

1. Capacidad para trabajar efectivamente en grupos pequeños de personas para la resolución de un problema de dificultad media.

2. Capacidad para estudiar de varias fuentes, identificando cuándo la información recibida en clase no es suficiente y buscando información complementaria. 3. Capacidad para aprender autónomamente.

3.2. COMPETENCIAS ESPECÍFICAS:

Cognitivas (Saber):

o Conocer en profundidad los principales paradigmas de programación sobre sistemas distribuidos, el modelo cliente/servidor...

o Conocer las diferencias entre un sistema operativo en red y un sistema operativo distribuido.

o Servicios distribuidos básicos y avanzados.

o Propiedades consecuencia del comportamiento colectivo de un sistema: tolerancia a fallos, mayor capacidad, seguridad.

o Conocer las últimas tendencias en soluciones a las necesidades de distribución.

Procedimentales/Instrumentales (Saber hacer):

o El estudiante será capaz de analizar los problemas y elegir soluciones que puede plantear el diseño o el funcionamiento de una aplicación distribuida. o Optimización de los recursos del sistema y la red.

o Capacidad de desarrollar sistemas o mecanismos que solucionen problemas de tolerancia a fallos, rendimiento, escala, movilidad.

Actitudinales (Ser):

o Capacidad de trabajo en equipo. o Capacidad de razonamiento crítico.

4. OBJETIVOS

De manera general, los objetivos de la asignatura son los siguientes:

• Conocer en profundidad los principales paradigmas de programación sobre Sistemas Distribuidos y las propiedades consecuencia del comportamiento colectivo de un sistema: tolerancia a fallos, mayor capacidad, seguridad…

• Estudiar los fundamentos de los sistemas distribuidos y de las características de los sistemas operativos que operan sobre los mismos.

• Programar sistemas distribuidos basados en middlewares y en el paradigma de objetos distribuidos.

• Profundizar en protocolos, estándares, librerías, sistemas... fundamentados en los conceptos de sistemas distribuidos.

• Abordar nociones básicas sobre Administración y Mantenimiento de Sistemas Distribuidos utilizando herramientas de Software Libre.

(3)

5. PROGRAMA Teoría

BLOQUE 1. SISTEMAS DISTRIBUIDOS : MODELOS Y COMUNICACIÓN Tema 1. Introducción a los sistemas distribuidos.

1.1. Definición de sistema distribuido y consecuencias. 1.2. Ventajas/inconvenientes de los sistemas distribuidos.

1.2.1. Ventajas frente a sistemas centralizados.

1.2.2. Ventajas frente a los ordenadores personales independientes. 1.2.3. Inconvenientes generales.

1.3. Ejemplos de sistemas distribuidos. 1.3.1. Internet.

1.3.2. Intranets.

1.3.3. Computación móvil y ubicua. 1.4. Desafíos para los sistemas distribuidos.

1.4.1. Heterogeneidad. 1.4.2. Extensibilidad. 1.4.3. Seguridad. 1.4.4. Escalabilidad. 1.4.5. Tratamiento de Fallos. 1.4.6. Concurrencia. 1.4.7. Transparencia.

Tema 2. Modelos de cliente-servidor y peer-to-peer. 2.1. Modelo cliente/servidor.

2.1.1. Definición del modelo.

2.1.2. Algunas configuraciones alternativas. 2.1.3. Análisis del modelo.

2.2. Modelo peer-to-peer.

Tema 3. Llamada a un procedimiento remoto. 3.1. Fundamentos.

3.2. Características del modelo. 3.2.1. Definición del modelo. 3.2.2. Transferencia de argumentos. 3.2.3. Conexión dinámica.

3.2.4. Tratamiento de fallos. 3.3. Algunos aspectos de implementación.

3.3.1. Protocolo de red. 3.3.2. Acuses de recibo. 3.3.3. Camino crítico. 3.3.4. Copiado de datos.

3.3.5. Gestión de las temporizaciones de las alarmas. 3.4. Otras dificultades.

3.5. Caso de estudio: El RPC de Sun. Tema 4. Comunicación en grupo.

4.1. Fundamentos. 4.2. Aspectos de diseño.

4.2.1. Grupos cerrados o abiertos.

4.2.2. Grupos jerárquicos y grupos de compañeros. 4.2.3. Pertenencia a un grupo.

(4)

4.2.4. Envío/recepción de mensajes desde/hacia grupos. 4.2.5. Indivisibilidad.

4.2.6. Orden de los mensajes. 4.2.7. Grupos traslapados. 4.2.8. Escalabilidad. 4.3. Modelo de sistema. 4.3.1. Primitivas. 4.3.2. Fiabilidad. 4.3.3. Orden de entrega. 4.4. Casos de estudio: 4.4.1. Tipos de sistemas.

4.4.2. Comunicación en grupo en ISIS. 4.4.3. Comunicación en Grupo en PVM.

BLOQUE 2. SEGURIDAD EN SISTEMAS DISTRIBUIDOS Tema 5. Introducción a la seguridad. Criptografía.

5.1. Introducción. 5.1.1. Necesidad.

5.1.2. Algunos conceptos. 5.1.3. Amenazas y ataques. 5.1.4. Transacciones electrónicas. 5.1.5. Diseño de sistemas seguros. 5.2. Técnicas de seguridad y escenarios.

5.2.1. Criptografía. 5.2.2. Certificados. 5.2.3. Control de acceso. 5.2.4. Credenciales. 5.2.5. Cortafuegos. 5.2.6. Ejemplo: HTTPS. 5.3. Algoritmos criptográficos. 5.3.1. Conceptos básicos. 5.3.2. Tipos de algoritmos. 5.3.3. División de los mensajes.

5.3.4. Principios de ocultación de información. 5.3.5. Algoritmos simétricos.

5.3.6. Algoritmos asimétricos. 5.3.7. Algoritmos híbridos.

Tema 6. Firmas y certificados digitales. Seguridad: casos de estudio. 6.1. Firmas digitales.

6.1.1. Firmas manuscritas frente a firmas digitales. 6.1.2. Firmas digitales con claves públicas.

6.1.3. Firmas digitales con claves secretas. 6.1.4. Funciones de resumen seguras. 6.2. Casos de estudio: Kerberos.

6.2.1. Conceptos básicos.

6.2.2. Protocolo implementación de Kerberos. 6.2.3. Ventajas/críticas y alternativas.

6.3. Casos de estudio: SSL/TLS. 6.3.1. Conceptos básicos. 6.3.2. Arquitectura.

(5)

6.3.3. Protocolo de handshake. 6.3.4. Record protocol.

6.3.5. Ejemplo de uso en entorno JAVA.

BLOQUE 3. SISTEMAS DE ARCHIVOS DISTRIBUIDOS Y MEMORIA COMPARTIDA DISTRIBUIDA

Tema 7. Sistemas de archivos. 7.1. Introducción.

7.2. Estructura del sistema de archivos. 7.3. Servidor de archivos.

7.4. Gestión de archivos. 7.5. Aspectos avanzados.

7.5.1. Asignación de bloques. 7.5.2. Gestión del espacio libre. 7.5.3. Incremento de prestaciones. 7.5.4. Montado de sistemas de archivos. Tema 8. Sistemas de archivos distribuidos.

8.1. Introducción. 8.1.1. Concepto.

8.1.2. Comparación de sistemas de almacenamiento.

8.1.3. Requisitos para los sistemas de archivos distribuidos. 8.1.4. Sistema de archivos.

8.2. Modelo del servicio de archivos.

8.2.1. Arquitectura del servicio de archivos. 8.2.2. Identificación de ficheros.

8.2.3. Interfaz del servicio de archivos plano. 8.2.4. Interfaz del servicio de directorio. 8.2.5. Aspectos adicionales. 8.3. Casos de estudio: NFS. 8.3.1. Conceptos básicos. 8.3.2. Arquitectura. 8.3.3. Servicio de montado. 8.3.4. Mantenimiento de caché.

8.3.5. Control de acceso y autenticación. 8.3.6. Otros aspectos adicionales.

8.4. Casos de estudio: AFS. 8.4.1. Conceptos básicos. 8.4.2. Funcionamiento de AFS. Tema 9. Memoria compartida distribuida.

9.1. Introducción.

9.1.1. Concepto e importancia. 9.1.2. Gestión de réplicas.

9.1.3. Comparación frente al paso de mensajes. 9.1.4. Algunos métodos de implementación. 9.2. Cuestiones de diseño e implementación.

9.2.1. Estructura.

9.2.2. Modelo de sincronización. 9.2.3. Opciones de actualización. 9.2.4. Granularidad.

(6)

Prácticas

BLOQUE 1. P ROGRAMACIÓN DE APLICACIONES EN CORBA SOBRE J AVA. Tema 1. Introducción al lenguaje de programación Java.

Tema 2. Manejo del IDE Eclipse. Tema 3. Concurrencia en Java.

3.1. Creación de hilos. 3.2. Control de hilos. 3.3. Planificación. 3.4. Sincronización. 3.5. Hilos demonio.

Tema 4. CORBA y el lenguaje IDL.

4.1. Conceptos Fundamentales CORBA. 4.1.1. ¿Qué es CORBA?.

4.1.2. Arquitectura de un Sistema CORBA. 4.1.3. Alternativas a CORBA.

4.2. El Lenguaje IDL 4.2.1. Interfaces.

4.2.2. Tipos predefinidos, constantes, compuestos y contenedores. 4.2.3. Herencia, excepciones y módulos.

4.2.4. Ejemplos.

Tema 5. Programación básica en CORBA sobre Java. 5.1. Uso del Traductor IDL.

5.2. Creación del lado servidor. 5.3. Creación del lado cliente. 5.4. Compilación y ejecución.

Tema 6. Aspectos más avanzados de programación en CORBA sobre Java. 6.1. Implementación de herencia múltiple.

6.2. Excepciones. 6.3. Factory objects.

6.4. Detalles de funcionamiento.

BLOQUE 2. A DMINISTRACIÓN DE S ISTEMAS D ISTRIBUIDOS. Tema 7. Laboratorio de Administración de Sistemas Distribuidos.

7.1. Introducción al LASD. 7.2. Descripción del laboratorio.

7.3. Enrutamiento del tráfico y acceso remoto. 7.4. Servicios a implementar.

7.5. Directrices básicas. 6. METODOLOGÍA

Todo el material docente se incluirá en la web Moodle correspondiente a la asignatura. El alumno deberá preparar la asignatura utilizando dicho material. La evaluación consistirá en un examen teórico de los conceptos incluidos en el programa y la preparación de un trabajo sobre la asignatura, que deberá ser presentado al profesor.

7. EVALUACIÓN

La nota final se calcula sobre un total de 11 puntos (10 puntos más 1 punto adicional): Evaluación de la teoría (60% de la nota).

(7)

Examen final con cuestiones cortas teóricas y problemas prácticos vistos en la asignatura. Estas preguntas pueden versar tanto sobre el programa de teoría, como sobre el programa de prácticas. El examen quedará organizado en dos partes:

Preguntas cortas (aprox. 40% de la nota del examen): estas preguntas acerca de toda la asignatura permitirán medir el nivel de conocimiento global que tiene el alumno acerca de la materia.

Problemas y supuestos prácticos (aprox. 60% de la nota del examen): estos problemas permitirán medir la capacidad que tiene el alumno de aplicar los conocimientos teóricos adquiridos durante el curso.

Evaluación de la parte práctica (40\% de la nota).

Realización de un trabajo sobre la asignatura, el cual podrá ser de carácter teórico (desarrollando y extendiendo algunas de las temáticas propuestas por el profesor) o práctico (implementando una aplicación distribuida). El trabajo será expuesto al profesor con una presentación. En la evaluación de los trabajos se tendrá en cuenta:

• Calidad y originalidad.

• Defensa.

• Presentación y formato.

Evaluación de los guiones de prácticas (10% adicional de la nota).

Se puede incrementar la nota final hasta un 10% mediante la entrega de los guiones de prácticas planteados y disponibles en Moodle.

Para aprobar la asignatura será necesario superar la evaluación de la parte práctica (trabajo de la asignatura) con una nota de 5 o superior, la evaluación de la teoría (examen) con una calificación mínima de 5 puntos y que la nota media final sea igual o superior a 5. El punto adicional solo se añadirá a aquellos alumnos que cumplan dichos requisitos y no será aplicado al resto. Es decir, la nota se asignará de acuerdo al siguiente algoritmo:

La realización y entrega del trabajo de prácticas no será necesaria para poder realizar el examen de teoría. Por tanto se puede aprobar la teoría (con nota superior o igual a 5) o la

(8)

práctica (con nota superior o igual a 5) de forma independiente, pero para aprobar la asignatura, tendrá que tener aprobadas ambas en el curso académico. Tanto la nota de prácticas, como la de teoría, serán guardadas durante las convocatorias de septiembre del mismo curso académico y diciembre del curso siguiente. Para las convocatorias de septiembre y las extraordinarias, se podrá tener derecho a la puntuación extra por los guiones de prácticas, siempre que hayan sido entregados en las condiciones exigidas para ello durante la correspondiente convocatoria de junio.

8. BIBLIOGRAFÍA 8.1 GENERAL

• George Colouris, Jean Dollimore, Tim Kindberg. Sistemas distribuidos: Conceptos y Diseño. Tercera edición. Addison Wesley, 2001.

• Andrew S. Tanembaum. Sistemas Operativos Distribuidos. Primier edición. Prentice Hall, 1996.

• Fernando Pérez-Costoya, Jesú Carretero-Pérez y Félix García-Carballeira. Problemas de Sistemas Operativos. De la base al diseño. Segunda edición. Mc Graw Hill, 2003.

• Gerald Brose, Andreas Vogel, Keith Duddy. Java Programming with CORBA: Advanced Techniques for Building Distributed Applications. Tercera edición. John Wiley & sons. 2001.

8.2 ESPECÍFICA (con remisiones concretas, en lo posible)

• Distributed Systems: Concepts and Design. Quinta edición. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair. Pearson, 2011.

• Distributed Systems: Design and Algorithms. Serge Haddad, Fabrice Kordon, Laurent Pautet, Laure Petrucci. Wiley, 2011.

• Distributed Systems Architecture: A Middleware Approach. Arno Puder, Kay Römer, Frank Pilhofer. Morgan Kaufmann, 2006.

• Distributed Operating Systems. P.K. Sinha. IEEE Computer Society Press, 1997.

• Distributed Computing: Fundamentals, Simulations, and Advanced Topics. Hagit Attiya, Jennifer Welch. Segunda edición. Wiley-Interscience, 2004.

Figure

Updating...

References

Related subjects :