Programación Concurrente Prácticas 1, 2 y 3 - Profe Saul
Programación Concurrente Prácticas 1, 2 y 3 - Profe Saul
Programación Concurrente Prácticas 1, 2 y 3 - Profe Saul
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Curso 2006/2007 — Convocatoria de Febrero 5<br />
Una solucion que maximiza el peso en lo posible es esperar a todos los robots en una barrera,<br />
calcular qué combinación de pastas de entre las disponibles daría un mejor resultado, elegir la<br />
mejor de las pastas, depositar sólo esa pasta repetir el ciclo. Sin embargo esta solución tiene una<br />
concurrencia muy baja, ya que tiende a que en cada momento sólo un robot acceda a la caja y al<br />
mostrador.<br />
El conteo de número de brazos robot accediendo a la caja es necesario para implementar una<br />
exclusión parcial (como en los problemas de Lectores y Escritores) que impida que se inicie una<br />
reposición de la caja mientras un brazo robot accede a la misma. Ello podría suceder si mientras<br />
se deposita (físicamente) una pasta, otro robot excede el peso máximo y pide un cambio de caja<br />
que se inicia mientras el anterior está aún dejando la pasta. Por otra parte, se permite que varios<br />
brazos robots dejen simultáneamente pastas en la caja.<br />
3. Prácticas<br />
3.1. Primera práctica<br />
La entrega de la primera práctica constará de una implementación del recurso en Ada 95 usando<br />
objetos protegidos, basada en la especificación dada en el enunciado. La implementación a realizar<br />
debe estar contenida en un fichero llamado cajas de pastas.adb (ver el apartado 4).<br />
3.2. Segunda práctica<br />
La entrega de la segunda práctica constará de una implementación del recurso compartido en Ada<br />
95 mediante rendez-vous y/o paso de mensajes y basada en la especificación entregada en el enunciado.<br />
La implementación deberá estar contenida en un fichero llamado cajas de pastas.adb<br />
(ver el apartado 4).<br />
3.3. Tercera práctica<br />
Supongamos una variación del problema original en la que los robots empaquetadores no<br />
registran el peso de las pastas, sino que la plataforma en que está la caja tiene una balanza y en el<br />
paquete Cadena se dispone de una operación<br />
Peso_Balanza(P: out Peso)<br />
que es no bloqueante y de ejecución prácticamente inmediata.<br />
La entrega de la tercera práctica constará de una memoria en papel con un nuevo diseño que<br />
debe cumplir en lo posible los mismos requisitos que se tenían para el problema inicial. Puede<br />
modificarse todo lo que sea necesario, tanto en el diseño del recurso como en el código de las<br />
tareas. Debe entregarse el grafo de procesos y recursos (si ha variado), la especificación formal<br />
del recurso necesario para la sincronización de los procesos y el código de los procesos en función<br />
de la interfaz del recurso especificado.