1.-       Problema del Aseo Mixto. Ante la carencia de aseos en el Edificio de Informática, el administrador ha decidido que los pocos aseos (que funcionan) sean de uso mixto: pueden entrar tanto hombres como mujeres, pero con la condición de que simultánemanete solo pueda haber personas de un único sexo. Implemente la gestión de uno de estos aseos. Cada persona estará representada por una tarea.

2.-       Un restaurante tiene tres salas cada una con un conjunto de mesas con distintas capacidades. Debido a la normativa gubernamental no pueden mezclar fumadores y no fumadores.

Así, una vez que se ha asignado una sala a fumadores (no fumadores), no pasarán a ella no fumadores (respectivamente, fumadores), salvo que la sala quede libre. Para que pueda darse servicio a todos, se establece que no puede haber más de dos salas dedicadas bien a fumadores, o bien a no fumadores.

El mecanismo de asignación de las mesas es el siguiente. Cuando un grupo de clientes llega al restaurante indica al maître si son fumadores o no fumadores, y el número de componentes del grupo (todo el grupo se clasifica como fumador o no fumador). Los grupos se entienden indivisibles, esto es, comerán juntos a la misma mesa. Así, si existe una mesa libre que pueda albergarlos a todos se les asigna; en otro caso, esperarán en una sala de espera que ha habilitado ex-profeso el restaurante a que se les llame al quedar libre una mesa. Ahora bien, no esperarán eternamente, y si transcurre un tiempo determinado y no han sido llamados se marchan del restaurante.

Diseñe un programa concurrente que simule el sistema, supuesto que se pretende maximizar el número de clientes atendidos.

3.-       Aeropuerto. El aeropuerto de Chinchilla de los Montes es famoso entre los pilotos por la buena organización de su torre de control. Corre el rumor de que el sistema de gestión de pistas fue programado por un alumno de PC.

El problema le fue planteado en los siguientes términos: un conjunto de aviones solicitan permiso para despegar o para aterrizar (para simplificar el problema, supongamos que hay D de los primeros, A de los segundos y que realizan todo el proceso de despegue o aterrizaje dentro de un bucle infinito). A continuación, esperan permiso de la torre para usar una pista, decidida por ésta, y una vez obtenido, proceden a la maniobra. Cuando finaliza la misma, lo comunican a la torre.

El aeropuerto dispone de dos pistas que pueden utilizarse indistintamente para despegue o aterrizaje con las siguientes restricciones: si una pista está siendo utilizada para despegue, puede haber un máximo de tres aviones realizando simultáneamente tal maniobra (forman una fila en la cabecera de la pista); si se usa para aterrizaje, sólo habrá un avión simultáneamente realizando la maniobra en dicha pista. Adicionalmente, si hay aviones esperando para aterrizar se les dará prioridad frente a los despegues. En concreto, se congelarán nuevos permisos de despegue en la pista menos ocupada para que quede libre lo antes posible y se pueda aterrizar en ella. Los permisos para despegue se concederán por orden estricto de solicitud e igual criterio se seguirá con los de aterrizaje.

Diseñe un programa concurrente que satisfaga estas restricciones, sin bloqueos ni inanición, y que sea al menos tan bueno como el que dio fama al aeropuerto de Chinchilla.

4.-       Una sociedad de pintores trabaja de la forma siguiente:

a)   Cada cuadro a pintar requiere un bote de una serie de colores.

b)  Cada pintor ha de realizar una serie de cuadros.

c)   La sociedad cuenta con un determinado número de botes de cada color que se rellenan al terminarse cada obra, quedando por tanto a disposición de otros autores.

d)  Cada cuadro precisa una determinada cantidad de tiempo.

Se pide la simulación del sistema en lo esencial, estudiando la cuestión del deadlock y la eficiencia de la solución.

5.-      El Ascensor.

El problema del ascensor consiste en simular el comportamiento de un ascensor convencional. En nuestro problema en concreto, suponemos que se dará servicio a un bloque de pisos con cuatro plantas y una planta baja.

En este problema van a intervenir dos clases de procesos concurrentes:

Ø     Sujetos: Son las personas que van pasear por cada piso y van a utilizar el ascensor para llegar al piso deseado. El comportamiento de dichos sujetos será el de caminar por su piso, llamar al ascensor, montarse en él y una vez que lleguen al piso de destino dar una vuelta por dicho piso y volver a llamar al ascensor para ir al piso siguiente.

Ø     Ascensor: Es el proceso principal del problema. Su funcionamiento será básicamente el de esperar a que le lleguen las peticiones de los sujetos que esperan. Una vez que le lleguen peticiones deberá seguir una lógica concreta para atender cada una de esas peticiones.

Discútanse las características de las soluciones propuestas.

6.-      Don Quijote y Sancho cabalgan de nuevo…

Don Quijote y Sancho Panza, resueltos como están a buscar nuevas aventuras para desfacer entuertos, han dejado al viajero a la entrada de la cueva, por la que dice salió a este mundo, para regresar al suyo.

