Sistemas Concurrentes I.T. Informática de Sistemas Curso
SistemasConcurrentes 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.Características de los sistemas concurrentes 2.Especificación de la concurrencia. Lenguajes 3.Modelos de comunicación 4.Instrucciones atómicas. No determinismo 5.Propiedades de seguridad y progreso 6.Soporte de concurrencia en el s.o. o la arquitectura 7.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.Características y problemas de estos sistemas 2.Algoritmos distribuidos clásicos 3.Transacciones distribuidas 4.Tiempo y causalidad 5.Tolerancia a fallos 6.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, Estructura y Diseño de Computadores David A. Patterson, John L. Hennesy. Reverté, 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., Java 1.2 al descubierto Jamie Jaworski. Prentice Hall, Descubre Java 1.2 Mike Morgan. Prentice Hall, 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
Sistemas Concurrentes Gracias por su atención Oscar Déniz Suárez