Tarea 4 Solución a los 3 problemas clásicos de sincronización de procesos. Nombre del estudiante Nombre del Curso Plataformas operativas de tecnologías de información Licenciatura/TSU Instrucciones Indicaciones: Señala, para cada problema, en qué momentos se crea la exclusión mutua, describiendo sus regiones críticas. Realiza el planteamiento de los 3 problemas, mediante mapas mentales y pseudocódigo, posteriormente realiza la solución a dichas problemáticas mediante un algoritmo (no utilices lenguaje de programación). 1.-El problema de la cena de los filósofos En 1965 Dijkstra planteó y resolvió un problema de sincronización llamado el problema de la cena de los filósofos, que se puede enunciar como sigue. Cinco filósofos se sientan a la mesa, cada uno con un plato de spaghetti. El spaghetti es tan escurridizo que un filósofo necesita dos tenedores para comerlo. Entre cada dos platos hay un tenedor. La vida de un filósofo consta de periodos alternos de comer y pensar. Cuando un filósofo tiene hambre, intenta obtener un tenedor para su mano derecha, y otro para su mano izquierda, cogiendo uno a la vez y en cualquier orden. Si logra obtener los dos tenedores, come un rato y después deja los tenedores y continúa pensando. La pregunta clave es: ¿puede el lector escribir un programa para cada filósofo que permita comer equitativamente a los filósofos y no se interbloquee? 2.-El problema de los lectores y los escritores El problema de la cena de los filósofos es útil para modelar procesos que compiten por el acceso exclusivo a un número limitado de recursos, como una unidad de cinta u otro dispositivo de E/S. Otro problema famoso es el de los lectores y escritores (Courtois et al., 1971), que modela el acceso a una base de datos. Supóngase una base de datos, con muchos procesos que compiten por leer y escribir en ella. Se puede permitir que varios procesos lean de la base de datos al mismo tiempo, pero si uno de los procesos está escribiendo (es decir, modificando) la base de datos, ninguno de los demás debería tener acceso a ésta, ni siquiera los lectores. La pregunta es ¿cómo programaría los lectores y escritores? 3.-Problema de la barbería En una barbería hay un barbero, N sillas donde esperan los clientes y la silla del barbero. Si no hay clientes que atender, el barbero se sienta el la silla del barbero y se duerme. Si llega un cliente y se encuentra al barbero dormido, lo despierta y el barbero le atiende Si llega un cliente mientras el barbero ya esta atendiendo a otro se sienta a esperar en una de las sillas Si llega un cliente, el barbero esta ocupado y todas las sillas están ocupadas se marcha sin ser atendido.