18.01.2015 Views

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

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2 Programación <strong>Concurrente</strong><br />

incluye la pasta en la caja; en otro caso, un operario debe retirar la caja que se estaba llenando y<br />

sustituirla por otra vacía.<br />

El objetivo consiste en llenar cada caja lo más posible. Esto puede ser conseguido por cualquiera<br />

de los robots empaquetadores que intentan depositar simultáneamente alguna pasta. Se nos<br />

asegura que no puede haber interferencias físicas entre brazos robot que intentan soltar pastas al<br />

mismo tiempo en la caja. Se pretende que haya la máxima concurrencia posible entre los brazos<br />

robot, es decir, que varios de ellos puedan retirar simultáneamente pastas de la cinta transportadora<br />

y, también simultáneamente, dejarlas en la caja. Hay que evitar, por otro lado, que se sobrepase<br />

el peso máximo admitido por la caja y que se intenten dejar pastas cuando no hay caja o cuando<br />

se está reponiendo.<br />

Para desarrollar el software de control se dispone de un paquete en Ada –ya programado–<br />

que proporciona, entre otros, los siguientes procedimientos de acceso a los robots y dispositivos<br />

mecánicos (se ignoran los hornos y la cinta; no es asunto del software de control):<br />

with Basicos;<br />

use Basicos;<br />

package Cadena is<br />

---------------------------------------------------------------------<br />

N_EMPAQUETADORES : constant Positive := 10;<br />

---------------------------------------------------------------------<br />

-- PESO_MAXIMO : constant Peso;<br />

-- function "=" (A, B : Peso) return Boolean;<br />

-- function "

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!