Next: Cintas transportadoras (SOLUCIÓN) Up: No Title Previous: No Title

# Cintas transportadoras

La nueva terminal de Barajas estará conectada con la actual mediante un par de cintas transportadoras -- una en cada sentido -- para hacer menos fatigoso el desplazamiento de los viajeros. Las cintas poseen un mecanismo de control para que estén en marcha sólo cuando se necesitan. Esto se consigue mediante unos sensores a la entrada de cada cinta que detectan la llegada de usuarios.

El criterio seguido es:

- Si una cinta está parada, debe ponerse en marcha al detectarse la presencia de un usuario.
- Si una cinta está en marcha, se para si pasa un minuto sin que llegue nadie.

Para implementar este sistema se dispone de:

- un procedimiento de acceso al sensor `EsperarSensor(N:INTEGER)` que se queda esperando hasta que un objeto es detectado por el sensor `N`,
- procedimientos de manejo del motor `Start(N:INTEGER)`, `Stop(N:INTEGER)` que ponen en marcha y detienen la cinta `N`, respectivamente, y
- un único proceso `Reloj` que cada segundo envía un mensaje a `CanalReloj`.

Esto constituye toda la interfaz de vuestro programa con el exterior. Además, resulta que si surge algún problema en el motor de una de las cintas, no está garantizado el retorno de los procedimientos `Start` y `Stop`, requiriéndose que si falla un motor al menos la otra cinta siga funcionando.

Se pide:

1. Programar en Cc-Modula un sistema de control de las cintas que cumpla estos requisitos, basado en paso de mensajes. Incluid grafo de procesos y justificación de las decisiones adoptadas.
2. ¿Qué modificaciones habría que realizar en vuestro sistema si ahora queremos que en vez de tener prefijados los sentidos de la marcha, estos sean variables? Se supone que disponemos de sensores en ambos extremos de cada cinta y el requisito adicional sería que las cintas no deben nunca desplazarse en el mismo sentido. (Limitaos al grafo de procesos y a una explicación razonada.)

- Cintas transportadoras (SOLUCIÓN)

Next: Cintas transportadoras (SOLUCIÓN) Up: No Title Previous: No Title