Next: Cintas transportadoras (SOLUCIÓN)
Up: No Title
Previous: No Title
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:
- 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.
- ¿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.)
Next: Cintas transportadoras (SOLUCIÓN)
Up: No Title
Previous: No Title
Angel Herranz Nieva
Thu Oct 31 20:17:26 MET 1996