식당 철학자 문제는 무엇입니까?

식당 철학자 문제는 컴퓨터 과학 분야에서 사용되는 사고 실험 또는 예입니다. 이 문제는 유추를 사용하여 컴퓨터가 리소스를 공유 할 때 발생할 수있는 동기화 문제를 설명합니다. 컴퓨터 과학자들은 식당 철학자 문제를 사용하여 학생들에게 이러한 문제를 해결하는 데 사용되는 알고리즘에 대해 가르칩니다.

식당 철학자 문제의 시나리오는 5 명의 철학자가 앉은 순환 테이블입니다. 테이블의 중앙에는 국수 그릇이나 다른 음식이 있습니다. 각 철학자는 양쪽에 하나의 포크 또는 젓가락이있어 총 5 개의 포크 또는 젓가락이 있음을 의미합니다. 먹기 위해 철학자는 두 가지기구가 필요합니다. 각 철학자는 또한 생각을 생각해야하며 동시에 생각하고 먹을 수 없습니다. 식당 철학자 문제의 핵심은 교착 상태를 예방하기가 어렵다는 것입니다.

이 문제의 교착 상태는 철학자들이 자신을 생각할 수없는 위치에 놓을 때 발생합니다.또는 먹습니다. 예를 들어, 각 철학자가 왼쪽에기구를 집어 들면 모든기구가 사용 중이지만 철학자에게는 두 가지가 없기 때문에 아무도 먹을 수 없을 것입니다. 모든 철학자들이 식사를 할 수 있도록 학생은 일부 철학자들이 생각하는 동안 일부 철학자들이 생각하고있는 알고리즘을 만들어야합니다. 이것은 식사와 생각이 실속없이 계속 될 수있게합니다.

식당 철학자 문제에 대한 여러 가지 가능한 해결책이 있습니다. 하나의 해결책은 철학자들이 포크를 집어들을 수있는 허가를 주거나 거부하는 여섯 번째 캐릭터 인 웨이터를 만드는 것입니다. 다른 사람들은 철학자들이 가용성을 극대화하기 위해 포크를 집어 들고 내려 놓는 순서를 규제하는 것을 포함합니다. 다른 사람들은 철학자들에게 이웃이 먹기 전에 식사를하고 있는지 확인하라고 말하는 것과 관련이 있습니다. 본질적으로 각 솔루션에는 일련의 규칙을 개발하고철학자들이 생각, 먹거나 픽업하여기구를 내려 놓을 때 통제하는 알고리즘이라고합니다.

식당 철학자 문제는 1965 년 네덜란드 컴퓨터 과학자 Edsger Dijkstra가 학생들을위한 시험 질문으로 처음 표현했습니다. 그 이후 로이 문제는 여러 가지 변화를 겪었습니다. 그것은 약간 다른 형식으로 나타나며, 그 중 일부는 스토리의 세부 사항 만 변경하지만 어려운 개념을 보여주기 위해 문제에 대한 추가 제한을 제안하는 다른 형식 만 변경합니다. 가장 일반적인 현대 버전은 Tony Hoare에 의해 만들어졌습니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?