Está en la página 1de 9

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIN

DOCENCIA EN INFORMTICA
INTEGRANTES: ALEXANDRA CLAVIJO DIEGO JACHO JAQUELINE NUEZ

EL PROBLEMA DE LA CENA DE LOS FILSOFOS

En 1965, Dijkstra plante y resolvi un problema de sincronizacin llamado el problema de la cena de los filsofos.

Dijkstra estudi fsica terica en la Universidad de Leiden. Trabaj como investigador para Burroughs Corporation a principios de los aos 1970. En la Universidad de Texas en Austin, Estados Unidos, ocup el Schlumberger Centennial Chair in Computer Sciences. Se retir en 2000.

Entre sus contribuciones a la informtica est la solucin del problema del camino ms corto, tambin conocido como el algoritmo de Dijkstra, la notacin polaca inversa y el relacionado algoritmo shunting yard, THE multiprogramming system, el algoritmo del banquero y la construccin del semforo para coordinar mltiples procesadores y programas. Otro concepto debido a Dijkstra, en el campo de la computacin distribuida, es el de la auto-estabilizacin, una va alternativa para garantizar la confiabilidad del sistema. El algoritmo de Dijkstra es usado en la ruta ms corta primero (SPF) que es usado en el protocolo de enrutamiento Open Shortest Path First (OSPF). Tambin se le debe la autora de la expresin "Crisis del software", aparecida en su libro The Humble Programmer y usada ampliamente en la famosa reunin de la OTAN de 1968 sobre desarrollo del software. Recibi el Premio Turing en 1972.

Cinco filsofos se sientan a la mesa. Cada uno tiene un plato de espagueti. El espagueti es tan escurridizo que un filsofo necesita dos tenedores para comerlo. Entre cada dos platos hay un tenedor.

La vida de un filsofo consta de periodos alternados de comer y pensar. Cuando un filsofo tiene hambre intenta obtener un tenedor para su manos izquierda y otro para su mano derecha, alzando uno a la vez y en cualquier orden. Si logra obtener los dos tenedores, come un rato y despus deja los tenedores y contina pensando.

Anlisis.

Debe haber el mximo nmero de filsofos comiendo, para aprovechar los tenedores, este caso slo dos porque se necesitan dos tenedores por filsofo, y slo tenemos cinco.

Debe tenerse cuidado de que dos filsofos contiguos no lleguen al mismo tiempo a comer, ya que se generara un bloqueo.

Planteamiento de la solucin.

Se tiene un arreglo para ver el estado del filsofo. Un filsofo slo puede comer si sus vecinos no lo hacen. Se utilizan semforos para indicar si los filsofos 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 filsofo. Se usan generadores aleatorios.

POR TURNO CCLICO Se empieza por un filsofo, que si quiere puede comer y despus pasa su turno al de la derecha. Cada filsofo slo puede comer en su turno. Problema: si el nmero de filsofos es muy alto, uno puede morir de hambre antes de su turno. COLAS DE TENEDORES

Cuando un filsofo quiere comer se pone en la cola de los dos tenedores que necesita. Cuando un tenedor est libre lo toma. Cuando toma los dos tenedores, come y deja libre los tenedores. Visto desde el otro lado, cada tenedor slo puede tener dos filsofos en cola, siempre los mismos.

VARIOS TURNOS Se establecen varios turnos. Para hacerlo ms claro supongamos que cada filsofo que puede comer (es su turno) tiene una ficha que despus pasa a la derecha. Si por ejemplo hay 7 comensales podemos poner 3 fichas en posiciones alternas (entre dos de las fichas quedaran dos filsofos). Se establecen turnos de tiempo fijo. Por ejemplo cada 5 minutos se pasan las fichas (y los turnos) a la derecha. En base al tiempo que suelen tardar los filsofos en comer y en volver a tener hambre, el tiempo de turno establecido puede hacer que sea peor solucin que la anterior. Si el tiempo de turno se aproxima al tiempo medio que tarda un filsofo en comer esta variante da muy buenos resultados. Si adems el tiempo medio de comer es similar al tiempo medio en volver a tener hambre la solucin se aproxima al ptimo.

También podría gustarte