0 оценок0% нашли этот документ полезным (0 голосов)
282 просмотров3 страницы
Este documento explora varias soluciones propuestas para el problema clásico de los filósofos comensales. Inicialmente presenta la solución de Nesterenko y Arora que usa un sistema de prioridades entre procesos para evitar bloqueos mutuos incluso ante errores maliciosos. Luego describe cómo Attiya, Kogan y Welch extendieron el problema a redes móviles ad hoc, proponiendo algoritmos que minimizan el tiempo de respuesta o daño de fallas locales. Finalmente, analiza cinco algoritmos de auto-estabilización para
Este documento explora varias soluciones propuestas para el problema clásico de los filósofos comensales. Inicialmente presenta la solución de Nesterenko y Arora que usa un sistema de prioridades entre procesos para evitar bloqueos mutuos incluso ante errores maliciosos. Luego describe cómo Attiya, Kogan y Welch extendieron el problema a redes móviles ad hoc, proponiendo algoritmos que minimizan el tiempo de respuesta o daño de fallas locales. Finalmente, analiza cinco algoritmos de auto-estabilización para
Este documento explora varias soluciones propuestas para el problema clásico de los filósofos comensales. Inicialmente presenta la solución de Nesterenko y Arora que usa un sistema de prioridades entre procesos para evitar bloqueos mutuos incluso ante errores maliciosos. Luego describe cómo Attiya, Kogan y Welch extendieron el problema a redes móviles ad hoc, proponiendo algoritmos que minimizan el tiempo de respuesta o daño de fallas locales. Finalmente, analiza cinco algoritmos de auto-estabilización para
Solución al problema de los filósofos comensales y
sus aplicaciones. Andrés A. Garcés, José A. Muñoz, y Jorge A. Villarreal
Resumen—En este trabajo exploramos el problema de
los filósofos comensales que fue propuesto hace cinco A. Nesterenko y Arora décadas para representar el problema de sincronización al A continuación presentamos una solución para el problema momento de compartir recursos en sistemas de los filósofos comensales propuesta por Nesterenko y Arora multiprogramados. Sobre este mostramos distintas [2]. Esta solución tolera errores maliciosos. En un error soluciones propuestas en los últimos años así como sus malicioso el proceso se comporta arbitrariamente por un aplicaciones en sistemas operativos y redes de periodo de tiempo finito y después para cualquier operación de computación. forma indetectable para los otros procesos. En esta solución, la tolerancia a este problema la logramos mediante la Palabras clave—Filósofos comensales, concurrencia, combinación de estabilidad y localización del error. sincronización El problema de los filósofos comensales es definido a continuación: Un número de procesos están unidos a un I. INTRODUCCIÓN proceso vecino. Los procesos pueden estar en estado pensando, hambriento o comiendo. Una solución para el En un sistema de operativo multiprogramado, la problema satisface las siguientes condiciones: seguridad – sincronización se refiere al mecanismo que permite a dos o dos filósofos vecinos no pueden estar comiendo al tiempo en más procesos realizar acciones al mismo tiempo [1]. En este el mismo estado, y vitalidad – Cada proceso en estado tipo de sistemas, cada proceso se ejecuta asíncronamente y, en hambriento eventualmente comerá, dado que los procesos en algunos instantes, los procesos deben sincronizar sus estado comiendo no comen de forma indefinida. actividades cuando la continuación de uno depende de alguna Choy y Singh probaron que la mínima localización de tarea que debe realizar otro o un recurso que está siendo errores en para el problema de los filósofos comensales es de ocupado por el mismo. dos, por lo tanto los errores maliciosos para este problema con Los procesos compiten entre ellos por el acceso a los 𝑚 < 2 no tienen solución. En este algoritmo se soluciona el recursos o cooperan para comunicar información. Ambas problema cuando 𝑚 = 2, el cual es el óptimo. situaciones son manejadas por el sistema operativo mediante La solución se basa en un Sistema de prioridades entre los mecanismos de sincronización que permiten el acceso procesos. Se toman los procesos en forma de Nodos y entre exclusivo de forma coordinada a los recursos y a los cada arista se define una dirección. Este grafo de prioridad elementos de comunicación compartidos. define ancestros y descendientes para cada proceso. Un Cuando el recurso es no compartible se hace necesaria la proceso en estado hambriento es capaz de comer solamente comunicación entre recursos que se ejecuten en paralelo con el si sus ancestros directos no están en estado hambriento. Un fin de asignar el recurso a solo uno de los procesos, mientras bloqueo mutuo no es posible dado que el grafo es acíclico y se que los otros deben permanecer en espera hasta que finalice la garantiza que un al menos un proceso eventualmente utilización de dicho recurso por el proceso al que se le asignó. comerá. Después de comer un proceso cambia su estado para Cuando este proceso termine, el recurso será asignado a uno ser descendiente de sus vecinos. Esta operación mantiene el de los procesos en espera. Esta comunicación entre procesos grafo acíclico y asegura la vitalidad si todos los procesos se denomina Exclusión Mutua. progresan. En 1965, Edsger Dijkstra propuso el problema de los El grafo de dependencia puede formar cadenas de espera Filósofos Comensales para representar el problema en la muy largas que ponen en peligro la vitalidad si algún proceso sincronización de los procesos en los sistemas operativos. Este en espera termina inesperadamente. Para asegurar la problema se remite a que hay un número n de filósofos localizació sentados en una mesa y pasan su vida cenando y pensando. n de errores utiliza el mecanismo dinámico de límites Cada filósofo tiene un plato delante de él entre cada uno de preferente (Dynamic preemption threshold scheduling) [3], ellos hay un tenedor. Para poder comer es necesario tener dos en el cual, cuando un proceso termina inesperadamente, este tenedores (el de su izquierda y el de su derecha). Si un filósofo cede a su descendiente directo cuando hay un ancestro directo desea comer agarra un tenedor y si el otro no está disponible, en estado hambriento. se queda con el tenedor en la mano esperando hasta que La vitalidad también se puede ver comprometida si el grafo desocupen el segundo, para luego empezar a comer [1]. de dependencias contiene algún ciclo. Para garantizar la Cuando dos filósofos contiguos intentan tomar el mismo estabilización nuestro el programa rompe cualquier ciclo, para tenedor a la vez entran en una condición de carrera, la cual romper el ciclo todos los procesos tienen la distancia entre resulta en uno agarrando el tenedor y otro esperando hasta que ellos y el descendiente más lejano, un ciclo es detectado si esa lo libere. Si todos los filósofos toman el tenedor a su derecha, distancia excede el diámetro del Sistema y se procede a cortar se quedarían esperando todos eternamente a que se desocupe el ciclo de forma que el proceso que lo detectó pasa a ser el el tenedor a su izquierda y morirían de hambre, esto se descendiente de todos los vecinos [2], [3]. denomina bloqueo mutuo o deadlock. El principal problema de los filósofos comensales consiste en encontrar un algoritmo B. Attiya, Kogan y Welch. que le permita a los filósofos no morir de hambre [1]. En una red de dispositivos móviles ad hoc, es decir, colecciones de entidades computacionales o nodos que se II. SOLUCIONES comunican inalámbricamente sin la asistencia de una infraestructura fija, los nodos que se encuentra en la red deben Antes de exponer las soluciones cabe resaltar que no existe competir por los recursos compartidos en esta, en la cual ninguna solución determinística, sin interbloqueos, ningún par de nodos de la red pueden estar en su sección completamente distribuida y simétrica al problema de los crítica al mismo tiempo, además, el algoritmo debería permitir filósofos comensales [1]. que cuando un nodo desee entrar a su sección crítica pueda hacerlo. Soluciones para este problema han sido propuestas pero en el caso de redes móviles ad hoc los nodos en la red 2 pueden cambiar de posición en cualquier momento y además comensales [6]. Los algoritmos de auto-estabilización el recurso puede ser compartido por aquellos nodos que se eventualmente llegan a la correcta operación incluso si encuentren cerca geográficamente y no todos los que se empiezan en un estado arbitrario, debido a su naturaleza que encuentran en la red. les permite recuperarse después de la influencia de una falla Este tipo de problema es una extensión al problema de los [6]. Con la variedad de algoritmos propuestos, resulta filósofos comensales que ha sido estudiado en redes estáticas y complicado saber cuál es el más adecuado para una es llamado por Attiya, Kogan y Welch como exclusión local transformación particular. Por lo tanto esta investigación está mutua. La característica deseado para estos algoritmos es que tengan un tiempo de respuesta y fallos locales independientes basada en el análisis teórico y aspectos prácticos de cinco del número de nodos en la red. Dos algoritmos fueron algoritmos para determinar qué tan buena es la solución que propuestos, uno que minimiza el tiempo de respuesta y otro proveen. que minimiza el daño causado por los fallos locales, del cual Los resultados demostraron que los algoritmos de el primero tiene dos variaciones [4]. Transformation [5] , LRA [5] y Fuzzy [5] son incorrectos El primer algoritmo es una solución modular que asigna porque permiten una computación con un número infinito de colores a los nodos basados en su localización geográfica, de palillos indefinidamente, en cambio Alternator [5] distingue forma que los nodos cercanos tengan todos el mismo color, y entre variables públicas y privadas y opera correctamente en resuelve los problemas de compartir recursos de forma local un modelo de baja atomicidad, al igual que el algoritmo en cada grupo de color. Se soluciona el problema de movilidad Refinement [5] que también funciona adecuadamente bajo el escogiendo en los colores basados en su estado de movimiento. Las dos variaciones existen por el algoritmo para mismo modelo. la escogencia de los colores. Una de ellas utiliza un algoritmo Después del resultado de ejecución de estos algoritmos, se voraz para colorear mientras que la otra utiliza el algoritmo de propone la implementación de un algoritmo producto de Linial para colorear rápidamente. La segunda versión tiene combinar los dos algoritmos que tuvieron soluciones correctas una menor consecuencia al presentarse fallos locales y, aunque (Alternator-Refinement). Entre estos dos algoritmos, los no es óptima, crece muy lentamente con respecto al tamaño de resultados de la simulación indicaron que no existe un la red lo que lo hace rápido en redes dispersas. algoritmo que supere al otro. Para la métrica de rendimiento, El segundo algoritmo es óptimo en respuesta a fallos y el Refinement funciona mejor que Alternator bajo condiciones tiempo de respuesta es cuadrático con respecto al número de de poca carga. Sin embargo, cuando la carga incrementa, nodos, pero en el caso de nodos estáticos el tiempo de Alternator es más eficiente. respuesta se convierte en lineal. Este, en lugar de utilizar El nuevo algoritmo toma ventaja de las diferencias de colores, usa prioridades para implementar el algoritmo de inversión de los enlaces de los nodos para los casos en los que funcionamiento de los algoritmos anteriores para estimar la haya una pérdida de conexión los demás nodos puedan seguir carga del sistema e intercambiar funcionalidades entre ellos trabajando [4]. para lograr el mayor rendimiento [6]. El nuevo algoritmo combinado utiliza un árbol de C. Davidrajuh expansión con raíz estática, en el cual la acción de carga para En este trabajo se propone la implementación de Petri cada proceso consiste en computar la suma de la carga de sus Nets para dar solución al problema de los filósofos comensales hijos y se le añade uno en caso de que el proceso requiera [5]. Las Petri Nets son una familia de formalismos de acceder a la sección crítica [6]. De esta manera, el proceso de modelado que se utilizan para modelar sistemas de eventos la raíz obtiene un estimado de la carga de todo el sistema. Una discretos y que consta de varios tipos. En esta investigación se vez obtenida la carga, el proceso de la raíz selecciona qué introduce el concepto de Petri Nets Orientada a Actividad algoritmo utilizar, lo que garantiza que el proceso se estabilice (AOPN), la cual consiste en dos fases : (1) en esta fase se y sirva como solución al problema de los filósofos construye el modelo estático Petri Net. Las actividades y sus comensales. precedencias son representadas como transiciones entrelazadas con lugares como los buffers. Los recursos son ordenados en III. CONCLUSIÓN dos grupos como recursos focales y recursos útiles, donde sólo los recursos focales son incluidos en el modelo estático y los En conclusión, en este trabajo pudimos mostrar la otros en la ejecución del modelo. (2) la segunda fase consiste importancia que representa el problema de los filósofos en añadir los detalles, que no se pueden codificar en el modelo comensales para representar el problema de la sincronización estático, en la ejecución del programa [5]. en los sistemas operativos y en las redes de computación, De esta manera, con la implementación de las AOPN junto desde distintos campos y aplicaciones, en especial en el con GPenSIM (sistema para implementar Petri Nets), se mundo actual en el cual los dispositivos están interconectados. verifican las tres soluciones existentes al problema de los La variedad de soluciones propuestas nos brindan un filósofos comensales [5]. La solución de Dijkstra se basa en la amplio rango de posibilidades para suplir las demandas que numeración de los palillos, por lo tanto con las AOPN se los sistemas operativos actuales e incluso futuros puedan satisface la situación cuando dos palillos son reservados al presentar. De esta manera, dependiendo de las necesidades del mismo tiempo. La transición que reserva el palillo con el sistema, se podrá escoger la solución que mejor se adapte y mayor número se activa primero que la transición que reserva que proporcione un correcto funcionamiento entre los el palillo con menor número. La solución basada en la procesos de un sistema. Por lo tanto, podemos inferir que estas numeración de los filósofos se satisface con la asignación de soluciones nos pueden servir como un punto de partida para la prioridades a las transiciones debido a que cada filósofo optimización de la multiprogramación en los computadores, reserva los palillos a través de dos transiciones. Y por último, ya que estas soluciones nos permiten que la gestión de la solución basada en un supervisor satisface la inanición. procesos mejore considerablemente. Por lo tanto, se demuestra que el sistema AOPN sirve como REFERENCIAS modelado de sistemas de eventos discretos, especialmente cuando se involucran recursos. [1] C. Laneve, A. Vitale, “The Expressive Power of Synchronizations”, 2015 25th Annual IEEE Symposium on D. Adamek, Nesterenko, Tixeuil Logic in Computer Science, pp. 382-391, 2015. En este trabajo se propone el análisis de algoritmos de auto-estabilización como solución al problema de los filósofos 3 [2] M. Nesterenko and A. Arora, "Dining philosophers that tolerate malicious crashes," Distributed Computing Systems, 2002. Proceedings. 22nd International Conference on, pp. 191-198, 2002.
[3] M. Park, H. Jin Yoo, J. Chae, "Integration of Preemption
Threshold and Quantum-Based Scheduling for Schedulability Enhancement of Fixed Priority Tasks", Embedded and Real- Time Computing Systems and Applications 2009. RTCSA '09. 15th IEEE International Conference on, pp. 503-510, 2009.
[4] H. Attiya, A. Kogan, J. Welch, “Efficient and Robust
Local Mutual Exclusion in Mobile Ad Hoc Networks”, IEEE Transactions on Mobile Computing, Vol. 9, No. 3, pp. 361- 375, 2010.
[5] R. Davidrajuh, “Verifying Solutions to the Dining
Philosophers Problem with Activity-Oriented Petri Nets”, 2014 4th International Conference on Artificial Intelligence with Applications in Engineering and Technology, pp. 163- 168, 2014.
[6] J. Adamek, M. Nesterenko, and S. Tixeuil, “Evaluating
and Optimizing Stabilizing Dining Philosophers”, 2015 11th European Dependable Computing Conference, pp. 233-244, 2015.