Download Objetivos
Document related concepts
no text concepts found
Transcript
Sistemas Concurrentes I.T. Informática de Sistemas Curso 2002-2003 Objetivos de formación • Adquirir un conocimiento básico sobre: naturaleza de los sistemas concurrentes arquitecturas paralelas programación concurrente sistemas distribuidos • Adquirir experiencia en programación concurrente usando Ada o Java SistemasConcurrentes Vale, ¿y qué es todo eso? • • • • • ¿Concurrencia? ¿Sistema concurrente? ¿Arquitecturas paralelas? ¿Programación concurrente? ¿Sistema distribuido? SistemasConcurrentes Concurrencia Existencia simultánea de varios flujos de ejecución SistemasConcurrentes ¿Por qué Ada y Java? • Son lenguajes que incorporan facilidades para la programación concurrente: tareas o hilos concurrentes mecanismos de sincronización entre procesos objetos protegidos (Ada) o sincronizados (Java) tiempo real y prioridades (Ada) mecanismos de comunicación entre objetos remotos (Anexo E, RMI) SistemasConcurrentes Objetivos del profesor • Enseñar todos estos conceptos básicos • Aprender Java de sus alumnos SistemasConcurrentes ¿Qué conocimientos previos necesito? • Conocimientos generales sobre: estructura de computadores sistemas operativos lenguajes de programación • Experiencia en programación con lenguajes orientados a objetos SistemasConcurrentes Contenidos de la asignatura 1. Fundamentos de la concurrencia (3S) 2. Arquitecturas paralelas (1S) 3. Sincronización y comunicación con memoria compartida (2S) 4. Sincronización y comunicación mediante paso de mensajes (2S) 5. Sistemas distribuidos (4S) 6. Conceptos avanzados y proyectos (3S) SistemasConcurrentes Temario detallado (1) 1. Fundamentos de la concurrencia 1. 2. 3. 4. 5. 6. 7. Características de los sistemas concurrentes Especificación de la concurrencia. Lenguajes Modelos de comunicación Instrucciones atómicas. No determinismo Propiedades de seguridad y progreso Soporte de concurrencia en el s.o. o la arquitectura Concurrencia en Ada/Java SistemasConcurrentes Temario detallado (2) 2. Arquitecturas paralelas 1. Multiprocesadores de memoria compartida 2. Multiprocesadores de memoria distribuida SistemasConcurrentes Temario detallado (3) 2. Sincronización y comunicación con memoria compartida 1. El problema de la sección crítica 2. Semáforos 3. Regiones críticas y monitores 4. Sincronización y comunicación con paso de mensajes 1. Comunicación asíncrona. Canales. 2. Comunicación síncrona. Espera selectiva. Guardas. 3. Invocación remota. El modelo de Ada. SistemasConcurrentes Temario detallado (y 4) 5. Sistemas distribuidos 1. 2. 3. 4. 5. 6. Características y problemas de estos sistemas Algoritmos distribuidos clásicos Transacciones distribuidas Tiempo y causalidad Tolerancia a fallos Componentes distribuidos: sistemas de archivos, gestión de procesos, comunicaciones, etc. SistemasConcurrentes Método de docencia • 4 horas semanales en aula Clases teóricas Exposiciones de los estudiantes • 2 horas semanales de laboratorio Ejercicios en Ada/Java Realización de los trabajos prácticos SistemasConcurrentes Actividades prácticas • Equipos de dos o tres personas • Prácticas de programación concurrente Ada 95 y/o Java Laboratorio Micros 2 Linux o Win32 • Proyectos de investigación/programación sobre tópicos avanzados se expondrán en clase SistemasConcurrentes Bibliografía básica (teoría) • Principles of Concurrent and Distributed Programming Moshe Ben-Ari. Prentice-Hall, 1990. • Estructura y Diseño de Computadores David A. Patterson, John L. Hennesy. Reverté, 2000. • Sistemas Operativos Distribuidos Andrew S. Tanenbaum. Prentice Hall, 1995. SistemasConcurrentes Bibliografía básica (prácticas) • Concurrency in Ada Alan Burns, Andy Wellings. Cambridge Univ., 1998. • Java 1.2 al descubierto Jamie Jaworski. Prentice Hall, 1999. • Descubre Java 1.2 Mike Morgan. Prentice Hall, 1999. • Información de Java en la red java.sun.com SistemasConcurrentes Evaluación • La calificación final se obtiene a partir de: Trabajos de curso (40%) aplicación concurrente en Ada95 o Java trabajo de investigación/programación Examen global (50%) Participación activa (10%) • Para aprobar hay que obtener más de un 40% de la nota máxima en cada actividad. • Las calificaciones se guardan en todas las convocatorias del curso. SistemasConcurrentes Material didáctico • • • • • Libros en las bibliotecas de la ULPGC Recursos en la Red + página web Compilador de Ada GNAT 3.xx Entorno de desarrollo JDK 1.2 Transparencias y apuntes SistemasConcurrentes No olvidar • Entregar una ficha al profesor SistemasConcurrentes Sistemas Concurrentes Gracias por su atención Oscar Déniz Suárez odeniz@dis.ulpgc.es