Sei sulla pagina 1di 2
FIUBA 75-62 Técnicas de Programación Concurrente II 2007 Trabajos para el Final Ing. Osvaldo Clúa
FIUBA 75-62 Técnicas de Programación Concurrente II 2007 Trabajos para el Final Ing. Osvaldo Clúa
FIUBA 75-62 Técnicas de Programación Concurrente II 2007 Trabajos para el Final Ing. Osvaldo Clúa

FIUBA

75-62 Técnicas de Programación Concurrente II

2007

Trabajos para el Final

Ing. Osvaldo Clúa

Trabajo Final:

Presentar programado, con una interface gráfica con los controles necesarios para ir paso a paso (el paso depende de la naturaleza del problema, pero debe permitir ver la concurrencia) usando MVC dos de los siguientes problemas (se asignan en clase). Debe presentar dos versiones de cada problema; usando elementos de concurrencia de semántica distinta.

1. Competencia. Juegan azules contra rojos en un juego de a 2. Al llegar los jugadores esperan a

un adversario, armada la pareja se espera por una cancha, se juega y a otra cosa. Lo importante es

lleva la cuenta de los puntos de la competencia.

2. Museo. Un museo tiene tres puertas. Los visitantes pueden ingresar por cualquiera de ellas y

salir por cualquiera. El museo tiene capacidad limitada. De haber cola, se habilitan las entradas para una persona en round robin.

3. Ferry. Se trata de un servicio sin horario. Cada proceso llega al ferry y añaden k unidades de

carga. Cuando la carga supera las n unidades el ferry parte y todo proceso que llegue a continuación espera la vuelta.

4. Ascensores. Se trata de programar el comportamiento de un ascensor inteligente, con llamadas

desde los pisos y requerimientos internos. El ascensor tiene una capacidad limitada

5. El puente: Un puente de una sola mano tiene extremos norte y sur por donde arriban vehículos

en ambas direcciones. Los vehículos que van en la misma dirección puede cruzar el puente juntos, pero no simultáneamente con otro que viene en la dirección opuesta. Modele los vehículos como procesos y programe este comportamiento, sin dar prioridad a ninguna dirección (aunque pueda darse que un tipo de autos no cruce nunca por tráfico continuo).

6. Agua Átomos de Hidrógeno y Oxígeno vagan por el espacio (es decir, duermen un tiempo al

azar) buscándose mutuamente para formar Agua.

7. Montaña Rusa En una montaña rusa hay n pasajeros y un carrito de capacidad C (C<n). Cuando el carro se llena, parte.

7.1.Los pasajeros deben invocar Subir(

)

y Bajar(

-1-

)

FIUBA Técnicas de programación Concurrentes 2

2007

Trabajos para la cursada

7.2.El carro debe invocar Cargar(

)

y Descargar(

).

7.3.El carro sólo parte con n pasajeros que pueden subir o bajar solo cunado el carro carga o descarga.

8. Un bar muy especial atiende grupos de a n comensales. Si al llegar hay lugar, un comensal puede sentarse. Si no hay lugar, debe esperar en cola a que todo el grupo termine. Si hay lugar pero hay gente en la cola (alguno del grupo se fue, pero el grupo no terminó), debe hacer la cola.

Estudio para el Final

Además de los temas desarrollados en las guías, Deberán conocerse (y poder hacer ejemplos) los siguientes elementos de Java:

1. Futures, Callables y relacionados.

2. CompletionService y relacionados.

3. CountDownLatch y relacionados.

4. Exchanger y relacionados.

5. CyclicBarrier y relacionados.

6. ScheduledExecutorService y relacionados.

-2-