Next: Aparcamiento (SOLUCIÓN) Up: No Title Previous: No Title

# Aparcamiento

El esquema de la figura corresponde a un aparcamiento gratuito con capacidad para N coches, cuyo acceso se realiza a través de dos barreras automáticas de entrada y dos de salida.

Se trata de desarrollar totalmente un programa en Cc-Modula, bien basado en monitores o bien en paso de mensajes, que gestione el acceso al aparcamiento con las siguientes condiciones:

- Las 4 barreras deben poder funcionar simultáneamente.
- Sólo se permitirá la entrada de coches si hay plazas libres.
- Si el aparcamiento se llena, y hay coches esperando en las dos entradas, se irá dando paso alternativamente a un coche de cada entrada, a medida que vaya quedando sitio libre.

Para la operación de las barreras, tanto de entrada como de salida, se supone que existe ya desarrollado un módulo externo "Barrera" con dos procedimientos reentrantes que pueden ser llamados por varios procesos a la vez:

- `EsperarLlegada(i)`
- `DarPaso(i)`

El primero hace que el proceso que lo invoca espere hasta que haya un coche situado delante de la barrera i. El segundo provoca que se abra la barrera i, y que se espere hasta que el coche haya pasado y la barrera se cierre.

El desarrollo del programa debe incluir el diagrama de procesos, y las tablas de bloqueos y desbloqueos, en su caso.

NOTA: Se trata de desarrollar el programa real de control, no de simular el sistema. No existirán, por tanto, procesos dedicados a simular el comportamiento de los coches. La interacción del programa de control con su entorno se realiza exclusivamente mediante los procedimientos `EsperarLlegada` y `DarPaso`.

- Aparcamiento (SOLUCIÓN)
- Solucion para más de 2 puertas