식사하는 철학자 문제??
- 컴퓨터 과학에서 자주 다루어지는 문제 중 하나.
- 분산 시스템에서 발생하는 동기화 문제의 대표적인 예시.
가정
다섯 명의 철학자와 다섯 개의 젓가락이 있다고 가정한다.
각 철학자는 자신의 왼쪽과 오른쪽에 젓가락이 하나씩 놓여 있음.
하지만 오직 한 명의 철학자만 젓가락을 사용할 수 있다.
이 경우, 철학자들이 젓가락을 대기하는 상태에 빠지게 되어 무한정 기다려야 함.
해결법
- 철학자들이 젓가락을 공유하도록 만든다.
- 젓가락을 양쪽 모두 사용할 수 있도록 만든다.
철학자들끼리 소통할 수 있는 방법을 찾고, 이를 구현해야 함.
또한, 여러 방법들 중에서 가장 효율적인 방법을 선택해야 함.