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
[email protected]