Manual 3 de Prácticas de laboratorio

BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA
FACULTAD DE CIENCIAS DE LA COMPUTACION
PROGRAMACION CONCURRENTE Y PARALELA
PRIMAVERA 2015
MANUAL III DE PRACTICAS DE LABORATORIO
Dr. Mario Rossainz López
H. Puebla de Z. a 17 de marzo de 2015
1. Implemente la solución concurrente en CTJ del siguiente problema: Un hospital con
200 habitaciones, desea construir una aplicación que le permita monitorizar las
constantes vitales de los pacientes. Para ello dispone de un sistema como el que se
muestra en la siguiente figura.
Cada paciente está conectado a una computadora que toma cada 500 ms la temperatura,
las pulsaciones y la presión arterial de dicho paciente. Se dispone de una computadora
que hace de monitor y que visualiza las constantes vitales de todos los pacientes. El
funcionamiento de la aplicación es el siguiente: cuando llega un paciente, la computadora
a la que se conecta el paciente envía un mensaje al monitor indicándole que va a
comenzar el proceso de monitorización. Cada 500 ms envía al monitor las constantes
vitales del paciente. Cuando el paciente abandona la habitación, la computadora a la que
estaba conectada envía un mensaje al monitor indicándole que deja de enviarle datos.
Diseñe la aplicación considerando un sistema basado en colas de mensajes.
2. Hay tres personas sentadas alrededor de una mesa. Cada una tiene una pila de papel
impreso. El comportamiento de cada persona consiste en colocar un papel en la mesa
y esperar a que una cuarta persona los recoja (una vez que los 3 papeles están puestos
en la mesa) y los engrape, volviéndose a repetir el procedimiento. Implemente su
solución concurrente en CTJ.
3. Hacer un proceso que reciba caracteres en paralelo por sus dos canales de entrada
(izq1 e izq2) y por cada par de asteriscos “**” que entren (uno en cada canal), dé cómo
salida el carácter “#” por su canal derecho de salida. En cualquier otro caso el proceso
enviará el caracter “$” por su canal derecho como salida. Implemente su solución
concurrente en CTJ.
4. Escribe un programa concurrente en CTJ (sólo el programa principal que genera la
composición de procesos) que simule un sistema digital formado de compuertas AND,
OR y NOT conectadas entre sí tal como lo muestra la figura siguiente:
Test1
AND
NOT
Output 1
Test2
Test3
OR
Output 2
5. Resuelva El Problema de los Amigos Comelones con paso de mensajes usando CTJ: Un
grupo de N personas se van a vivir juntas a una misma casa, como si fueran hermanos,
junto a un cocinero. Todos ellos, salvo el cocinero, comen de una cacerola común que
tiene capacidad para M raciones de guiso, con las siguientes restricciones:

Cuando una persona quiere comer, se sirve él mismo directamente de la
cacerola, salvo que esté vacía. En ese caso, el sujeto debe despertar al cocinero
y esperar a que éste haya rellenado el caldero de nuevo.
 Antes de dejar comer a otro hermano, él debe terminar de comer su ración
completa.
 Después de comer, los hermanos deben continuar con las tareas de limpieza
del hogar común, hasta que les vuelva a entrar el apetito.
El cocinero, por su parte, regresa a dormir en cuanto a rellenado el caldero.
FECHA DE ENTREGA
22 de abril de 2015
FORMA DE ENTREGA
Código Fuente compilado, sin errores sintácticos y código ejecutable en un CD rotulado
con su nombre y matrícula. Cada programa deberá estar almacenado en una carpeta
independiente.
NOTA
Podrán hacer y entregar los ejercicios de este manual en equipos de a lo más 5 personas