Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Cena filosofos c
1. Jessica Domínguez1
, Jhonny Flores2
, David Villón3
,
Luis Orrala4
, Carlos Chichande.5
Facultad De Sistemas Y Telecomunicaciones
Universidad Estatal Península de Santa Elena
La Libertad – Ecuador
Jessy.d.b@hotmail.com
1
, flores_dark10@outlook.es
2
,
david_villon@hotmail.es
3
,
luis_skate2012@hotmail.com
4
, carloschichande1992@hotmail.com
5
dquirumbay@upse.edu.ec
Sistemas Operativos
PROBLEMA CLÁSICO DE COMUNICACIÓN DE PROCESOS:
EL PROBLEMA DE LA CENA DE LOS FILÓSOFOS
Resumen
El problema clásico de comunicación de procesos es representado por Edsger
Dijkstra con “La cena de los filósofos”, su representación hace referencia a
cinco filósofos sentados en una mesa cenando y pensando, cada uno con un
plato de fideos y para cada uno un tenedor a su izquierda. Tomando en cuenta
que para ellos comer le es necesario usar dos tenedores, y se necesita
encontrar una solución para que todos los filósofos puedan comer. En este
trabajo detallaremos lo que representa Dijkstra con “La cena de los filósofos”, y
sus posibles soluciones para este problema.
2. I.BIOGRAFÍA
Edsger Dijkstra
Wybe, nació en
mayo de 1930
en Rotterdam,
Holanda. Fue
hijo de un
químico y una
matemática,
Wybe Douwe
Dijkstra y Brechtje Cornelia Kruyper,
y tenía tres hermanos más. Estudio
Física y Matemáticas en la
Universidad de Leyden, terminando
en 1951 doctorado en física teórica
en la misma universidad en 1956,
seguido de un Ph. D. en 1959 en la
Universidad de Amsterdan. Dijkstra
se casó en 1957 con María Debets.
Murió en Nuenen, Holanda el 6 de
agosto del 2002 después de una
larga lucha contra el cáncer.
II.INTRODUCCIÓN
Tomado de (Antoogiaso, 2010)
“La cena de los filósofos”, es una
representación de problema clásico
de comunicación de procesos
realizada por Edsger Dijkstra, donde
cinco filósofos se sientan alrededor
de una mesa, cada filósofo tiene un
plato de fideos y un tenedor a su
izquierda para cada uno. Tenemos
que estos filósofos pasan su vida
cenando y pensando, ellos para
comer los fideos necesitan de dos
tenedores, encontrándose con
problemas que solo pueden usar el
de su derecha e izquierda, pero uno
a la vez no dos al mismo tiempo, un
filósofo puede quedar en espera si
algún tenedor de su derecha o
izquierda estuviera ocupado,
mientras tanto los dos filósofos
adyacentes se les producirá una
condición de carrera por intentar
tomar el tenedor. Quedándose uno
si poder comer. Se encontraran con
varios inconvenientes al tratar de
comer por la cual se buscara algún
algoritmo que los ayude a comer a
todos, Para ello usaríamos el
manejo de semáforos y memoria
compartida (semáforos inverso),
elimina por completo el problema de
interbloqueo e inanición.
III.DESARROLLO
Tomado de (NEOTEO, 2013)
Cinco filósofos pasan la vida
pensando y comiendo cuando un
filósofo piensa, no interactúa con
sus colegas cuando tiene hambre,
toma los dos tenedores al mismo
tiempo y come sin soltarlos; es
como decir al instante de cogerlos
llenamos un lugar en el espacio y al
soltarlos ese espacio se libra
nuevamente para ser ocupado por
otra acción.
Cuando termina de comer coloca
los dos tenedores sobre la mesa y
comienza a pensar. Ocurre la
necesidad de asignar varios
recursos entre varios procesos sin
que haya bloqueos mutuos.
Imagen representativa de la cena de los
filósofos
3. Este algoritmo nos sirve para dar la
solución al problema de
sincronización de uno o varios
procesos que se ejecutan en un
sistema operativo para su posterior
uso y no haya conflicto al momento
de utilizar varios recursos.
Lo que trata en sí, es que al
momento de que un filósofo escoge
los tenedores tanto izquierda como
derecha para proceder a comer
automáticamente el siguiente
filósofo solo tiene una posibilidad de
tenedor y debe esperar a que el
filósofo que los está ocupando los
deje en su lugar nuevamente y en
ese instante él pueda volver a
utilizarlos para proceder el a comer.
En este algoritmo se pueden dar las
siguientes acciones al momento de
que cada filósofo necesite comer
como son las siguientes:
Si dos filósofos adyacentes tomaran
el mismo tenedor se producirá una
condición de carrera ya que ambos
competirán por el mismo tenedor y
uno de ellos tendrá que quedarse
sin comer y por ende traería
problemas en el sistema.
Por otro lado tenemos el caso en
que si todos los filósofos escogen el
mismo tenedor al mismo tiempo
entonces todos se quedaran
esperando eternamente ya que
nadie liberara el tenedor que les
falta la manera de interpretación es
que los filósofos se morirán de
hambre eso producirá un
interbloqueo ya que todos esperan
recibir una acción pero todos la
necesitan para seguir su función.
Tomado de (Martinez, 2012)
Soluciones para estos problemas
que se presentan
POR TURNO CICLICO
En este caso se empieza por un
filósofo que si el necesita comer lo
puede hacer para posteriormente
pasar su turno al siguiente filosofo
en este caso al de la derecha y así
sucesivamente.
Esto nos quiere decir que cada
filósofo solo puede comer en su
turno o momento respectivo. Si el
número de filósofos es alto los
últimos pueden morir de hambre ya
que por este método se debe
respetar su turno.
COLA DE TENEDORES
Nos referimos a que un filósofo
cuando quiere comer se pone en la
cola de los 2 tenedores que
necesita para ser la acción.
Cuando esté ve que un tenedor está
libre lo toma y así sigue su
secuencia, ya que toma los dos
tenedores, come y los deja libre
automáticamente.
En la cola de tenedores también
existe una secuencia que se debe
tomar en cuenta como es la
siguiente, cada vez que un filósofo
tiene un tenedor espera un tiempo
prudente o aleatorio para conseguir
y hacer uso de su segundo tenedor
pero si en ese periodo de tiempo no
logra obtener el segundo tenedor
por defecto debe dejar el que tiene
en la mano y volver a la cola para
comenzar a obtener sus tenedores.
Es importante que se tenga en
cuenta el tiempo de espera ya que
4. si no el sistema se mantendrá
bloqueado.
Este es un proceso clásico que se
utiliza comúnmente en la solución
de estos problemas internos del
computador.
Tomado de (jorge, 2015)
EL PORTERO DEL
COMEDOR
En este caso nos referimos a que se
indica o se da la orden a los
filósofos que abandonen la mesa
cuando no tengan hambre y que no
vuelvan hasta que estén
hambrientos nuevamente.
Es lo equivalente al uso de un
recurso en tiempo determinado y
hasta que no sea solicitado
nuevamente no se volverá a utilizar.
SOLUCION DEL
CAMARERO
Es una solución sencilla ya que se
logra mediante la introducción de un
camarero a la mesa, en este caso
los filósofos deben pedir la orden al
camarero para tomar los tenedores.
El camarero en consiente de cuales
tenedores estén en uso y su
capacidad permitirá ordenar y
secuenciar de manera precisa y así
evitar un bloqueo.
Trabaja como un administrador:
espacio libre “ocúpalo”, no lo utilizo
“libéralo” y así secuencialmente
dependiendo la orden.
IV.CONCLUSIÓN
Hemos llegado a la conclusión que
existen posibles soluciones sobre el
problema de sincronización de
procesos en un sistema operativo.
Estos planteamientos son muy útiles
ya que nos ayudan a pensar en los
sistemas que tienen recursos
limitados.
V. RECOMENDACIÓN
En cuanto a este problema,
debemos de tratar que los recursos
sean utilizados de la manera más
eficiente por todos los procesos
implicados. Sabemos que se
presentarán problemas ante la falta
de una apropiada sincronización por
lo que hay que evitar la peligrosa
condición de carrera.
VI.REFERENCIAS
Antoogiaso. (8 de abril de 2010).
Antoogiaso. Obtenido de
https://antologiaso.wordpress
.com/2010/04/08/cenafilosofo
s/
jorge. (10 de julio de 2015).
Documents.mx. Obtenido de
http://documents.mx/docume
nts/cena-de-los-filosofos.html
Martinez, Z. (16 de octubre de
2012). Prezi. Obtenido de
https://prezi.com/va4ufk4y5oz
v/la-cena-de-los-filosofos/
NEOTEO. (14 de noviembre de
2013). NEOTEO. Obtenido
de http://www.neoteo.com/la-
cena-de-los-filosofos-evita-
esperar-para-siempre