Ya se encuentran dispuestos. Don Quijote, con la ayuda de su fiel escudero, tendrá que:

a)     Enfrentarse en buena liz a otros caballeros andantes. En realidad, todos los caballeros a los que se enfrentará son conocidos del cura, el ama y el bachiller Sansón Carrasco, que han accedido a enfrentarse a don Quijote para, que una vez vencido, imponerle que vuelva a su casa. Si los vence don Quijote, hará prometer al vencido que irá a rendir pleitesía a su señora Dulcinea.

b)     Bregar con malandrines de los que pueblan los caminos, y les salen al paso. En realidad, están apostados en ciertos lugares, y asaltan a los “incautos” que por allí pasan. Unas veces don Quijote y Sancho los vencen, y otras terminan apaleados. Aunque si los bandidos con quien la emprenden es con Sancho, don Quijote no suele intervenir, porque está escrito en los libros de caballerías que un caballero debe evitar enfrentarse a gente llana y soez, por la desigual desventaja que tienen con él, ya que no han sido adiestrados en el arte de las armas.  Enfrentarse a ellos es tarea del escudero. En este caso, Sancho siempre termina apaleado. Supóngase que sólo atacan a don Quijote y a Sancho.

c)     Enfrentarse a gigantes, dragones y cualquier otro monstruo de los que tienen atemorizados a la gente humilde.

d)     Rescatar doncellas.

e)     Liberar presos. En este caso, alguna que otra vez, los presos, una vez liberados, atacan a don Quijote y a Sancho. Cuando esto ocurre o salen corriendo o salen cobrados.

Otras consideraciones:

-       Algunas aventuras las viven en las ventas o castillos en los que se alojan.

-       Cada aventura les supone un esfuerzo dado, tanto en fuerzas como en tiempo, con la excepción de aquellas que viven en las ventas o castillos en que se alojan, ya que reponen fuerzas con las viandas y el vino del ventero, o del anfitrión.

-       Se alojan en ventas para reponer fuerzas.

-       Don Quijote y Sancho, cuando pasen por una venta, se detendrán en ella a reponer fuerzas, salvo que vengan de otra y no hayan vivido ninguna aventura posterior.

-       Siempre les guía el desfacer los entuertos que en su camino encuentren. Y lo hacen con la mejor de las voluntades, aunque alguna que otra vez deben esquivar las piedras de algunos de los que han salvado de su suerte, y no querían ser salvados.

-       Se dispone de un mapa representado como un grafo dirigido acíclico, en el que tendremos el coste en tiempo y esfuerzo que les lleva a nuestros hombres desplazarse de un lugar a otro. Cada nodo del grafo representará una venta, un castillo, o un lugar en el que se vive una aventura. También disponemos del tiempo y esfuerzo que les lleva cada aventura. En el mismo tendremos los peligros que los acechan, de los que ni don Quijote ni Sancho tendrán constancia hasta que lleguen al lugar y se les cuente el problema o se vean envueltos en él.

-       Consideraremos que en el grafo hay un nodo final, llegado al cual, don Quijote da por finalizada su salida en busca de aventuras y se produce el regreso a casa. Puede suponerse que este nodo corresponde al lugar de La Mancha…

-       Cuando llegan a un lugar y se trata de una aventura que ellos deben emprender, se enteran del problema e intentan resolverlo, es decir, primero se informan y luego toman una decisión.

-       Los malandrines nunca avisan. Esto es, si don Quijote y Sancho pasan por un lugar y hay asaltadores de caminos, son atacados por éstos sin previo aviso, y tratarán de defenderse según lo dicho más arriba.

-       Cuando puedan tomar varios caminos tomarán uno al azar.

-       Los caballeros andantes se pueden clasificar en:

i)     aquellos que se mueven por los caminos con la esperanza de dar con don Quijote y retarle; y,

ii)    aquellos otros que permanecen en un lugar con la esperana de que don Quijote pase por allí para retarle.

-       El grafo que utilizan los caballeros andantes que viajan por los caminos es el mismo que el que recorren don Quijote y Sancho, pero no es dirigido, y los caballeros lo recorren de forma aleatoria, desplazándose a un lugar adyacente, o bien, quedándose en el que se encuentran, hasta que se dan con don Quijote. Una vez que se enfrenten a don Quijote, venzan o sean derrotados, ya no seguirán desplazándose, sino que regresarán a su casa.

-       Aunque en un lugar haya dos caballeros andantes de los que buscan a don Quijote, éste sólo se enfrentará a uno de ellos.

Diseñe un programa concurrente que simule el sistema.

 

 

OBSERVACIONES:

Problema 1: Todas Herramientas

Problemas 2 y 3: Java / Ada: Tipos Protegidos y Citas

Resto: Java (2) / Ada: Tipos Protegidos (2) y Citas (2).