Next:
Curso
Up:
Concurrencia y Distribución
Previous:
Concurrencia y Distribución
Índice General
Curso
Objetivos
Sobre este documento
Introducción
Aclaración
Procesos
Aplicación
Indicadores
Recursos
Ejemplos
Implementación
Crítica
Repaso: programación secuencial
Primer algoritmo concurrente
Arquitecturas que soportan la concurrencia
Comunicación y sincronización
Abstracción
Instrucciones atómicas
Funcionamiento correcto
Regiones críticas
Exclusión mutua a nivel bajo
Algoritmo de Dekker
Primer intento
Segundo intento
Tercer intento
Cuarto intento
Quinto intento
Algoritmo de la panadería
Algoritmo de Peterson
Ayuda con hardware
Test-and-set
multi-prefix
Propriedades de programas concurrentes
Seguridad y vivacidad
Justicia entre procesos
Exclusión mutua a nivel alto
Semáforos
Regiones críticas
Regiones críticas condicionales
Monitores
Problema del productor y consumidor
Bloqueo
Detectar y actuar
Evitar
Prevenir
Patrones de diseño para aplicaciones concurrentes
Reactor
Proactor
Ficha de terminación asíncrona
Aceptor-Conector
Guardián
Interfaz segura para multi-hilos
Aviso de hecho
Objetos activos
Monitores
Mitad-síncrono, mitad asíncrono
Líder-y-Seguidores
Java
Hilos de Java
Repaso de Java
Clases
Modificadores de clases
Comentarios
Tipos simples
Modificadores de miembros
Estructuras de control
Operadores
Palabras reservadas
Objetos y referencias a objetos
Parámetros
Valores de retorno
Arreglos
this and super
Extender clases
Clases dentro de clases
Clases locales
La clase Object
Clonar objetos
Interfaces
Clases y paquetes
Excepciones
Paquetes
Conversión a flujos de bytes
Reflexión
Hilos
Crear un hilo
La interfaz Runnable
Sincronización
Objetos síncronos
Los monitores de Java
Java y seguridad
Atomicidad en Java
Concurrencia en memoria distribuida
Paso de mensajes
Tipos de sincronización
Identificación del otro lado
Prioridades
Terminación de programas
Detección de terminación
Tareas de programación
Bibliografía
© 2002, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática