Vous êtes sur la page 1sur 2

Programación Concurrente y Tiempo Real - Curso 2016/2017

Cuestiones y Problemas

PROGRAMACIÓN CONCURRENTE Y TIEMPO REAL Cuestiones y Problemas Curso 2016/2017

D. Vallejo / C. Villarrubia / M.A. Redondo / F.J. Villanueva / J. Ruiz Escuela Superior de Informática Universidad de Castilla-La Mancha

TEMA 3

PASO DE MENSAJES

3.1. ¿Por qué los sistemas de paso de mensajes son más adecuados para los sistemas distribuidos que los sistemas basados en el uso de memoria compartida?

3.2. Discuta las primitivas básicas de sincronización en un sistema de paso de mensajes.

3.3. ¿Cómo se puede llevar a cabo la sincronización utilizando sistemas de paso de mensajes?

3.4. Discuta las distintos tipos de direccionamiento en sistemas de paso de mensajes.

3.5. ¿A qué se refiere el concepto disciplina de cola en el ámbito de un sistema de

paso de mensajes? Discuta las principales disciplinas y las ventajas y desventajas

de cada una de ellas.

3.6. ¿Por qué no es posible utilizar las primitivas select o poll con un descriptor de cola en POSIX?

3.7.Enumere las principales primitivas POSIX para el manejo de colas de mensajes.

3.8. Discuta el concepto de problema del bloqueo en el ámbito de los sistemas de paso de mensajes y las distintas alternativas que conozca.

3.9.¿En qué consiste el esquema beeper estudiado en clase? ¿Para qué sirve?

3.10. Ventajas y desventajas de la recuperación selectiva frente a la recuperación no

selectiva.

3.11. Una variación al problema de los filósofos comensales. Sobre la definición del

problema se introduce la variación de que hay solamente cuatro palillos depositados en una bandeja. Los filósofos pueden tomar dos cualesquiera de los palillos antes de comer, si en la bandeja no quedan palillos deberán esperar. Ofrezca una solución empleando colas de mensajes que asegure la máxima concurrencia (es decir, cuando un filósofo este comiendo no deberá bloquear a los otros si todavía quedan palillos), y no produzca situaciones de inanición.

3.12. Resuelva el problema de la barbería con los siguientes supuestos: La barbería

procesará 100 clientes al día, pero la máxima capacidad de la barbería será de 20 clientes. Una vez dentro los clientes esperan de pie a que se les sirva, pero 4 pueden sentarse en un sofá. Hay tres barberos, con tres sillas de barbero, que

Programación Concurrente y Tiempo Real - Curso 2016/2017

Cuestiones y Problemas

cortan el pelo a los clientes. Cuando terminan, cada barbero puede aceptar el pago del cliente, pero solo hay una caja registradora, por lo que los pagos solo pueden aceptarse uno a uno. Los barberos reparten su tiempo entre cortar el pelo y aceptar los pagos. La aplicación debe codificarse utilizando colas de mensajes.

3.13. El problema de los fumadores de cigarrillos. Considere un sistema con tres procesos fumadores y un proceso agente. Cada fumador está continuamente liando y fumando cigarrillos. Sin embargo, para liar un cigarrillo, el fumador necesita tres ingredientes: tabaco, papel y fósforos. Uno de los procesos fumadores tiene papel, el otro tiene el tabaco, y el tercero fósforos. El agente tiene cantidad infinita de los tres materiales. El agente coloca dos de los ingredientes sobre la mesa. El fumador que tiene el ingrediente restante lía un cigarrillo y se lo fuma avisando al agente cuando termina. Entonces, el agente coloca dos de los tres ingredientes y se repite el ciclo. Diseñe e implemente una aplicación simulando este sistema utilizando paso de mensajes.

3.14. Un restaurante de comida rápida tiene cuatro tipos de empleados: (1) los receptores de pedidos, que reciben los pedidos de los clientes; (2) los cocineros, que preparan la comida; (3) los empaquetadores, que la meten en bolsas; y (4) los cajeros, que cobran el importe y dan las bolsas de comida a los clientes. Se puede considerar a cada empleado como un proceso secuencial que se comunica con los demás. Diseñe e implemente una aplicación simulando este sistema utilizando paso de mensajes.