SlideShare una empresa de Scribd logo
1 de 3
Problema de los filosofos
El problema de la cena de los filósofos
1 Reply
También conocido como “El problema de los filósofos cenando” o “El problema de los
filósofos comensales”, es un problema clásico de las ciencias de la computación
propuesto por el científico EdsgerDijkstra* para representar los inconvenientes que
plantea la sincronización de procesos en un sistema operativo.
Independientemente de tenedores o palillos (yo optaré por estos últimos), el enunciado
sería el siguiente:
Hay cinco filósofos sentados alrededor de una mesa que pasan su vida cenando y
pensando. Cada uno dispone de un plato de arroz y un palillo a la izquierda de su plato,
pero para comer son necesarios dos palillos y cada filósofo sólo puede coger el que está
a su izquierda o el que hay a su derecha. Con un solo palillo en la mano no tienen más
remedio que esperar hasta que atrapen otro y puedan seguir comiendo.
Si dos filósofos adyacentes intentan tomar el mismo palillo a la vez se produce una
condición de carrera: ambos compiten por lo mismo pero uno se queda sin comer.
Si todos los filósofos cogen el palillo de su derecha al mismo tiempo, todos se quedarán
esperando eternamente porque alguien debe liberar el palillo que les falta, cosa que
nadie hará porque todos se encuentran en la misma situación (esperando que alguno
deje su palillo). Llegado esto, los filósofos se morirán de hambre. A este bloqueo mutuo
se le denomina interbloqueo o deadlock.
El objetivo consiste en encontrar un recurso que permita que los filósofos nunca se
mueran de hambre. Porque:
- Dos filósofos contiguos no pueden comer a la vez (exclusión mutua).
- Si un filósofo está comiendo, los contiguos no pueden hacerlo hasta que áquel termine
(sincronización).
- El filósofo que termina de comer debe ceder los palillos para su posterior utilización
(interbloqueo).
Este sencillo planteamiento resulta muy útil para los que estudian informática porque
ayuda a pensar en los sistemas que tienen recursos limitados (en el ejemplo anterior los
palillos son limitados) y en los clientes (programas y usuarios): hay que darles servicio
(comida) a todos en un tiempo razonable.
Se trata de que los recursos sean utilizados de la manera más eficiente por todos los
procesos implicados. Hay algoritmos para solucionarlo pero todos los métodos pasan
por asignar prioridades y/o tiempos máximos de uso de los recursos.
La finalidad es demostrar que se presentarán problemas ante la falta de una apropiada
sincronización y evitar la peligrosa condición de carrera.
Condición de carrera es una expresión que proviene del inglés “racecondition”, si bien
sería mejor hablar de “estado de carrera”, igual que se habla de estado de espera. Una
condición de carrera describe el error que se produce en programas o circuitos lógicos
cuando no han sido diseñados adecuadamente para su ejecución simultánea con otros.
Y el ejemplo típico de interbloqueo se produce cuando dos procesos están esperando a
que el otro realice una acción: ninguno llega a realizar la acción por estar a la espera del
otro. Este tipo de errores de programación pueden ser aprovechados por exploits locales
para vulnerar los sistemas.
*EdsgerWybeDijkstra nació en Rotterdam (Holanda) en 1930. Estudió Física Teórica,
trabajó en el Centro Matemático de Amsterdam y finalmente se entregó al estudio de la
Programación (uno de los problemas con que se encontró es que ser programador no
estaba oficialmente reconocido como profesión por aquel entonces).
A principios de los 70 aceptó un puesto como desarrollador en Estados Unidos, país en
el que permaneció hasta su muerte en 2002. Fueron numerosas sus contribuciones al
avance de la programación informática.
- See more at: http://www.hermanotemblon.com/el-problema-de-la-cena-de-los-
filosofos/#sthash.pCNOg4LU.dpuf
Problema filósofos cena recursos

Más contenido relacionado

Destacado

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destacado (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Problema filósofos cena recursos

  • 1. Problema de los filosofos El problema de la cena de los filósofos 1 Reply También conocido como “El problema de los filósofos cenando” o “El problema de los filósofos comensales”, es un problema clásico de las ciencias de la computación propuesto por el científico EdsgerDijkstra* para representar los inconvenientes que plantea la sincronización de procesos en un sistema operativo. Independientemente de tenedores o palillos (yo optaré por estos últimos), el enunciado sería el siguiente: Hay cinco filósofos sentados alrededor de una mesa que pasan su vida cenando y pensando. Cada uno dispone de un plato de arroz y un palillo a la izquierda de su plato, pero para comer son necesarios dos palillos y cada filósofo sólo puede coger el que está a su izquierda o el que hay a su derecha. Con un solo palillo en la mano no tienen más remedio que esperar hasta que atrapen otro y puedan seguir comiendo. Si dos filósofos adyacentes intentan tomar el mismo palillo a la vez se produce una condición de carrera: ambos compiten por lo mismo pero uno se queda sin comer.
  • 2. Si todos los filósofos cogen el palillo de su derecha al mismo tiempo, todos se quedarán esperando eternamente porque alguien debe liberar el palillo que les falta, cosa que nadie hará porque todos se encuentran en la misma situación (esperando que alguno deje su palillo). Llegado esto, los filósofos se morirán de hambre. A este bloqueo mutuo se le denomina interbloqueo o deadlock. El objetivo consiste en encontrar un recurso que permita que los filósofos nunca se mueran de hambre. Porque: - Dos filósofos contiguos no pueden comer a la vez (exclusión mutua). - Si un filósofo está comiendo, los contiguos no pueden hacerlo hasta que áquel termine (sincronización). - El filósofo que termina de comer debe ceder los palillos para su posterior utilización (interbloqueo). Este sencillo planteamiento resulta muy útil para los que estudian informática porque ayuda a pensar en los sistemas que tienen recursos limitados (en el ejemplo anterior los palillos son limitados) y en los clientes (programas y usuarios): hay que darles servicio (comida) a todos en un tiempo razonable. Se trata de que los recursos sean utilizados de la manera más eficiente por todos los procesos implicados. Hay algoritmos para solucionarlo pero todos los métodos pasan por asignar prioridades y/o tiempos máximos de uso de los recursos. La finalidad es demostrar que se presentarán problemas ante la falta de una apropiada sincronización y evitar la peligrosa condición de carrera. Condición de carrera es una expresión que proviene del inglés “racecondition”, si bien sería mejor hablar de “estado de carrera”, igual que se habla de estado de espera. Una condición de carrera describe el error que se produce en programas o circuitos lógicos cuando no han sido diseñados adecuadamente para su ejecución simultánea con otros. Y el ejemplo típico de interbloqueo se produce cuando dos procesos están esperando a que el otro realice una acción: ninguno llega a realizar la acción por estar a la espera del otro. Este tipo de errores de programación pueden ser aprovechados por exploits locales para vulnerar los sistemas. *EdsgerWybeDijkstra nació en Rotterdam (Holanda) en 1930. Estudió Física Teórica, trabajó en el Centro Matemático de Amsterdam y finalmente se entregó al estudio de la Programación (uno de los problemas con que se encontró es que ser programador no estaba oficialmente reconocido como profesión por aquel entonces). A principios de los 70 aceptó un puesto como desarrollador en Estados Unidos, país en el que permaneció hasta su muerte en 2002. Fueron numerosas sus contribuciones al avance de la programación informática. - See more at: http://www.hermanotemblon.com/el-problema-de-la-cena-de-los- filosofos/#sthash.pCNOg4LU.dpuf