Problema de los Filosofos

5,266 views

Published on

1 Comment
0 Likes
Statistics
Notes
  • Y donde trabajaste el codigo??
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
5,266
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
98
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Problema de los Filosofos

  1. 1. UNIVERSIDAD TÉCNICA DE AMBATOFACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN DOCENCIA EN INFORMÁTICA INTEGRANTES: ALEXANDRA CLAVIJO DIEGO JACHO JAQUELINE NUÑEZ
  2. 2. EL PROBLEMA DE LA CENA DE LOS FILÓSOFOSEn 1965, Dijkstra planteó y resolvió un problema de sincronizaciónllamado el problema de la cena de los filósofos.Dijkstra estudió física teórica en la Universidad de Leiden. Trabajócomo investigador para Burroughs Corporation a principios de losaños 1970. En la Universidad de Texas en Austin, EstadosUnidos, ocupó el Schlumberger Centennial Chair in ComputerSciences. Se retiró en 2000.
  3. 3. Entre sus contribuciones a la informática está la solución del problemadel camino más corto, también conocido como el algoritmo deDijkstra, la notación polaca inversa y el relacionado algoritmo shuntingyard, THE multiprogramming system, el algoritmo del banquero y laconstrucción del semáforo para coordinar múltiples procesadores yprogramas. Otro concepto debido a Dijkstra, en el campo de lacomputación distribuida, es el de la auto-estabilización, una víaalternativa para garantizar la confiabilidad del sistema. El algoritmo deDijkstra es usado en la ruta más corta primero (SPF) que es usado enel protocolo de enrutamiento Open Shortest Path First (OSPF).También se le debe la autoría de la expresión "Crisis delsoftware", aparecida en su libro The Humble Programmer y usadaampliamente en la famosa reunión de la OTAN de 1968 sobredesarrollo del software. Recibió el Premio Turing en 1972.
  4. 4. Cinco filósofos se sientan a la mesa. Cada uno tiene un plato deespagueti. El espagueti es tan escurridizo que un filósofo necesitados tenedores para comerlo. Entre cada dos platos hay untenedor.
  5. 5. La vida de un filósofo consta de periodos alternados de comer ypensar. Cuando un filósofo tiene hambre intenta obtener untenedor para su manos izquierda y otro para su manoderecha, alzando uno a la vez y en cualquier orden. Si lograobtener los dos tenedores, come un rato y después deja lostenedores y continúa pensando.
  6. 6. Análisis.Debe haber el máximo número de filósofos comiendo, para aprovecharlos tenedores, este caso sólo dos porque se necesitan dos tenedorespor filósofo, y sólo tenemos cinco.Debe tenerse cuidado de que dos filósofos contiguos no lleguen almismo tiempo a comer, ya que se generaría un bloqueo.
  7. 7. Planteamiento de la solución.Se tiene un arreglo para ver el estado del filósofo.Un filósofo sólo puede comer si sus vecinos no lo hacen.Se utilizan semáforos para indicar si los filósofos necesitan un tenedor yéste no está disponible, por que se procede a bloquearlo.Se toma en cuenta el vecino derecho e izquierdo de cada filósofo.Se usan generadores aleatorios.
  8. 8. POR TURNO CÍCLICOSe empieza por un filósofo, que si quiere puede comer y después pasa suturno al de la derecha. Cada filósofo sólo puede comer en su turno. Problema:si el número de filósofos es muy alto, uno puede morir de hambre antes de suturno.COLAS DE TENEDORESCuando un filósofo quiere comer se pone en la cola de los dos tenedores quenecesita. Cuando un tenedor está libre lo toma. Cuando toma los dostenedores, come y deja libre los tenedores.Visto desde el otro lado, cada tenedor sólo puede tener dos filósofos encola, siempre los mismos.
  9. 9. VARIOS TURNOSSe establecen varios turnos. Para hacerlo más claro supongamosque cada filósofo que puede comer (es su turno) tiene una fichaque después pasa a la derecha. Si por ejemplo hay 7 comensalespodemos poner 3 fichas en posiciones alternas (entre dos de lasfichas quedarían dos filósofos).Se establecen turnos de tiempo fijo. Por ejemplo cada 5 minutosse pasan las fichas (y los turnos) a la derecha.En base al tiempo que suelen tardar los filósofos en comer y envolver a tener hambre, el tiempo de turno establecido puedehacer que sea peor solución que la anterior. Si el tiempo de turnose aproxima al tiempo medio que tarda un filósofo en comer estavariante da muy buenos resultados. Si además el tiempo mediode comer es similar al tiempo medio en volver a tener hambre lasolución se aproxima al óptimo.

×