trabajo de sistemas
Programación concurrente y Distribuída
Curso 2011-12
Miguel Telleria, Laura Barros, J.M. Drake
telleriam AT unican.es
Computadores y Tiempo Real
http://www.ctr.unican.es
Computadores y Tiempo Real
Universidad de Cantabria
Programación concurrente y distribuída
Cena de filosofos y sincronizacion java
Objetivos
●
Presentaros laaplicación de “filósofos chinos” con UML
●
Practicar lo visto en sincronismo de java
●
Prepararos para la practica 2 que es muy similar
14 Oct 2011
Miguel Telleria de Esteban telleriam AT unican.es)
Página 2 de 34
Computadores y Tiempo Real
Universidad de Cantabria
Programación concurrente y distribuída
Cena de filosofos y sincronizacion java
Contenido
●Presentación de los filósofos chinos
●
Especificación UML
●
Paralelización
●
Sincronización de espera
●
Sincronización bloqueante
14 Oct 2011
Miguel Telleria de Esteban telleriam AT unican.es)
Página 3 de 34
Presentación de los filósofos chinos
Computadores y Tiempo Real
Universidad de Cantabria
Programación concurrente y distribuída
Cena de filosofos ysincronizacion java
Los filósofos chinos
●
4 filósofos
●
●
4 palillos
●
●
1 entre cada 2 filósofos
Gestor de sillas:
●
●
Rojo, azul, amarillo, verde
Numero de sillas configurable
Ciclo de cada filosofo:
–
–
esperando silla
–
esperando palillo derecho
–
esperando palillo izquierdo
–
14 Oct 2011
Pensando
comiendo
Miguel Telleria deEsteban telleriam AT unican.es)
Página 5 de 34
Computadores y Tiempo Real
Universidad de Cantabria
Programación concurrente y distribuída
Cena de filosofos y sincronizacion java
Vamos a verla funcionar
14 Oct 2011
Miguel Telleria de Esteban telleriam AT unican.es)
Página 6 de 34
Especificación UML
Computadores y Tiempo Real
Universidad de Cantabria
Programaciónconcurrente y distribuída
Cena de filosofos y sincronizacion java
Diagrama de clases
14 Oct 2011
Miguel Telleria de Esteban telleriam AT unican.es)
Página 8 de 34
Computadores y Tiempo Real
Universidad de Cantabria
Programación concurrente y distribuída
Cena de filosofos y sincronizacion java
Misiones
●
Comedor
●
●
●
Datos globales
GUI
●
Objetosactivos
Gestor de sillas
●
14 Oct 2011
Modo polling: Devuelve falso
si el palillo está cogido
Modo espera: Bloquea hasta
que el palillo esté libre
Prueba secuencial
●
Filosofo
●
●
●
Determina si da una silla o no
●
●
●
Punto de acceso para el resto
de las clases
●
Palillo
Instancia el sistema
●
Crea los threads
●
Termina la ejecuciónMantiene la cantidad de sillas
libres
Miguel Telleria de Esteban telleriam AT unican.es)
Página 9 de 34
Computadores y Tiempo Real
Universidad de Cantabria
Programación concurrente y distribuída
Cena de filosofos y sincronizacion java
Filosofo
●
Objeto activo con su ciclo de vida
●
Decisión de diseño:
●
14 Oct 2011
Aunque tiene asociados
los palillos,invoca los
métodos coge() y deja()
a través del comedor
Miguel Telleria de Esteban telleriam AT unican.es)
Página 10 de 34
Computadores y Tiempo Real
Universidad de Cantabria
Programación concurrente y distribuída
Cena de filosofos y sincronizacion java
Comedor
●
●
Da acceso al resto de
elementos
Elección de diseño:
●
●
14 Oct 2011
La clase Palillo devuelve siel palillo está
libre
El Gestor de Sillas simplemente informa
es el comedor el que devuelve si sí o si
no.
Miguel Telleria de Esteban telleriam AT unican.es)
Página 11 de 34
Computadores y Tiempo Real
Universidad de Cantabria
Programación concurrente y distribuída
Cena de filosofos y sincronizacion java
Palillo
●
“Se deja” coger o no:
●
●
14 Oct 2011
Es...
Regístrate para leer el documento completo.